From 11d86d83b6a1e6af095300b2f577acb2ced4a57f Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 11 Jan 2017 01:02:32 -0800 Subject: [PATCH] Fixing JS to actually use vue --- public/assets/js/all.js | 753 ------ public/assets/js/all.js.map | 2 +- .../{all-7289d0f397.js => all-badb120e11.js} | 753 ------ public/build/assets/js/all.js.map | 2 +- public/build/rev-manifest.json | 2 +- public/js/app.js | Bin 0 -> 61182 bytes public/js/bootstrap.js | Bin 0 -> 3061192 bytes resources/assets/js/bootstrap-js.js | 2363 +++++++++++++++++ resources/views/settings/api.blade.php | 23 + 9 files changed, 2389 insertions(+), 1509 deletions(-) mode change 100755 => 100644 public/assets/js/all.js rename public/build/assets/js/{all-7289d0f397.js => all-badb120e11.js} (98%) mode change 100755 => 100644 create mode 100644 public/js/app.js create mode 100644 public/js/bootstrap.js create mode 100644 resources/assets/js/bootstrap-js.js create mode 100644 resources/views/settings/api.blade.php diff --git a/public/assets/js/all.js b/public/assets/js/all.js old mode 100755 new mode 100644 index 9e12af3e62..f3761db656 --- a/public/assets/js/all.js +++ b/public/assets/js/all.js @@ -34319,757 +34319,4 @@ var pieOptions = { // require('./components/passport/PersonalAccessTokens.vue') // ); -/*! AdminLTE app.js - * ================ - * Main JS application file for AdminLTE v2. This file - * should be included in all pages. It controls some layout - * options and implements exclusive AdminLTE plugins. - * - * @Author Almsaeed Studio - * @Support - * @Email - * @version 2.3.0 - * @license MIT - */ - -//Make sure jQuery has been loaded before app.js -if (typeof jQuery === "undefined") { - throw new Error("AdminLTE requires jQuery"); -} - - -/* AdminLTE - * - * @type Object - * @description $.AdminLTE is the main object for the template's app. - * It's used for implementing functions and options related - * to the template. Keeping everything wrapped in an object - * prevents conflict with other plugins and is a better - * way to organize our code. - */ -$.AdminLTE = {}; - -/* -------------------- - * - AdminLTE Options - - * -------------------- - * Modify these options to suit your implementation - */ -$.AdminLTE.options = { - //Add slimscroll to navbar menus - //This requires you to load the slimscroll plugin - //in every page before app.js - navbarMenuSlimscroll: true, - navbarMenuSlimscrollWidth: "3px", //The width of the scroll bar - navbarMenuHeight: "200px", //The height of the inner menu - //General animation speed for JS animated elements such as box collapse/expand and - //sidebar treeview slide up/down. This options accepts an integer as milliseconds, - //'fast', 'normal', or 'slow' - animationSpeed: 500, - //Sidebar push menu toggle button selector - sidebarToggleSelector: "[data-toggle='offcanvas']", - //Activate sidebar push menu - sidebarPushMenu: true, - //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin) - sidebarSlimScroll: true, - //Enable sidebar expand on hover effect for sidebar mini - //This option is forced to true if both the fixed layout and sidebar mini - //are used together - sidebarExpandOnHover: false, - //BoxRefresh Plugin - enableBoxRefresh: true, - //Bootstrap.js tooltip - enableBSToppltip: true, - BSTooltipSelector: "[data-toggle='tooltip']", - //Enable Fast Click. Fastclick.js creates a more - //native touch experience with touch devices. If you - //choose to enable the plugin, make sure you load the script - //before AdminLTE's app.js - enableFastclick: true, - //Control Sidebar Options - enableControlSidebar: true, - controlSidebarOptions: { - //Which button should trigger the open/close event - toggleBtnSelector: "[data-toggle='control-sidebar']", - //The sidebar selector - selector: ".control-sidebar", - //Enable slide over content - slide: true - }, - //Box Widget Plugin. Enable this plugin - //to allow boxes to be collapsed and/or removed - enableBoxWidget: true, - //Box Widget plugin options - boxWidgetOptions: { - boxWidgetIcons: { - //Collapse icon - collapse: 'fa-minus', - //Open icon - open: 'fa-plus', - //Remove icon - remove: 'fa-times' - }, - boxWidgetSelectors: { - //Remove button selector - remove: '[data-widget="remove"]', - //Collapse button selector - collapse: '[data-widget="collapse"]' - } - }, - //Direct Chat plugin options - directChat: { - //Enable direct chat by default - enable: true, - //The button to open and close the chat contacts pane - contactToggleSelector: '[data-widget="chat-pane-toggle"]' - }, - //Define the set of colors to use globally around the website - colors: { - lightBlue: "#3c8dbc", - red: "#f56954", - green: "#00a65a", - aqua: "#00c0ef", - yellow: "#f39c12", - blue: "#0073b7", - navy: "#001F3F", - teal: "#39CCCC", - olive: "#3D9970", - lime: "#01FF70", - orange: "#FF851B", - fuchsia: "#F012BE", - purple: "#8E24AA", - maroon: "#D81B60", - black: "#222222", - gray: "#d2d6de" - }, - //The standard screen sizes that bootstrap uses. - //If you change these in the variables.less file, change - //them here too. - screenSizes: { - xs: 480, - sm: 768, - md: 992, - lg: 1200 - } -}; - -/* ------------------ - * - Implementation - - * ------------------ - * The next block of code implements AdminLTE's - * functions and plugins as specified by the - * options above. - */ -$(function () { - "use strict"; - - //Fix for IE page transitions - $("body").removeClass("hold-transition"); - - //Extend options if external options exist - if (typeof AdminLTEOptions !== "undefined") { - $.extend(true, - $.AdminLTE.options, - AdminLTEOptions); - } - - //Easy access to options - var o = $.AdminLTE.options; - - //Set up the object - _init(); - - //Activate the layout maker - $.AdminLTE.layout.activate(); - - //Enable sidebar tree view controls - $.AdminLTE.tree('.sidebar'); - - //Enable control sidebar - if (o.enableControlSidebar) { - $.AdminLTE.controlSidebar.activate(); - } - - //Add slimscroll to navbar dropdown - if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') { - $(".navbar .menu").slimscroll({ - height: o.navbarMenuHeight, - alwaysVisible: false, - size: o.navbarMenuSlimscrollWidth - }).css("width", "100%"); - } - - //Activate sidebar push menu - if (o.sidebarPushMenu) { - $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector); - } - - //Activate Bootstrap tooltip - if (o.enableBSToppltip) { - $('body').tooltip({ - selector: o.BSTooltipSelector - }); - } - - //Activate box widget - if (o.enableBoxWidget) { - $.AdminLTE.boxWidget.activate(); - } - - //Activate fast click - if (o.enableFastclick && typeof FastClick != 'undefined') { - FastClick.attach(document.body); - } - - //Activate direct chat widget - if (o.directChat.enable) { - $(document).on('click', o.directChat.contactToggleSelector, function () { - var box = $(this).parents('.direct-chat').first(); - box.toggleClass('direct-chat-contacts-open'); - }); - } - - /* - * INITIALIZE BUTTON TOGGLE - * ------------------------ - */ - $('.btn-group[data-toggle="btn-toggle"]').each(function () { - var group = $(this); - $(this).find(".btn").on('click', function (e) { - group.find(".btn.active").removeClass("active"); - $(this).addClass("active"); - e.preventDefault(); - }); - - }); -}); - -/* ---------------------------------- - * - Initialize the AdminLTE Object - - * ---------------------------------- - * All AdminLTE functions are implemented below. - */ -function _init() { - 'use strict'; - /* Layout - * ====== - * Fixes the layout height in case min-height fails. - * - * @type Object - * @usage $.AdminLTE.layout.activate() - * $.AdminLTE.layout.fix() - * $.AdminLTE.layout.fixSidebar() - */ - $.AdminLTE.layout = { - activate: function () { - var _this = this; - _this.fix(); - _this.fixSidebar(); - $(window, ".wrapper").resize(function () { - _this.fix(); - _this.fixSidebar(); - }); - }, - fix: function () { - //Get window height and the wrapper height - var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight(); - var window_height = $(window).height(); - var sidebar_height = $(".sidebar").height(); - //Set the min-height of the content and sidebar based on the - //the height of the document. - if ($("body").hasClass("fixed")) { - $(".content-wrapper, .right-side").css('min-height', window_height - $('.main-footer').outerHeight()); - } else { - var postSetWidth; - if (window_height >= sidebar_height) { - $(".content-wrapper, .right-side").css('min-height', window_height - neg); - postSetWidth = window_height - neg; - } else { - $(".content-wrapper, .right-side").css('min-height', sidebar_height); - postSetWidth = sidebar_height; - } - - //Fix for the control sidebar height - var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector); - if (typeof controlSidebar !== "undefined") { - if (controlSidebar.height() > postSetWidth) - $(".content-wrapper, .right-side").css('min-height', controlSidebar.height()); - } - - } - }, - fixSidebar: function () { - //Make sure the body tag has the .fixed class - if (!$("body").hasClass("fixed")) { - if (typeof $.fn.slimScroll != 'undefined') { - $(".sidebar").slimScroll({destroy: true}).height("auto"); - } - return; - } else if (typeof $.fn.slimScroll == 'undefined' && window.console) { - window.console.error("Error: the fixed layout requires the slimscroll plugin!"); - } - //Enable slimscroll for fixed layout - if ($.AdminLTE.options.sidebarSlimScroll) { - if (typeof $.fn.slimScroll != 'undefined') { - //Destroy if it exists - $(".sidebar").slimScroll({destroy: true}).height("auto"); - //Add slimscroll - $(".sidebar").slimscroll({ - height: ($(window).height() - $(".main-header").height()) + "px", - color: "rgba(0,0,0,0.2)", - size: "3px" - }); - } - } - } - }; - - /* PushMenu() - * ========== - * Adds the push menu functionality to the sidebar. - * - * @type Function - * @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']") - */ - $.AdminLTE.pushMenu = { - activate: function (toggleBtn) { - //Get the screen sizes - var screenSizes = $.AdminLTE.options.screenSizes; - - //Enable sidebar toggle - $(toggleBtn).on('click', function (e) { - e.preventDefault(); - - //Enable sidebar push menu - if ($(window).width() > (screenSizes.sm - 1)) { - if ($("body").hasClass('sidebar-collapse')) { - $("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu'); - } else { - $("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu'); - } - } - //Handle sidebar push menu for small screens - else { - if ($("body").hasClass('sidebar-open')) { - $("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu'); - } else { - $("body").addClass('sidebar-open').trigger('expanded.pushMenu'); - } - } - }); - - $(".content-wrapper").click(function () { - //Enable hide menu when clicking on the content-wrapper on small screens - if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) { - $("body").removeClass('sidebar-open'); - } - }); - - //Enable expand on hover for sidebar mini - if ($.AdminLTE.options.sidebarExpandOnHover - || ($('body').hasClass('fixed') - && $('body').hasClass('sidebar-mini'))) { - this.expandOnHover(); - } - }, - expandOnHover: function () { - var _this = this; - var screenWidth = $.AdminLTE.options.screenSizes.sm - 1; - //Expand sidebar on hover - $('.main-sidebar').hover(function () { - if ($('body').hasClass('sidebar-mini') - && $("body").hasClass('sidebar-collapse') - && $(window).width() > screenWidth) { - _this.expand(); - } - }, function () { - if ($('body').hasClass('sidebar-mini') - && $('body').hasClass('sidebar-expanded-on-hover') - && $(window).width() > screenWidth) { - _this.collapse(); - } - }); - }, - expand: function () { - $("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover'); - }, - collapse: function () { - if ($('body').hasClass('sidebar-expanded-on-hover')) { - $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse'); - } - } - }; - - /* Tree() - * ====== - * Converts the sidebar into a multilevel - * tree view menu. - * - * @type Function - * @Usage: $.AdminLTE.tree('.sidebar') - */ - $.AdminLTE.tree = function (menu) { - var _this = this; - var animationSpeed = $.AdminLTE.options.animationSpeed; - $(document).on('click', menu + ' li a', function (e) { - //Get the clicked link and the next element - var $this = $(this); - var checkElement = $this.next(); - - //Check if the next element is a menu and is visible - if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible'))) { - //Close the menu - checkElement.slideUp(animationSpeed, function () { - checkElement.removeClass('menu-open'); - //Fix the layout in case the sidebar stretches over the height of the window - //_this.layout.fix(); - }); - checkElement.parent("li").removeClass("active"); - } - //If the menu is not visible - else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) { - //Get the parent menu - var parent = $this.parents('ul').first(); - //Close all open menus within the parent - var ul = parent.find('ul:visible').slideUp(animationSpeed); - //Remove the menu-open class from the parent - ul.removeClass('menu-open'); - //Get the parent li - var parent_li = $this.parent("li"); - - //Open the target menu and add the menu-open class - checkElement.slideDown(animationSpeed, function () { - //Add the class active to the parent li - checkElement.addClass('menu-open'); - parent.find('li.active').removeClass('active'); - parent_li.addClass('active'); - //Fix the layout in case the sidebar stretches over the height of the window - _this.layout.fix(); - }); - } - //if this isn't a link, prevent the page from being redirected - if (checkElement.is('.treeview-menu')) { - e.preventDefault(); - } - }); - }; - - /* ControlSidebar - * ============== - * Adds functionality to the right sidebar - * - * @type Object - * @usage $.AdminLTE.controlSidebar.activate(options) - */ - $.AdminLTE.controlSidebar = { - //instantiate the object - activate: function () { - //Get the object - var _this = this; - //Update options - var o = $.AdminLTE.options.controlSidebarOptions; - //Get the sidebar - var sidebar = $(o.selector); - //The toggle button - var btn = $(o.toggleBtnSelector); - - //Listen to the click event - btn.on('click', function (e) { - e.preventDefault(); - //If the sidebar is not open - if (!sidebar.hasClass('control-sidebar-open') - && !$('body').hasClass('control-sidebar-open')) { - //Open the sidebar - _this.open(sidebar, o.slide); - } else { - _this.close(sidebar, o.slide); - } - }); - - //If the body has a boxed layout, fix the sidebar bg position - var bg = $(".control-sidebar-bg"); - _this._fix(bg); - - //If the body has a fixed layout, make the control sidebar fixed - if ($('body').hasClass('fixed')) { - _this._fixForFixed(sidebar); - } else { - //If the content height is less than the sidebar's height, force max height - if ($('.content-wrapper, .right-side').height() < sidebar.height()) { - _this._fixForContent(sidebar); - } - } - }, - //Open the control sidebar - open: function (sidebar, slide) { - //Slide over content - if (slide) { - sidebar.addClass('control-sidebar-open'); - } else { - //Push the content by adding the open class to the body instead - //of the sidebar itself - $('body').addClass('control-sidebar-open'); - } - }, - //Close the control sidebar - close: function (sidebar, slide) { - if (slide) { - sidebar.removeClass('control-sidebar-open'); - } else { - $('body').removeClass('control-sidebar-open'); - } - }, - _fix: function (sidebar) { - var _this = this; - if ($("body").hasClass('layout-boxed')) { - sidebar.css('position', 'absolute'); - sidebar.height($(".wrapper").height()); - $(window).resize(function () { - _this._fix(sidebar); - }); - } else { - sidebar.css({ - 'position': 'fixed', - 'height': 'auto' - }); - } - }, - _fixForFixed: function (sidebar) { - sidebar.css({ - 'position': 'fixed', - 'max-height': '100%', - 'overflow': 'auto', - 'padding-bottom': '50px' - }); - }, - _fixForContent: function (sidebar) { - $(".content-wrapper, .right-side").css('min-height', sidebar.height()); - } - }; - - /* BoxWidget - * ========= - * BoxWidget is a plugin to handle collapsing and - * removing boxes from the screen. - * - * @type Object - * @usage $.AdminLTE.boxWidget.activate() - * Set all your options in the main $.AdminLTE.options object - */ - $.AdminLTE.boxWidget = { - selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors, - icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons, - animationSpeed: $.AdminLTE.options.animationSpeed, - activate: function (_box) { - var _this = this; - if (!_box) { - _box = document; // activate all boxes per default - } - //Listen for collapse event triggers - $(_box).on('click', _this.selectors.collapse, function (e) { - e.preventDefault(); - _this.collapse($(this)); - }); - - //Listen for remove event triggers - $(_box).on('click', _this.selectors.remove, function (e) { - e.preventDefault(); - _this.remove($(this)); - }); - }, - collapse: function (element) { - var _this = this; - //Find the box parent - var box = element.parents(".box").first(); - //Find the body and the footer - var box_content = box.find("> .box-body, > .box-footer, > form >.box-body, > form > .box-footer"); - if (!box.hasClass("collapsed-box")) { - //Convert minus into plus - element.children(":first") - .removeClass(_this.icons.collapse) - .addClass(_this.icons.open); - //Hide the content - box_content.slideUp(_this.animationSpeed, function () { - box.addClass("collapsed-box"); - }); - } else { - //Convert plus into minus - element.children(":first") - .removeClass(_this.icons.open) - .addClass(_this.icons.collapse); - //Show the content - box_content.slideDown(_this.animationSpeed, function () { - box.removeClass("collapsed-box"); - }); - } - }, - remove: function (element) { - //Find the box parent - var box = element.parents(".box").first(); - box.slideUp(this.animationSpeed); - } - }; -} - -/* ------------------ - * - Custom Plugins - - * ------------------ - * All custom plugins are defined below. - */ - -/* - * BOX REFRESH BUTTON - * ------------------ - * This is a custom plugin to use with the component BOX. It allows you to add - * a refresh button to the box. It converts the box's state to a loading state. - * - * @type plugin - * @usage $("#box-widget").boxRefresh( options ); - */ -(function ($) { - - "use strict"; - - $.fn.boxRefresh = function (options) { - - // Render options - var settings = $.extend({ - //Refresh button selector - trigger: ".refresh-btn", - //File source to be loaded (e.g: ajax/src.php) - source: "", - //Callbacks - onLoadStart: function (box) { - return box; - }, //Right after the button has been clicked - onLoadDone: function (box) { - return box; - } //When the source has been loaded - - }, options); - - //The overlay - var overlay = $('
'); - - return this.each(function () { - //if a source is specified - if (settings.source === "") { - if (window.console) { - window.console.log("Please specify a source first - boxRefresh()"); - } - return; - } - //the box - var box = $(this); - //the button - var rBtn = box.find(settings.trigger).first(); - - //On trigger click - rBtn.on('click', function (e) { - e.preventDefault(); - //Add loading overlay - start(box); - - //Perform ajax call - box.find(".box-body").load(settings.source, function () { - done(box); - }); - }); - }); - - function start(box) { - //Add overlay and loading img - box.append(overlay); - - settings.onLoadStart.call(box); - } - - function done(box) { - //Remove overlay and loading img - box.find(overlay).remove(); - - settings.onLoadDone.call(box); - } - - }; - -})(jQuery); - -/* - * EXPLICIT BOX ACTIVATION - * ----------------------- - * This is a custom plugin to use with the component BOX. It allows you to activate - * a box inserted in the DOM after the app.js was loaded. - * - * @type plugin - * @usage $("#box-widget").activateBox(); - */ -(function ($) { - - 'use strict'; - - $.fn.activateBox = function () { - $.AdminLTE.boxWidget.activate(this); - }; - -})(jQuery); - -/* - * TODO LIST CUSTOM PLUGIN - * ----------------------- - * This plugin depends on iCheck plugin for checkbox and radio inputs - * - * @type plugin - * @usage $("#todo-widget").todolist( options ); - */ -(function ($) { - - 'use strict'; - - $.fn.todolist = function (options) { - // Render options - var settings = $.extend({ - //When the user checks the input - onCheck: function (ele) { - return ele; - }, - //When the user unchecks the input - onUncheck: function (ele) { - return ele; - } - }, options); - - return this.each(function () { - - if (typeof $.fn.iCheck != 'undefined') { - $('input', this).on('ifChecked', function () { - var ele = $(this).parents("li").first(); - ele.toggleClass("done"); - settings.onCheck.call(ele); - }); - - $('input', this).on('ifUnchecked', function () { - var ele = $(this).parents("li").first(); - ele.toggleClass("done"); - settings.onUncheck.call(ele); - }); - } else { - $('input', this).on('change', function () { - var ele = $(this).parents("li").first(); - ele.toggleClass("done"); - if ($('input', ele).is(":checked")) { - settings.onCheck.call(ele); - } else { - settings.onUncheck.call(ele); - } - }); - } - }); - }; -}(jQuery)); - -//------------- -//- PIE CHART - -//------------- -// Get context with jQuery - using jQuery's .get() method. - //# sourceMappingURL=all.js.map diff --git a/public/assets/js/all.js.map b/public/assets/js/all.js.map index 26197017a3..da898dfaaa 100644 --- a/public/assets/js/all.js.map +++ b/public/assets/js/all.js.map @@ -1 +1 @@ -{"version":3,"sources":["jQuery-2.1.4.min.js","jquery-ui.js","jquery.ui.widget.js","jquery.iframe-transport.js","jquery.fileupload.js","bootstrap.js","fastclick.js","jquery.slimscroll.js","select2.full.min.js","bootstrap-colorpicker.js","bootstrap-table.js","bootstrap-datepicker.js","select2.js","icheck.js","ekko-lightbox.js","snipeit.js","app.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxugBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3zEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1eA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACr7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACloFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvoDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3xKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"all.js","sourcesContent":["/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */\n!function(a,b){\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m=\"2.1.4\",n=function(a,b){return new n.fn.init(a,b)},o=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,p=/^-ms-/,q=/-([\\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:\"\",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:\"jQuery\"+(m+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return\"object\"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,\"isPrototypeOf\")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?h[i.call(a)]||\"object\":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf(\"use strict\")?(b=l.createElement(\"script\"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,\"ms-\").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(o,\"\")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,\"string\"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return\"string\"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){h[\"[object \"+b+\"]\"]=b.toLowerCase()});function s(a){var b=\"length\"in a&&a.length,c=n.type(a);return\"function\"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=\"sizzle\"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",L=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",M=\"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",N=M.replace(\"w\",\"w#\"),O=\"\\\\[\"+L+\"*(\"+M+\")(?:\"+L+\"*([*^$|!~]?=)\"+L+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+N+\"))|)\"+L+\"*\\\\]\",P=\":(\"+M+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+O+\")*)|.*)\\\\)|)\",Q=new RegExp(L+\"+\",\"g\"),R=new RegExp(\"^\"+L+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+L+\"+$\",\"g\"),S=new RegExp(\"^\"+L+\"*,\"+L+\"*\"),T=new RegExp(\"^\"+L+\"*([>+~]|\"+L+\")\"+L+\"*\"),U=new RegExp(\"=\"+L+\"*([^\\\\]'\\\"]*?)\"+L+\"*\\\\]\",\"g\"),V=new RegExp(P),W=new RegExp(\"^\"+N+\"$\"),X={ID:new RegExp(\"^#(\"+M+\")\"),CLASS:new RegExp(\"^\\\\.(\"+M+\")\"),TAG:new RegExp(\"^(\"+M.replace(\"w\",\"w*\")+\")\"),ATTR:new RegExp(\"^\"+O),PSEUDO:new RegExp(\"^\"+P),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+L+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+L+\"*(?:([+-]|)\"+L+\"*(\\\\d+)|))\"+L+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+K+\")$\",\"i\"),needsContext:new RegExp(\"^\"+L+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+L+\"*((?:-\\\\d)?\\\\d*)\"+L+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,$=/^[^{]+\\{\\s*\\[native \\w/,_=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,aa=/[+~]/,ba=/'|\\\\/g,ca=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+L+\"?|(\"+L+\")|.)\",\"ig\"),da=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,\"string\"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&\"object\"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(\"id\"))?s=r.replace(ba,\"\\\\$&\"):b.setAttribute(\"id\",s),s=\"[id='\"+s+\"'] \",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(\",\")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(\"id\")}}}return i(a.replace(R,\"$1\"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+\" \")>d.cacheLength&&delete b[a.shift()],b[c+\" \"]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(\"div\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(\"|\"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&\"undefined\"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener(\"unload\",ea,!1):e.attachEvent&&e.attachEvent(\"onunload\",ea)),p=!f(g),c.attributes=ja(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(\"undefined\"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute(\"id\")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c=\"undefined\"!=typeof a.getAttributeNode&&a.getAttributeNode(\"id\");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return\"undefined\"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=\"\",a.querySelectorAll(\"[msallowcapture^='']\").length&&q.push(\"[*^$]=\"+L+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\"[selected]\").length||q.push(\"\\\\[\"+L+\"*(?:value|\"+K+\")\"),a.querySelectorAll(\"[id~=\"+u+\"-]\").length||q.push(\"~=\"),a.querySelectorAll(\":checked\").length||q.push(\":checked\"),a.querySelectorAll(\"a#\"+u+\"+*\").length||q.push(\".#.+[+~]\")}),ja(function(a){var b=g.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"name\",\"D\"),a.querySelectorAll(\"[name=d]\").length&&q.push(\"name\"+L+\"*[*^$|!~]?=\"),a.querySelectorAll(\":enabled\").length||q.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),q.push(\",.*:\")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,\"div\"),s.call(a,\"[s!='']:x\"),r.push(\"!=\",P)}),q=q.length&&new RegExp(q.join(\"|\")),r=r.length&&new RegExp(r.join(\"|\")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,\"='$1']\"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=\"\",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||\"\").replace(ca,da),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||\"\":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(\")\",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+\" \"];return b||(b=new RegExp(\"(^|\"+L+\")\"+a+\"(\"+L+\"|$)\"))&&y(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||\"undefined\"!=typeof a.getAttribute&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?\"!=\"===b:b?(e+=\"\",\"=\"===b?e===c:\"!=\"===b?e!==c:\"^=\"===b?c&&0===e.indexOf(c):\"*=\"===b?c&&e.indexOf(c)>-1:\"$=\"===b?c&&e.slice(-c.length)===c:\"~=\"===b?(\" \"+e.replace(Q,\" \")+\" \").indexOf(c)>-1:\"|=\"===b?e===c||e.slice(0,c.length+1)===c+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(\"unsupported pseudo: \"+a);return e[u]?e(b):e.length>1?(c=[a,a,\"\",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,\"$1\"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||\"\")||ga.error(\"unsupported lang: \"+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||\"text\"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&\"parentNode\"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||\"*\",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[\" \"],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:\" \"===a[i-2].type?\"*\":\"\"})).replace(R,\"$1\"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q=\"0\",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(\"*\",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+\" \"];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=\"function\"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&\"ID\"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split(\"\").sort(B).join(\"\")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement(\"div\"))}),ja(function(a){return a.innerHTML=\"\",\"#\"===a.firstChild.getAttribute(\"href\")})||ka(\"type|href|height|width\",function(a,b,c){return c?void 0:a.getAttribute(b,\"type\"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=\"\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||ka(\"value\",function(a,b,c){return c||\"input\"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(\"disabled\")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[\":\"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,w=/^.[^:#\\[\\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if(\"string\"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+\" \"+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,\"string\"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if(\"string\"==typeof a){if(c=\"<\"===a[0]&&\">\"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?\"undefined\"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||\"string\"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?\"string\"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,\"parentNode\")},parentsUntil:function(a,b,c){return n.dir(a,\"parentNode\",c)},next:function(a){return D(a,\"nextSibling\")},prev:function(a){return D(a,\"previousSibling\")},nextAll:function(a){return n.dir(a,\"nextSibling\")},prevAll:function(a){return n.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return n.dir(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return n.dir(a,\"previousSibling\",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a=\"string\"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);\"function\"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&\"string\"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[[\"resolve\",\"done\",n.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",n.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",n.Callbacks(\"memory\")]],c=\"pending\",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+\"With\"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+\"With\"](this===e?d:this,arguments),this},e[f[0]+\"With\"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(\"ready\"),n(l).off(\"ready\"))))}});function I(){l.removeEventListener(\"DOMContentLoaded\",I,!1),a.removeEventListener(\"load\",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),\"complete\"===l.readyState?setTimeout(n.ready):(l.addEventListener(\"DOMContentLoaded\",I,!1),a.addEventListener(\"load\",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(\"object\"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if(\"string\"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&\"string\"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(O,\"-$1\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){\nreturn M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,\"hasDataAttrs\"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf(\"data-\")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,\"hasDataAttrs\",!0)}return e}return\"object\"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf(\"-\")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||\"fx\")+\"queue\",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||\"fx\";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(\"once memory\").add(function(){L.remove(a,[b+\"queue\",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return\"string\"!=typeof a&&(b=a,a=\"fx\",c--),arguments.lengthx\",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U=\"undefined\";k.focusinBubbles=\"onfocusin\"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(\".\")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,\"events\"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,\"type\")?b.type:b,r=j.call(b,\"namespace\")?b.namespace.split(\".\"):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(\".\")>=0&&(r=q.split(\".\"),q=r.shift(),r.sort()),k=q.indexOf(\":\")<0&&\"on\"+q,b=b[n.expando]?b:new n.Event(q,\"object\"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join(\".\"),b.namespace_re=b.namespace?new RegExp(\"(^|\\\\.)\"+r.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,\"events\")||{})[b.type]&&L.get(g,\"handle\"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,\"events\")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||\"click\"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||\"click\"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\\/>/gi,ba=/<([\\w:]+)/,ca=/<|&#?\\w+;/,da=/<(?:script|style|link)/i,ea=/checked\\s*(?:[^=]|=\\s*.checked.)/i,fa=/^$|\\/(?:java|ecma)script/i,ga=/^true\\/(.*)/,ha=/^\\s*\\s*$/g,ia={option:[1,\"\"],thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,\"table\")&&n.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\")):a}function ka(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],\"globalEval\",!b||L.get(b[c],\"globalEval\"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&T.test(a.type)?b.checked=a.checked:(\"input\"===c||\"textarea\"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,\"script\"),g.length>0&&ma(g,!i&&oa(a,\"script\")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if(\"object\"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement(\"div\")),g=(ba.exec(e)||[\"\",\"\"])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,\"<$1>\")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=\"\"}else l.push(b.createTextNode(e));k.textContent=\"\",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),\"script\"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||\"\")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,\"script\")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(aa,\"<$1>\");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&\"string\"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,\"script\"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,\"script\"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||\"\")&&!L.access(h,\"globalEval\")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,\"\")))}return this}}),n.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],\"display\");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),\"none\"!==c&&c||(qa=(qa||n(\"'\n ).bind('load', function () {\n var fileInputClones,\n paramNames = $.isArray(options.paramName) ?\n options.paramName : [options.paramName];\n iframe\n .unbind('load')\n .bind('load', function () {\n var response;\n // Wrap in a try/catch block to catch exceptions thrown\n // when trying to access cross-domain iframe contents:\n try {\n response = iframe.contents();\n // Google Chrome and Firefox do not throw an\n // exception when calling iframe.contents() on\n // cross-domain requests, so we unify the response:\n if (!response.length || !response[0].firstChild) {\n throw new Error();\n }\n } catch (e) {\n response = undefined;\n }\n // The complete callback returns the\n // iframe content document as response object:\n completeCallback(\n 200,\n 'success',\n {'iframe': response}\n );\n // Fix for IE endless progress bar activity bug\n // (happens on form submits to iframe targets):\n $('')\n .appendTo(form);\n window.setTimeout(function () {\n // Removing the form in a setTimeout call\n // allows Chrome's developer tools to display\n // the response result\n form.remove();\n }, 0);\n });\n form\n .prop('target', iframe.prop('name'))\n .prop('action', options.url)\n .prop('method', options.type);\n if (options.formData) {\n $.each(options.formData, function (index, field) {\n $('')\n .prop('name', field.name)\n .val(field.value)\n .appendTo(form);\n });\n }\n if (options.fileInput && options.fileInput.length &&\n options.type === 'POST') {\n fileInputClones = options.fileInput.clone();\n // Insert a clone for each file input field:\n options.fileInput.after(function (index) {\n return fileInputClones[index];\n });\n if (options.paramName) {\n options.fileInput.each(function (index) {\n $(this).prop(\n 'name',\n paramNames[index] || options.paramName\n );\n });\n }\n // Appending the file input fields to the hidden form\n // removes them from their original location:\n form\n .append(options.fileInput)\n .prop('enctype', 'multipart/form-data')\n // enctype must be set as encoding for IE:\n .prop('encoding', 'multipart/form-data');\n // Remove the HTML5 form attribute from the input(s):\n options.fileInput.removeAttr('form');\n }\n form.submit();\n // Insert the file input fields at their original location\n // by replacing the clones with the originals:\n if (fileInputClones && fileInputClones.length) {\n options.fileInput.each(function (index, input) {\n var clone = $(fileInputClones[index]);\n // Restore the original name and form properties:\n $(input)\n .prop('name', clone.prop('name'))\n .attr('form', clone.attr('form'));\n clone.replaceWith(input);\n });\n }\n });\n form.append(iframe).appendTo(document.body);\n },\n abort: function () {\n if (iframe) {\n // javascript:false as iframe src aborts the request\n // and prevents warning popups on HTTPS in IE6.\n // concat is used to avoid the \"Script URL\" JSLint error:\n iframe\n .unbind('load')\n .prop('src', initialIframeSrc);\n }\n if (form) {\n form.remove();\n }\n }\n };\n }\n });\n\n // The iframe transport returns the iframe content document as response.\n // The following adds converters from iframe to text, json, html, xml\n // and script.\n // Please note that the Content-Type for JSON responses has to be text/plain\n // or text/html, if the browser doesn't include application/json in the\n // Accept header, else IE will show a download dialog.\n // The Content-Type for XML responses on the other hand has to be always\n // application/xml or text/xml, so IE properly parses the XML response.\n // See also\n // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\n $.ajaxSetup({\n converters: {\n 'iframe text': function (iframe) {\n return iframe && $(iframe[0].body).text();\n },\n 'iframe json': function (iframe) {\n return iframe && $.parseJSON($(iframe[0].body).text());\n },\n 'iframe html': function (iframe) {\n return iframe && $(iframe[0].body).html();\n },\n 'iframe xml': function (iframe) {\n var xmlDoc = iframe && iframe[0];\n return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\n $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\n $(xmlDoc.body).html());\n },\n 'iframe script': function (iframe) {\n return iframe && $.globalEval($(iframe[0].body).text());\n }\n }\n });\n\n}));\n","/*\n * jQuery File Upload Plugin 5.42.3\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document, location, Blob, FormData */\n\n(function (factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define([\n 'jquery',\n 'jquery.ui.widget'\n ], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS:\n factory(\n require('jquery'),\n require('./vendor/jquery.ui.widget')\n );\n } else {\n // Browser globals:\n factory(window.jQuery);\n }\n}(function ($) {\n 'use strict';\n\n // Detect file input support, based on\n // http://viljamis.com/blog/2012/file-upload-support-on-mobile/\n $.support.fileInput = !(new RegExp(\n // Handle devices which give false positives for the feature detection:\n '(Android (1\\\\.[0156]|2\\\\.[01]))' +\n '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\n '|(w(eb)?OSBrowser)|(webOS)' +\n '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))'\n ).test(window.navigator.userAgent) ||\n // Feature detection for all other devices:\n $('').prop('disabled'));\n\n // The FileReader API is not actually used, but works as feature detection,\n // as some Safari versions (5?) support XHR file uploads via the FormData API,\n // but not non-multipart XHR file uploads.\n // window.XMLHttpRequestUpload is not available on IE10, so we check for\n // window.ProgressEvent instead to detect XHR2 file upload capability:\n $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\n $.support.xhrFormDataFileUpload = !!window.FormData;\n\n // Detect support for Blob slicing (required for chunked uploads):\n $.support.blobSlice = window.Blob && (Blob.prototype.slice ||\n Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n\n // Helper function to create drag handlers for dragover/dragenter/dragleave:\n function getDragHandler(type) {\n var isDragOver = type === 'dragover';\n return function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var dataTransfer = e.dataTransfer;\n if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&\n this._trigger(\n type,\n $.Event(type, {delegatedEvent: e})\n ) !== false) {\n e.preventDefault();\n if (isDragOver) {\n dataTransfer.dropEffect = 'copy';\n }\n }\n };\n }\n\n // The fileupload widget listens for change events on file input fields defined\n // via fileInput setting and paste or drop events of the given dropZone.\n // In addition to the default jQuery Widget methods, the fileupload widget\n // exposes the \"add\" and \"send\" methods, to add or directly send files using\n // the fileupload API.\n // By default, files added via file input selection, paste, drag & drop or\n // \"add\" method are uploaded immediately, but it is possible to override\n // the \"add\" callback option to queue file uploads.\n $.widget('blueimp.fileupload', {\n\n options: {\n // The drop target element(s), by the default the complete document.\n // Set to null to disable drag & drop support:\n dropZone: $(document),\n // The paste target element(s), by the default undefined.\n // Set to a DOM node or jQuery object to enable file pasting:\n pasteZone: undefined,\n // The file input field(s), that are listened to for change events.\n // If undefined, it is set to the file input fields inside\n // of the widget element on plugin initialization.\n // Set to null to disable the change listener.\n fileInput: undefined,\n // By default, the file input field is replaced with a clone after\n // each input field change event. This is required for iframe transport\n // queues and allows change events to be fired for the same file\n // selection, but can be disabled by setting the following option to false:\n replaceFileInput: true,\n // The parameter name for the file form data (the request argument name).\n // If undefined or empty, the name property of the file input field is\n // used, or \"files[]\" if the file input name property is also empty,\n // can be a string or an array of strings:\n paramName: undefined,\n // By default, each file of a selection is uploaded using an individual\n // request for XHR type uploads. Set to false to upload file\n // selections in one request each:\n singleFileUploads: true,\n // To limit the number of files uploaded with one XHR request,\n // set the following option to an integer greater than 0:\n limitMultiFileUploads: undefined,\n // The following option limits the number of files uploaded with one\n // XHR request to keep the request size under or equal to the defined\n // limit in bytes:\n limitMultiFileUploadSize: undefined,\n // Multipart file uploads add a number of bytes to each uploaded file,\n // therefore the following option adds an overhead for each file used\n // in the limitMultiFileUploadSize configuration:\n limitMultiFileUploadSizeOverhead: 512,\n // Set the following option to true to issue all file upload requests\n // in a sequential order:\n sequentialUploads: false,\n // To limit the number of concurrent uploads,\n // set the following option to an integer greater than 0:\n limitConcurrentUploads: undefined,\n // Set the following option to true to force iframe transport uploads:\n forceIframeTransport: false,\n // Set the following option to the location of a redirect url on the\n // origin server, for cross-domain iframe transport uploads:\n redirect: undefined,\n // The parameter name for the redirect url, sent as part of the form\n // data and set to 'redirect' if this option is empty:\n redirectParamName: undefined,\n // Set the following option to the location of a postMessage window,\n // to enable postMessage transport uploads:\n postMessage: undefined,\n // By default, XHR file uploads are sent as multipart/form-data.\n // The iframe transport is always using multipart/form-data.\n // Set to false to enable non-multipart XHR uploads:\n multipart: true,\n // To upload large files in smaller chunks, set the following option\n // to a preferred maximum chunk size. If set to 0, null or undefined,\n // or the browser does not support the required Blob API, files will\n // be uploaded as a whole.\n maxChunkSize: undefined,\n // When a non-multipart upload or a chunked multipart upload has been\n // aborted, this option can be used to resume the upload by setting\n // it to the size of the already uploaded bytes. This option is most\n // useful when modifying the options object inside of the \"add\" or\n // \"send\" callbacks, as the options are cloned for each file upload.\n uploadedBytes: undefined,\n // By default, failed (abort or error) file uploads are removed from the\n // global progress calculation. Set the following option to false to\n // prevent recalculating the global progress data:\n recalculateProgress: true,\n // Interval in milliseconds to calculate and trigger progress events:\n progressInterval: 100,\n // Interval in milliseconds to calculate progress bitrate:\n bitrateInterval: 500,\n // By default, uploads are started automatically when adding files:\n autoUpload: true,\n\n // Error and info messages:\n messages: {\n uploadedBytes: 'Uploaded bytes exceed file size'\n },\n\n // Translation function, gets the message key to be translated\n // and an object with context specific data as arguments:\n i18n: function (message, context) {\n message = this.messages[message] || message.toString();\n if (context) {\n $.each(context, function (key, value) {\n message = message.replace('{' + key + '}', value);\n });\n }\n return message;\n },\n\n // Additional form data to be sent along with the file uploads can be set\n // using this option, which accepts an array of objects with name and\n // value properties, a function returning such an array, a FormData\n // object (for XHR file uploads), or a simple object.\n // The form of the first fileInput is given as parameter to the function:\n formData: function (form) {\n return form.serializeArray();\n },\n\n // The add callback is invoked as soon as files are added to the fileupload\n // widget (via file input selection, drag & drop, paste or add API call).\n // If the singleFileUploads option is enabled, this callback will be\n // called once for each file in the selection for XHR file uploads, else\n // once for each file selection.\n //\n // The upload starts when the submit method is invoked on the data parameter.\n // The data object contains a files property holding the added files\n // and allows you to override plugin options as well as define ajax settings.\n //\n // Listeners for this callback can also be bound the following way:\n // .bind('fileuploadadd', func);\n //\n // data.submit() returns a Promise object and allows to attach additional\n // handlers using jQuery's Deferred callbacks:\n // data.submit().done(func).fail(func).always(func);\n add: function (e, data) {\n if (e.isDefaultPrevented()) {\n return false;\n }\n if (data.autoUpload || (data.autoUpload !== false &&\n $(this).fileupload('option', 'autoUpload'))) {\n data.process().done(function () {\n data.submit();\n });\n }\n },\n\n // Other callbacks:\n\n // Callback for the submit event of each file upload:\n // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n // Callback for the start of each file upload request:\n // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n // Callback for successful uploads:\n // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n // Callback for failed (abort or error) uploads:\n // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n // Callback for completed (success, abort or error) requests:\n // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n // Callback for upload progress events:\n // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n // Callback for global upload progress events:\n // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n // Callback for uploads start, equivalent to the global ajaxStart event:\n // start: function (e) {}, // .bind('fileuploadstart', func);\n\n // Callback for uploads stop, equivalent to the global ajaxStop event:\n // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n // Callback for change events of the fileInput(s):\n // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n // Callback for paste events to the pasteZone(s):\n // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n // Callback for drop events of the dropZone(s):\n // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n // Callback for dragover events of the dropZone(s):\n // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n // Callback for the start of each chunk upload request:\n // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n // Callback for successful chunk uploads:\n // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n // Callback for failed (abort or error) chunk uploads:\n // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n // Callback for completed (success, abort or error) chunk upload requests:\n // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n // The plugin options are used as settings object for the ajax calls.\n // The following are jQuery ajax settings required for the file uploads:\n processData: false,\n contentType: false,\n cache: false,\n timeout: 0\n },\n\n // A list of options that require reinitializing event listeners and/or\n // special initialization code:\n _specialOptions: [\n 'fileInput',\n 'dropZone',\n 'pasteZone',\n 'multipart',\n 'forceIframeTransport'\n ],\n\n _blobSlice: $.support.blobSlice && function () {\n var slice = this.slice || this.webkitSlice || this.mozSlice;\n return slice.apply(this, arguments);\n },\n\n _BitrateTimer: function () {\n this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n this.loaded = 0;\n this.bitrate = 0;\n this.getBitrate = function (now, loaded, interval) {\n var timeDiff = now - this.timestamp;\n if (!this.bitrate || !interval || timeDiff > interval) {\n this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n this.loaded = loaded;\n this.timestamp = now;\n }\n return this.bitrate;\n };\n },\n\n _isXHRUpload: function (options) {\n return !options.forceIframeTransport &&\n ((!options.multipart && $.support.xhrFileUpload) ||\n $.support.xhrFormDataFileUpload);\n },\n\n _getFormData: function (options) {\n var formData;\n if ($.type(options.formData) === 'function') {\n return options.formData(options.form);\n }\n if ($.isArray(options.formData)) {\n return options.formData;\n }\n if ($.type(options.formData) === 'object') {\n formData = [];\n $.each(options.formData, function (name, value) {\n formData.push({name: name, value: value});\n });\n return formData;\n }\n return [];\n },\n\n _getTotal: function (files) {\n var total = 0;\n $.each(files, function (index, file) {\n total += file.size || 1;\n });\n return total;\n },\n\n _initProgressObject: function (obj) {\n var progress = {\n loaded: 0,\n total: 0,\n bitrate: 0\n };\n if (obj._progress) {\n $.extend(obj._progress, progress);\n } else {\n obj._progress = progress;\n }\n },\n\n _initResponseObject: function (obj) {\n var prop;\n if (obj._response) {\n for (prop in obj._response) {\n if (obj._response.hasOwnProperty(prop)) {\n delete obj._response[prop];\n }\n }\n } else {\n obj._response = {};\n }\n },\n\n _onProgress: function (e, data) {\n if (e.lengthComputable) {\n var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n loaded;\n if (data._time && data.progressInterval &&\n (now - data._time < data.progressInterval) &&\n e.loaded !== e.total) {\n return;\n }\n data._time = now;\n loaded = Math.floor(\n e.loaded / e.total * (data.chunkSize || data._progress.total)\n ) + (data.uploadedBytes || 0);\n // Add the difference from the previously loaded state\n // to the global loaded counter:\n this._progress.loaded += (loaded - data._progress.loaded);\n this._progress.bitrate = this._bitrateTimer.getBitrate(\n now,\n this._progress.loaded,\n data.bitrateInterval\n );\n data._progress.loaded = data.loaded = loaded;\n data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n now,\n loaded,\n data.bitrateInterval\n );\n // Trigger a custom progress event with a total data property set\n // to the file size(s) of the current upload and a loaded data\n // property calculated accordingly:\n this._trigger(\n 'progress',\n $.Event('progress', {delegatedEvent: e}),\n data\n );\n // Trigger a global progress event for all current file uploads,\n // including ajax calls queued for sequential file uploads:\n this._trigger(\n 'progressall',\n $.Event('progressall', {delegatedEvent: e}),\n this._progress\n );\n }\n },\n\n _initProgressListener: function (options) {\n var that = this,\n xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n // Accesss to the native XHR object is required to add event listeners\n // for the upload progress event:\n if (xhr.upload) {\n $(xhr.upload).bind('progress', function (e) {\n var oe = e.originalEvent;\n // Make sure the progress event properties get copied over:\n e.lengthComputable = oe.lengthComputable;\n e.loaded = oe.loaded;\n e.total = oe.total;\n that._onProgress(e, options);\n });\n options.xhr = function () {\n return xhr;\n };\n }\n },\n\n _isInstanceOf: function (type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n _initXHRData: function (options) {\n var that = this,\n formData,\n file = options.files[0],\n // Ignore non-multipart setting if not supported:\n multipart = options.multipart || !$.support.xhrFileUpload,\n paramName = $.type(options.paramName) === 'array' ?\n options.paramName[0] : options.paramName;\n options.headers = $.extend({}, options.headers);\n if (options.contentRange) {\n options.headers['Content-Range'] = options.contentRange;\n }\n if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\n options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n encodeURI(file.name) + '\"';\n }\n if (!multipart) {\n options.contentType = file.type || 'application/octet-stream';\n options.data = options.blob || file;\n } else if ($.support.xhrFormDataFileUpload) {\n if (options.postMessage) {\n // window.postMessage does not allow sending FormData\n // objects, so we just add the File/Blob objects to\n // the formData array and let the postMessage window\n // create the FormData object out of this array:\n formData = this._getFormData(options);\n if (options.blob) {\n formData.push({\n name: paramName,\n value: options.blob\n });\n } else {\n $.each(options.files, function (index, file) {\n formData.push({\n name: ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n value: file\n });\n });\n }\n } else {\n if (that._isInstanceOf('FormData', options.formData)) {\n formData = options.formData;\n } else {\n formData = new FormData();\n $.each(this._getFormData(options), function (index, field) {\n formData.append(field.name, field.value);\n });\n }\n if (options.blob) {\n formData.append(paramName, options.blob, file.name);\n } else {\n $.each(options.files, function (index, file) {\n // This check allows the tests to run with\n // dummy objects:\n if (that._isInstanceOf('File', file) ||\n that._isInstanceOf('Blob', file)) {\n formData.append(\n ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n file,\n file.uploadName || file.name\n );\n }\n });\n }\n }\n options.data = formData;\n }\n // Blob reference is not needed anymore, free memory:\n options.blob = null;\n },\n\n _initIframeSettings: function (options) {\n var targetHost = $('').prop('href', options.url).prop('host');\n // Setting the dataType to iframe enables the iframe transport:\n options.dataType = 'iframe ' + (options.dataType || '');\n // The iframe transport accepts a serialized array as form data:\n options.formData = this._getFormData(options);\n // Add redirect url to form data on cross-domain uploads:\n if (options.redirect && targetHost && targetHost !== location.host) {\n options.formData.push({\n name: options.redirectParamName || 'redirect',\n value: options.redirect\n });\n }\n },\n\n _initDataSettings: function (options) {\n if (this._isXHRUpload(options)) {\n if (!this._chunkedUpload(options, true)) {\n if (!options.data) {\n this._initXHRData(options);\n }\n this._initProgressListener(options);\n }\n if (options.postMessage) {\n // Setting the dataType to postmessage enables the\n // postMessage transport:\n options.dataType = 'postmessage ' + (options.dataType || '');\n }\n } else {\n this._initIframeSettings(options);\n }\n },\n\n _getParamName: function (options) {\n var fileInput = $(options.fileInput),\n paramName = options.paramName;\n if (!paramName) {\n paramName = [];\n fileInput.each(function () {\n var input = $(this),\n name = input.prop('name') || 'files[]',\n i = (input.prop('files') || [1]).length;\n while (i) {\n paramName.push(name);\n i -= 1;\n }\n });\n if (!paramName.length) {\n paramName = [fileInput.prop('name') || 'files[]'];\n }\n } else if (!$.isArray(paramName)) {\n paramName = [paramName];\n }\n return paramName;\n },\n\n _initFormSettings: function (options) {\n // Retrieve missing options from the input field and the\n // associated form, if available:\n if (!options.form || !options.form.length) {\n options.form = $(options.fileInput.prop('form'));\n // If the given file input doesn't have an associated form,\n // use the default widget file input's form:\n if (!options.form.length) {\n options.form = $(this.options.fileInput.prop('form'));\n }\n }\n options.paramName = this._getParamName(options);\n if (!options.url) {\n options.url = options.form.prop('action') || location.href;\n }\n // The HTTP request method must be \"POST\" or \"PUT\":\n options.type = (options.type ||\n ($.type(options.form.prop('method')) === 'string' &&\n options.form.prop('method')) || ''\n ).toUpperCase();\n if (options.type !== 'POST' && options.type !== 'PUT' &&\n options.type !== 'PATCH') {\n options.type = 'POST';\n }\n if (!options.formAcceptCharset) {\n options.formAcceptCharset = options.form.attr('accept-charset');\n }\n },\n\n _getAJAXSettings: function (data) {\n var options = $.extend({}, this.options, data);\n this._initFormSettings(options);\n this._initDataSettings(options);\n return options;\n },\n\n // jQuery 1.6 doesn't provide .state(),\n // while jQuery 1.8+ removed .isRejected() and .isResolved():\n _getDeferredState: function (deferred) {\n if (deferred.state) {\n return deferred.state();\n }\n if (deferred.isResolved()) {\n return 'resolved';\n }\n if (deferred.isRejected()) {\n return 'rejected';\n }\n return 'pending';\n },\n\n // Maps jqXHR callbacks to the equivalent\n // methods of the given Promise object:\n _enhancePromise: function (promise) {\n promise.success = promise.done;\n promise.error = promise.fail;\n promise.complete = promise.always;\n return promise;\n },\n\n // Creates and returns a Promise object enhanced with\n // the jqXHR methods abort, success, error and complete:\n _getXHRPromise: function (resolveOrReject, context, args) {\n var dfd = $.Deferred(),\n promise = dfd.promise();\n context = context || this.options.context || promise;\n if (resolveOrReject === true) {\n dfd.resolveWith(context, args);\n } else if (resolveOrReject === false) {\n dfd.rejectWith(context, args);\n }\n promise.abort = dfd.promise;\n return this._enhancePromise(promise);\n },\n\n // Adds convenience methods to the data callback argument:\n _addConvenienceMethods: function (e, data) {\n var that = this,\n getPromise = function (args) {\n return $.Deferred().resolveWith(that, args).promise();\n };\n data.process = function (resolveFunc, rejectFunc) {\n if (resolveFunc || rejectFunc) {\n data._processQueue = this._processQueue =\n (this._processQueue || getPromise([this])).pipe(\n function () {\n if (data.errorThrown) {\n return $.Deferred()\n .rejectWith(that, [data]).promise();\n }\n return getPromise(arguments);\n }\n ).pipe(resolveFunc, rejectFunc);\n }\n return this._processQueue || getPromise([this]);\n };\n data.submit = function () {\n if (this.state() !== 'pending') {\n data.jqXHR = this.jqXHR =\n (that._trigger(\n 'submit',\n $.Event('submit', {delegatedEvent: e}),\n this\n ) !== false) && that._onSend(e, this);\n }\n return this.jqXHR || that._getXHRPromise();\n };\n data.abort = function () {\n if (this.jqXHR) {\n return this.jqXHR.abort();\n }\n this.errorThrown = 'abort';\n that._trigger('fail', null, this);\n return that._getXHRPromise(false);\n };\n data.state = function () {\n if (this.jqXHR) {\n return that._getDeferredState(this.jqXHR);\n }\n if (this._processQueue) {\n return that._getDeferredState(this._processQueue);\n }\n };\n data.processing = function () {\n return !this.jqXHR && this._processQueue && that\n ._getDeferredState(this._processQueue) === 'pending';\n };\n data.progress = function () {\n return this._progress;\n };\n data.response = function () {\n return this._response;\n };\n },\n\n // Parses the Range header from the server response\n // and returns the uploaded bytes:\n _getUploadedBytes: function (jqXHR) {\n var range = jqXHR.getResponseHeader('Range'),\n parts = range && range.split('-'),\n upperBytesPos = parts && parts.length > 1 &&\n parseInt(parts[1], 10);\n return upperBytesPos && upperBytesPos + 1;\n },\n\n // Uploads a file in multiple, sequential requests\n // by splitting the file up in multiple blob chunks.\n // If the second parameter is true, only tests if the file\n // should be uploaded in chunks, but does not invoke any\n // upload requests:\n _chunkedUpload: function (options, testOnly) {\n options.uploadedBytes = options.uploadedBytes || 0;\n var that = this,\n file = options.files[0],\n fs = file.size,\n ub = options.uploadedBytes,\n mcs = options.maxChunkSize || fs,\n slice = this._blobSlice,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n upload;\n if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n options.data) {\n return false;\n }\n if (testOnly) {\n return true;\n }\n if (ub >= fs) {\n file.error = options.i18n('uploadedBytes');\n return this._getXHRPromise(\n false,\n options.context,\n [null, 'error', file.error]\n );\n }\n // The chunk upload method:\n upload = function () {\n // Clone the options object for each chunk upload:\n var o = $.extend({}, options),\n currentLoaded = o._progress.loaded;\n o.blob = slice.call(\n file,\n ub,\n ub + mcs,\n file.type\n );\n // Store the current chunk size, as the blob itself\n // will be dereferenced after data processing:\n o.chunkSize = o.blob.size;\n // Expose the chunk bytes position range:\n o.contentRange = 'bytes ' + ub + '-' +\n (ub + o.chunkSize - 1) + '/' + fs;\n // Process the upload data (the blob and potential form data):\n that._initXHRData(o);\n // Add progress listeners for this chunk upload:\n that._initProgressListener(o);\n jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n that._getXHRPromise(false, o.context))\n .done(function (result, textStatus, jqXHR) {\n ub = that._getUploadedBytes(jqXHR) ||\n (ub + o.chunkSize);\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered\n // for this chunk:\n if (currentLoaded + o.chunkSize - o._progress.loaded) {\n that._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: ub - o.uploadedBytes,\n total: ub - o.uploadedBytes\n }), o);\n }\n options.uploadedBytes = o.uploadedBytes = ub;\n o.result = result;\n o.textStatus = textStatus;\n o.jqXHR = jqXHR;\n that._trigger('chunkdone', null, o);\n that._trigger('chunkalways', null, o);\n if (ub < fs) {\n // File upload not yet complete,\n // continue with the next chunk:\n upload();\n } else {\n dfd.resolveWith(\n o.context,\n [result, textStatus, jqXHR]\n );\n }\n })\n .fail(function (jqXHR, textStatus, errorThrown) {\n o.jqXHR = jqXHR;\n o.textStatus = textStatus;\n o.errorThrown = errorThrown;\n that._trigger('chunkfail', null, o);\n that._trigger('chunkalways', null, o);\n dfd.rejectWith(\n o.context,\n [jqXHR, textStatus, errorThrown]\n );\n });\n };\n this._enhancePromise(promise);\n promise.abort = function () {\n return jqXHR.abort();\n };\n upload();\n return promise;\n },\n\n _beforeSend: function (e, data) {\n if (this._active === 0) {\n // the start callback is triggered when an upload starts\n // and no other uploads are currently running,\n // equivalent to the global ajaxStart event:\n this._trigger('start');\n // Set timer for global bitrate progress calculation:\n this._bitrateTimer = new this._BitrateTimer();\n // Reset the global progress values:\n this._progress.loaded = this._progress.total = 0;\n this._progress.bitrate = 0;\n }\n // Make sure the container objects for the .response() and\n // .progress() methods on the data object are available\n // and reset to their initial state:\n this._initResponseObject(data);\n this._initProgressObject(data);\n data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n data._progress.total = data.total = this._getTotal(data.files) || 1;\n data._progress.bitrate = data.bitrate = 0;\n this._active += 1;\n // Initialize the global progress values:\n this._progress.loaded += data.loaded;\n this._progress.total += data.total;\n },\n\n _onDone: function (result, textStatus, jqXHR, options) {\n var total = options._progress.total,\n response = options._response;\n if (options._progress.loaded < total) {\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered:\n this._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: total,\n total: total\n }), options);\n }\n response.result = options.result = result;\n response.textStatus = options.textStatus = textStatus;\n response.jqXHR = options.jqXHR = jqXHR;\n this._trigger('done', null, options);\n },\n\n _onFail: function (jqXHR, textStatus, errorThrown, options) {\n var response = options._response;\n if (options.recalculateProgress) {\n // Remove the failed (error or abort) file upload from\n // the global progress calculation:\n this._progress.loaded -= options._progress.loaded;\n this._progress.total -= options._progress.total;\n }\n response.jqXHR = options.jqXHR = jqXHR;\n response.textStatus = options.textStatus = textStatus;\n response.errorThrown = options.errorThrown = errorThrown;\n this._trigger('fail', null, options);\n },\n\n _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n // jqXHRorResult, textStatus and jqXHRorError are added to the\n // options object via done and fail callbacks\n this._trigger('always', null, options);\n },\n\n _onSend: function (e, data) {\n if (!data.submit) {\n this._addConvenienceMethods(e, data);\n }\n var that = this,\n jqXHR,\n aborted,\n slot,\n pipe,\n options = that._getAJAXSettings(data),\n send = function () {\n that._sending += 1;\n // Set timer for bitrate progress calculation:\n options._bitrateTimer = new that._BitrateTimer();\n jqXHR = jqXHR || (\n ((aborted || that._trigger(\n 'send',\n $.Event('send', {delegatedEvent: e}),\n options\n ) === false) &&\n that._getXHRPromise(false, options.context, aborted)) ||\n that._chunkedUpload(options) || $.ajax(options)\n ).done(function (result, textStatus, jqXHR) {\n that._onDone(result, textStatus, jqXHR, options);\n }).fail(function (jqXHR, textStatus, errorThrown) {\n that._onFail(jqXHR, textStatus, errorThrown, options);\n }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n that._onAlways(\n jqXHRorResult,\n textStatus,\n jqXHRorError,\n options\n );\n that._sending -= 1;\n that._active -= 1;\n if (options.limitConcurrentUploads &&\n options.limitConcurrentUploads > that._sending) {\n // Start the next queued upload,\n // that has not been aborted:\n var nextSlot = that._slots.shift();\n while (nextSlot) {\n if (that._getDeferredState(nextSlot) === 'pending') {\n nextSlot.resolve();\n break;\n }\n nextSlot = that._slots.shift();\n }\n }\n if (that._active === 0) {\n // The stop callback is triggered when all uploads have\n // been completed, equivalent to the global ajaxStop event:\n that._trigger('stop');\n }\n });\n return jqXHR;\n };\n this._beforeSend(e, options);\n if (this.options.sequentialUploads ||\n (this.options.limitConcurrentUploads &&\n this.options.limitConcurrentUploads <= this._sending)) {\n if (this.options.limitConcurrentUploads > 1) {\n slot = $.Deferred();\n this._slots.push(slot);\n pipe = slot.pipe(send);\n } else {\n this._sequence = this._sequence.pipe(send, send);\n pipe = this._sequence;\n }\n // Return the piped Promise object, enhanced with an abort method,\n // which is delegated to the jqXHR object of the current upload,\n // and jqXHR callbacks mapped to the equivalent Promise methods:\n pipe.abort = function () {\n aborted = [undefined, 'abort', 'abort'];\n if (!jqXHR) {\n if (slot) {\n slot.rejectWith(options.context, aborted);\n }\n return send();\n }\n return jqXHR.abort();\n };\n return this._enhancePromise(pipe);\n }\n return send();\n },\n\n _onAdd: function (e, data) {\n var that = this,\n result = true,\n options = $.extend({}, this.options, data),\n files = data.files,\n filesLength = files.length,\n limit = options.limitMultiFileUploads,\n limitSize = options.limitMultiFileUploadSize,\n overhead = options.limitMultiFileUploadSizeOverhead,\n batchSize = 0,\n paramName = this._getParamName(options),\n paramNameSet,\n paramNameSlice,\n fileSet,\n i,\n j = 0;\n if (!filesLength) {\n return false;\n }\n if (limitSize && files[0].size === undefined) {\n limitSize = undefined;\n }\n if (!(options.singleFileUploads || limit || limitSize) ||\n !this._isXHRUpload(options)) {\n fileSet = [files];\n paramNameSet = [paramName];\n } else if (!(options.singleFileUploads || limitSize) && limit) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i += limit) {\n fileSet.push(files.slice(i, i + limit));\n paramNameSlice = paramName.slice(i, i + limit);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n }\n } else if (!options.singleFileUploads && limitSize) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i = i + 1) {\n batchSize += files[i].size + overhead;\n if (i + 1 === filesLength ||\n ((batchSize + files[i + 1].size + overhead) > limitSize) ||\n (limit && i + 1 - j >= limit)) {\n fileSet.push(files.slice(j, i + 1));\n paramNameSlice = paramName.slice(j, i + 1);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n j = i + 1;\n batchSize = 0;\n }\n }\n } else {\n paramNameSet = paramName;\n }\n data.originalFiles = files;\n $.each(fileSet || files, function (index, element) {\n var newData = $.extend({}, data);\n newData.files = fileSet ? element : [element];\n newData.paramName = paramNameSet[index];\n that._initResponseObject(newData);\n that._initProgressObject(newData);\n that._addConvenienceMethods(e, newData);\n result = that._trigger(\n 'add',\n $.Event('add', {delegatedEvent: e}),\n newData\n );\n return result;\n });\n return result;\n },\n\n _replaceFileInput: function (data) {\n var input = data.fileInput,\n inputClone = input.clone(true);\n // Add a reference for the new cloned file input to the data argument:\n data.fileInputClone = inputClone;\n $('
').append(inputClone)[0].reset();\n // Detaching allows to insert the fileInput on another form\n // without loosing the file input value:\n input.after(inputClone).detach();\n // Avoid memory leaks with the detached file input:\n $.cleanData(input.unbind('remove'));\n // Replace the original file input element in the fileInput\n // elements set with the clone, which has been copied including\n // event handlers:\n this.options.fileInput = this.options.fileInput.map(function (i, el) {\n if (el === input[0]) {\n return inputClone[0];\n }\n return el;\n });\n // If the widget has been initialized on the file input itself,\n // override this.element with the file input clone:\n if (input[0] === this.element[0]) {\n this.element = inputClone;\n }\n },\n\n _handleFileTreeEntry: function (entry, path) {\n var that = this,\n dfd = $.Deferred(),\n errorHandler = function (e) {\n if (e && !e.entry) {\n e.entry = entry;\n }\n // Since $.when returns immediately if one\n // Deferred is rejected, we use resolve instead.\n // This allows valid files and invalid items\n // to be returned together in one set:\n dfd.resolve([e]);\n },\n successHandler = function (entries) {\n that._handleFileTreeEntries(\n entries,\n path + entry.name + '/'\n ).done(function (files) {\n dfd.resolve(files);\n }).fail(errorHandler);\n },\n readEntries = function () {\n dirReader.readEntries(function (results) {\n if (!results.length) {\n successHandler(entries);\n } else {\n entries = entries.concat(results);\n readEntries();\n }\n }, errorHandler);\n },\n dirReader, entries = [];\n path = path || '';\n if (entry.isFile) {\n if (entry._file) {\n // Workaround for Chrome bug #149735\n entry._file.relativePath = path;\n dfd.resolve(entry._file);\n } else {\n entry.file(function (file) {\n file.relativePath = path;\n dfd.resolve(file);\n }, errorHandler);\n }\n } else if (entry.isDirectory) {\n dirReader = entry.createReader();\n readEntries();\n } else {\n // Return an empy list for file system items\n // other than files or directories:\n dfd.resolve([]);\n }\n return dfd.promise();\n },\n\n _handleFileTreeEntries: function (entries, path) {\n var that = this;\n return $.when.apply(\n $,\n $.map(entries, function (entry) {\n return that._handleFileTreeEntry(entry, path);\n })\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _getDroppedFiles: function (dataTransfer) {\n dataTransfer = dataTransfer || {};\n var items = dataTransfer.items;\n if (items && items.length && (items[0].webkitGetAsEntry ||\n items[0].getAsEntry)) {\n return this._handleFileTreeEntries(\n $.map(items, function (item) {\n var entry;\n if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n if (entry) {\n // Workaround for Chrome bug #149735:\n entry._file = item.getAsFile();\n }\n return entry;\n }\n return item.getAsEntry();\n })\n );\n }\n return $.Deferred().resolve(\n $.makeArray(dataTransfer.files)\n ).promise();\n },\n\n _getSingleFileInputFiles: function (fileInput) {\n fileInput = $(fileInput);\n var entries = fileInput.prop('webkitEntries') ||\n fileInput.prop('entries'),\n files,\n value;\n if (entries && entries.length) {\n return this._handleFileTreeEntries(entries);\n }\n files = $.makeArray(fileInput.prop('files'));\n if (!files.length) {\n value = fileInput.prop('value');\n if (!value) {\n return $.Deferred().resolve([]).promise();\n }\n // If the files property is not available, the browser does not\n // support the File API and we add a pseudo File object with\n // the input value as name with path information removed:\n files = [{name: value.replace(/^.*\\\\/, '')}];\n } else if (files[0].name === undefined && files[0].fileName) {\n // File normalization for Safari 4 and Firefox 3:\n $.each(files, function (index, file) {\n file.name = file.fileName;\n file.size = file.fileSize;\n });\n }\n return $.Deferred().resolve(files).promise();\n },\n\n _getFileInputFiles: function (fileInput) {\n if (!(fileInput instanceof $) || fileInput.length === 1) {\n return this._getSingleFileInputFiles(fileInput);\n }\n return $.when.apply(\n $,\n $.map(fileInput, this._getSingleFileInputFiles)\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _onChange: function (e) {\n var that = this,\n data = {\n fileInput: $(e.target),\n form: $(e.target.form)\n };\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n if (that.options.replaceFileInput) {\n that._replaceFileInput(data);\n }\n if (that._trigger(\n 'change',\n $.Event('change', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n },\n\n _onPaste: function (e) {\n var items = e.originalEvent && e.originalEvent.clipboardData &&\n e.originalEvent.clipboardData.items,\n data = {files: []};\n if (items && items.length) {\n $.each(items, function (index, item) {\n var file = item.getAsFile && item.getAsFile();\n if (file) {\n data.files.push(file);\n }\n });\n if (this._trigger(\n 'paste',\n $.Event('paste', {delegatedEvent: e}),\n data\n ) !== false) {\n this._onAdd(e, data);\n }\n }\n },\n\n _onDrop: function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var that = this,\n dataTransfer = e.dataTransfer,\n data = {};\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n e.preventDefault();\n this._getDroppedFiles(dataTransfer).always(function (files) {\n data.files = files;\n if (that._trigger(\n 'drop',\n $.Event('drop', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n }\n },\n\n _onDragOver: getDragHandler('dragover'),\n\n _onDragEnter: getDragHandler('dragenter'),\n\n _onDragLeave: getDragHandler('dragleave'),\n\n _initEventHandlers: function () {\n if (this._isXHRUpload(this.options)) {\n this._on(this.options.dropZone, {\n dragover: this._onDragOver,\n drop: this._onDrop,\n // event.preventDefault() on dragenter is required for IE10+:\n dragenter: this._onDragEnter,\n // dragleave is not required, but added for completeness:\n dragleave: this._onDragLeave\n });\n this._on(this.options.pasteZone, {\n paste: this._onPaste\n });\n }\n if ($.support.fileInput) {\n this._on(this.options.fileInput, {\n change: this._onChange\n });\n }\n },\n\n _destroyEventHandlers: function () {\n this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\n this._off(this.options.pasteZone, 'paste');\n this._off(this.options.fileInput, 'change');\n },\n\n _setOption: function (key, value) {\n var reinit = $.inArray(key, this._specialOptions) !== -1;\n if (reinit) {\n this._destroyEventHandlers();\n }\n this._super(key, value);\n if (reinit) {\n this._initSpecialOptions();\n this._initEventHandlers();\n }\n },\n\n _initSpecialOptions: function () {\n var options = this.options;\n if (options.fileInput === undefined) {\n options.fileInput = this.element.is('input[type=\"file\"]') ?\n this.element : this.element.find('input[type=\"file\"]');\n } else if (!(options.fileInput instanceof $)) {\n options.fileInput = $(options.fileInput);\n }\n if (!(options.dropZone instanceof $)) {\n options.dropZone = $(options.dropZone);\n }\n if (!(options.pasteZone instanceof $)) {\n options.pasteZone = $(options.pasteZone);\n }\n },\n\n _getRegExp: function (str) {\n var parts = str.split('/'),\n modifiers = parts.pop();\n parts.shift();\n return new RegExp(parts.join('/'), modifiers);\n },\n\n _isRegExpOption: function (key, value) {\n return key !== 'url' && $.type(value) === 'string' &&\n /^\\/.*\\/[igm]{0,3}$/.test(value);\n },\n\n _initDataAttributes: function () {\n var that = this,\n options = this.options,\n data = this.element.data();\n // Initialize options set via HTML5 data-attributes:\n $.each(\n this.element[0].attributes,\n function (index, attr) {\n var key = attr.name.toLowerCase(),\n value;\n if (/^data-/.test(key)) {\n // Convert hyphen-ated key to camelCase:\n key = key.slice(5).replace(/-[a-z]/g, function (str) {\n return str.charAt(1).toUpperCase();\n });\n value = data[key];\n if (that._isRegExpOption(key, value)) {\n value = that._getRegExp(value);\n }\n options[key] = value;\n }\n }\n );\n },\n\n _create: function () {\n this._initDataAttributes();\n this._initSpecialOptions();\n this._slots = [];\n this._sequence = this._getXHRPromise(true);\n this._sending = this._active = 0;\n this._initProgressObject(this);\n this._initEventHandlers();\n },\n\n // This method is exposed to the widget API and allows to query\n // the number of active uploads:\n active: function () {\n return this._active;\n },\n\n // This method is exposed to the widget API and allows to query\n // the widget upload progress.\n // It returns an object with loaded, total and bitrate properties\n // for the running uploads:\n progress: function () {\n return this._progress;\n },\n\n // This method is exposed to the widget API and allows adding files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files property and can contain additional options:\n // .fileupload('add', {files: filesList});\n add: function (data) {\n var that = this;\n if (!data || this.options.disabled) {\n return;\n }\n if (data.fileInput && !data.files) {\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n that._onAdd(null, data);\n });\n } else {\n data.files = $.makeArray(data.files);\n this._onAdd(null, data);\n }\n },\n\n // This method is exposed to the widget API and allows sending files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files or fileInput property and can contain additional options:\n // .fileupload('send', {files: filesList});\n // The method returns a Promise object for the file upload call.\n send: function (data) {\n if (data && !this.options.disabled) {\n if (data.fileInput && !data.files) {\n var that = this,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n aborted;\n promise.abort = function () {\n aborted = true;\n if (jqXHR) {\n return jqXHR.abort();\n }\n dfd.reject(null, 'abort', 'abort');\n return promise;\n };\n this._getFileInputFiles(data.fileInput).always(\n function (files) {\n if (aborted) {\n return;\n }\n if (!files.length) {\n dfd.reject();\n return;\n }\n data.files = files;\n jqXHR = that._onSend(null, data);\n jqXHR.then(\n function (result, textStatus, jqXHR) {\n dfd.resolve(result, textStatus, jqXHR);\n },\n function (jqXHR, textStatus, errorThrown) {\n dfd.reject(jqXHR, textStatus, errorThrown);\n }\n );\n }\n );\n return this._enhancePromise(promise);\n }\n data.files = $.makeArray(data.files);\n if (data.files.length) {\n return this._onSend(null, data);\n }\n }\n return this._getXHRPromise(false, data && data.context);\n }\n\n });\n\n}));\n","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.6\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.6\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.6'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.6\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.6'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.6\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.6'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.6\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.6'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.6\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.6'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.6\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.6'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.6\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.6'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.6\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.6'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.6\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.6'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.6\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.6'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.6\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.6'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n",";(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.\n\t *\n\t * @codingstandard ftlabs-jsv2\n\t * @copyright The Financial Times Limited [All Rights Reserved]\n\t * @license MIT License (see LICENSE.txt)\n\t */\n\n\t/*jslint browser:true, node:true*/\n\t/*global define, Event, Node*/\n\n\n\t/**\n\t * Instantiate fast-clicking listeners on the specified layer.\n\t *\n\t * @constructor\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tfunction FastClick(layer, options) {\n\t\tvar oldOnClick;\n\n\t\toptions = options || {};\n\n\t\t/**\n\t\t * Whether a click is currently being tracked.\n\t\t *\n\t\t * @type boolean\n\t\t */\n\t\tthis.trackingClick = false;\n\n\n\t\t/**\n\t\t * Timestamp for when click tracking started.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.trackingClickStart = 0;\n\n\n\t\t/**\n\t\t * The element being tracked for a click.\n\t\t *\n\t\t * @type EventTarget\n\t\t */\n\t\tthis.targetElement = null;\n\n\n\t\t/**\n\t\t * X-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartX = 0;\n\n\n\t\t/**\n\t\t * Y-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartY = 0;\n\n\n\t\t/**\n\t\t * ID of the last touch, retrieved from Touch.identifier.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.lastTouchIdentifier = 0;\n\n\n\t\t/**\n\t\t * Touchmove boundary, beyond which a click will be cancelled.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchBoundary = options.touchBoundary || 10;\n\n\n\t\t/**\n\t\t * The FastClick layer.\n\t\t *\n\t\t * @type Element\n\t\t */\n\t\tthis.layer = layer;\n\n\t\t/**\n\t\t * The minimum time between tap(touchstart and touchend) events\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapDelay = options.tapDelay || 200;\n\n\t\t/**\n\t\t * The maximum time for a tap\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapTimeout = options.tapTimeout || 700;\n\n\t\tif (FastClick.notNeeded(layer)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Some old versions of Android don't have Function.prototype.bind\n\t\tfunction bind(method, context) {\n\t\t\treturn function() { return method.apply(context, arguments); };\n\t\t}\n\n\n\t\tvar methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];\n\t\tvar context = this;\n\t\tfor (var i = 0, l = methods.length; i < l; i++) {\n\t\t\tcontext[methods[i]] = bind(context[methods[i]], context);\n\t\t}\n\n\t\t// Set up event handlers as required\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.addEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.addEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.addEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.addEventListener('click', this.onClick, true);\n\t\tlayer.addEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.addEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.addEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.addEventListener('touchcancel', this.onTouchCancel, false);\n\n\t\t// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick\n\t\t// layer when they are cancelled.\n\t\tif (!Event.prototype.stopImmediatePropagation) {\n\t\t\tlayer.removeEventListener = function(type, callback, capture) {\n\t\t\t\tvar rmv = Node.prototype.removeEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\trmv.call(layer, type, callback.hijacked || callback, capture);\n\t\t\t\t} else {\n\t\t\t\t\trmv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlayer.addEventListener = function(type, callback, capture) {\n\t\t\t\tvar adv = Node.prototype.addEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\tadv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {\n\t\t\t\t\t\tif (!event.propagationStopped) {\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}), capture);\n\t\t\t\t} else {\n\t\t\t\t\tadv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// If a handler is already declared in the element's onclick attribute, it will be fired before\n\t\t// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and\n\t\t// adding it as listener.\n\t\tif (typeof layer.onclick === 'function') {\n\n\t\t\t// Android browser on at least 3.2 requires a new reference to the function in layer.onclick\n\t\t\t// - the old one won't work if passed to addEventListener directly.\n\t\t\toldOnClick = layer.onclick;\n\t\t\tlayer.addEventListener('click', function(event) {\n\t\t\t\toldOnClick(event);\n\t\t\t}, false);\n\t\t\tlayer.onclick = null;\n\t\t}\n\t}\n\n\t/**\n\t* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.\n\t*\n\t* @type boolean\n\t*/\n\tvar deviceIsWindowsPhone = navigator.userAgent.indexOf(\"Windows Phone\") >= 0;\n\n\t/**\n\t * Android requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS 4 requires an exception for select elements.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS4 = deviceIsIOS && (/OS 4_\\d(_\\d)?/).test(navigator.userAgent);\n\n\n\t/**\n\t * iOS 6.0-7.* requires the target element to be manually derived\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\\d/).test(navigator.userAgent);\n\n\t/**\n\t * BlackBerry requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;\n\n\t/**\n\t * Determine whether a given element requires a native click.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element needs a native click\n\t */\n\tFastClick.prototype.needsClick = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\n\t\t// Don't send a synthetic click to disabled inputs (issue #62)\n\t\tcase 'button':\n\t\tcase 'select':\n\t\tcase 'textarea':\n\t\t\tif (target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'input':\n\n\t\t\t// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)\n\t\t\tif ((deviceIsIOS && target.type === 'file') || target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'label':\n\t\tcase 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames\n\t\tcase 'video':\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (/\\bneedsclick\\b/).test(target.className);\n\t};\n\n\n\t/**\n\t * Determine whether a given element requires a call to focus to simulate click into element.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.\n\t */\n\tFastClick.prototype.needsFocus = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\t\tcase 'textarea':\n\t\t\treturn true;\n\t\tcase 'select':\n\t\t\treturn !deviceIsAndroid;\n\t\tcase 'input':\n\t\t\tswitch (target.type) {\n\t\t\tcase 'button':\n\t\t\tcase 'checkbox':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'radio':\n\t\t\tcase 'submit':\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// No point in attempting to focus disabled inputs\n\t\t\treturn !target.disabled && !target.readOnly;\n\t\tdefault:\n\t\t\treturn (/\\bneedsfocus\\b/).test(target.className);\n\t\t}\n\t};\n\n\n\t/**\n\t * Send a click event to the specified element.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t * @param {Event} event\n\t */\n\tFastClick.prototype.sendClick = function(targetElement, event) {\n\t\tvar clickEvent, touch;\n\n\t\t// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)\n\t\tif (document.activeElement && document.activeElement !== targetElement) {\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\n\t\ttouch = event.changedTouches[0];\n\n\t\t// Synthesise a click event, with an extra attribute so it can be tracked\n\t\tclickEvent = document.createEvent('MouseEvents');\n\t\tclickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);\n\t\tclickEvent.forwardedTouchEvent = true;\n\t\ttargetElement.dispatchEvent(clickEvent);\n\t};\n\n\tFastClick.prototype.determineEventType = function(targetElement) {\n\n\t\t//Issue #159: Android Chrome Select Box does not open with a synthetic click event\n\t\tif (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {\n\t\t\treturn 'mousedown';\n\t\t}\n\n\t\treturn 'click';\n\t};\n\n\n\t/**\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.focus = function(targetElement) {\n\t\tvar length;\n\n\t\t// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.\n\t\tif (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {\n\t\t\tlength = targetElement.value.length;\n\t\t\ttargetElement.setSelectionRange(length, length);\n\t\t} else {\n\t\t\ttargetElement.focus();\n\t\t}\n\t};\n\n\n\t/**\n\t * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.updateScrollParent = function(targetElement) {\n\t\tvar scrollParent, parentElement;\n\n\t\tscrollParent = targetElement.fastClickScrollParent;\n\n\t\t// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the\n\t\t// target element was moved to another parent.\n\t\tif (!scrollParent || !scrollParent.contains(targetElement)) {\n\t\t\tparentElement = targetElement;\n\t\t\tdo {\n\t\t\t\tif (parentElement.scrollHeight > parentElement.offsetHeight) {\n\t\t\t\t\tscrollParent = parentElement;\n\t\t\t\t\ttargetElement.fastClickScrollParent = parentElement;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparentElement = parentElement.parentElement;\n\t\t\t} while (parentElement);\n\t\t}\n\n\t\t// Always update the scroll top tracker if possible.\n\t\tif (scrollParent) {\n\t\t\tscrollParent.fastClickLastScrollTop = scrollParent.scrollTop;\n\t\t}\n\t};\n\n\n\t/**\n\t * @param {EventTarget} targetElement\n\t * @returns {Element|EventTarget}\n\t */\n\tFastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {\n\n\t\t// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.\n\t\tif (eventTarget.nodeType === Node.TEXT_NODE) {\n\t\t\treturn eventTarget.parentNode;\n\t\t}\n\n\t\treturn eventTarget;\n\t};\n\n\n\t/**\n\t * On touch start, record the position and scroll offset.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchStart = function(event) {\n\t\tvar targetElement, touch, selection;\n\n\t\t// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).\n\t\tif (event.targetTouches.length > 1) {\n\t\t\treturn true;\n\t\t}\n\n\t\ttargetElement = this.getTargetElementFromEventTarget(event.target);\n\t\ttouch = event.targetTouches[0];\n\n\t\tif (deviceIsIOS) {\n\n\t\t\t// Only trusted events will deselect text on iOS (issue #49)\n\t\t\tselection = window.getSelection();\n\t\t\tif (selection.rangeCount && !selection.isCollapsed) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!deviceIsIOS4) {\n\n\t\t\t\t// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):\n\t\t\t\t// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched\n\t\t\t\t// with the same identifier as the touch event that previously triggered the click that triggered the alert.\n\t\t\t\t// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an\n\t\t\t\t// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.\n\t\t\t\t// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,\n\t\t\t\t// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,\n\t\t\t\t// random integers, it's safe to to continue if the identifier is 0 here.\n\t\t\t\tif (touch.identifier && touch.identifier === this.lastTouchIdentifier) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastTouchIdentifier = touch.identifier;\n\n\t\t\t\t// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:\n\t\t\t\t// 1) the user does a fling scroll on the scrollable layer\n\t\t\t\t// 2) the user stops the fling scroll with another tap\n\t\t\t\t// then the event.target of the last 'touchend' event will be the element that was under the user's finger\n\t\t\t\t// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check\n\t\t\t\t// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).\n\t\t\t\tthis.updateScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackingClick = true;\n\t\tthis.trackingClickStart = event.timeStamp;\n\t\tthis.targetElement = targetElement;\n\n\t\tthis.touchStartX = touch.pageX;\n\t\tthis.touchStartY = touch.pageY;\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.touchHasMoved = function(event) {\n\t\tvar touch = event.changedTouches[0], boundary = this.touchBoundary;\n\n\t\tif (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Update the last position.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchMove = function(event) {\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the touch has moved, cancel the click tracking\n\t\tif (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {\n\t\t\tthis.trackingClick = false;\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Attempt to find the labelled control for the given label element.\n\t *\n\t * @param {EventTarget|HTMLLabelElement} labelElement\n\t * @returns {Element|null}\n\t */\n\tFastClick.prototype.findControl = function(labelElement) {\n\n\t\t// Fast path for newer browsers supporting the HTML5 control attribute\n\t\tif (labelElement.control !== undefined) {\n\t\t\treturn labelElement.control;\n\t\t}\n\n\t\t// All browsers under test that support touch events also support the HTML5 htmlFor attribute\n\t\tif (labelElement.htmlFor) {\n\t\t\treturn document.getElementById(labelElement.htmlFor);\n\t\t}\n\n\t\t// If no for attribute exists, attempt to retrieve the first labellable descendant element\n\t\t// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label\n\t\treturn labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');\n\t};\n\n\n\t/**\n\t * On touch end, determine whether to send a click event at once.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchEnd = function(event) {\n\t\tvar forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;\n\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tthis.cancelNextClick = true;\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Reset to prevent wrong click cancel on input (issue #156).\n\t\tthis.cancelNextClick = false;\n\n\t\tthis.lastClickTime = event.timeStamp;\n\n\t\ttrackingClickStart = this.trackingClickStart;\n\t\tthis.trackingClick = false;\n\t\tthis.trackingClickStart = 0;\n\n\t\t// On some iOS devices, the targetElement supplied with the event is invalid if the layer\n\t\t// is performing a transition or scroll, and has to be re-detected manually. Note that\n\t\t// for this to function correctly, it must be called *after* the event target is checked!\n\t\t// See issue #57; also filed as rdar://13048589 .\n\t\tif (deviceIsIOSWithBadTarget) {\n\t\t\ttouch = event.changedTouches[0];\n\n\t\t\t// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null\n\t\t\ttargetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;\n\t\t\ttargetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;\n\t\t}\n\n\t\ttargetTagName = targetElement.tagName.toLowerCase();\n\t\tif (targetTagName === 'label') {\n\t\t\tforElement = this.findControl(targetElement);\n\t\t\tif (forElement) {\n\t\t\t\tthis.focus(targetElement);\n\t\t\t\tif (deviceIsAndroid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\ttargetElement = forElement;\n\t\t\t}\n\t\t} else if (this.needsFocus(targetElement)) {\n\n\t\t\t// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.\n\t\t\t// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).\n\t\t\tif ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.focus(targetElement);\n\t\t\tthis.sendClick(targetElement, event);\n\n\t\t\t// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.\n\t\t\t// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)\n\t\t\tif (!deviceIsIOS || targetTagName !== 'select') {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (deviceIsIOS && !deviceIsIOS4) {\n\n\t\t\t// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled\n\t\t\t// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).\n\t\t\tscrollParent = targetElement.fastClickScrollParent;\n\t\t\tif (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Prevent the actual click from going though - unless the target node is marked as requiring\n\t\t// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.\n\t\tif (!this.needsClick(targetElement)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendClick(targetElement, event);\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * On touch cancel, stop tracking the click.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.onTouchCancel = function() {\n\t\tthis.trackingClick = false;\n\t\tthis.targetElement = null;\n\t};\n\n\n\t/**\n\t * Determine mouse events which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onMouse = function(event) {\n\n\t\t// If a target element was never set (because a touch event was never fired) allow the event\n\t\tif (!this.targetElement) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (event.forwardedTouchEvent) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Programmatically generated events targeting a specific element should be permitted\n\t\tif (!event.cancelable) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Derive and check the target element to see whether the mouse event needs to be permitted;\n\t\t// unless explicitly enabled, prevent non-touch click events from triggering actions,\n\t\t// to prevent ghost/doubleclicks.\n\t\tif (!this.needsClick(this.targetElement) || this.cancelNextClick) {\n\n\t\t\t// Prevent any user-added listeners declared on FastClick element from being fired.\n\t\t\tif (event.stopImmediatePropagation) {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t} else {\n\n\t\t\t\t// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t\t\tevent.propagationStopped = true;\n\t\t\t}\n\n\t\t\t// Cancel the event\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the mouse event is permitted, return true for the action to go through.\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * On actual clicks, determine whether this is a touch-generated click, a click action occurring\n\t * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or\n\t * an actual click which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onClick = function(event) {\n\t\tvar permitted;\n\n\t\t// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.\n\t\tif (this.trackingClick) {\n\t\t\tthis.targetElement = null;\n\t\t\tthis.trackingClick = false;\n\t\t\treturn true;\n\t\t}\n\n\t\t// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.\n\t\tif (event.target.type === 'submit' && event.detail === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tpermitted = this.onMouse(event);\n\n\t\t// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.\n\t\tif (!permitted) {\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\t// If clicks are permitted, return true for the action to go through.\n\t\treturn permitted;\n\t};\n\n\n\t/**\n\t * Remove all FastClick's event listeners.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.destroy = function() {\n\t\tvar layer = this.layer;\n\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.removeEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.removeEventListener('click', this.onClick, true);\n\t\tlayer.removeEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.removeEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.removeEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.removeEventListener('touchcancel', this.onTouchCancel, false);\n\t};\n\n\n\t/**\n\t * Check whether FastClick is needed.\n\t *\n\t * @param {Element} layer The layer to listen on\n\t */\n\tFastClick.notNeeded = function(layer) {\n\t\tvar metaViewport;\n\t\tvar chromeVersion;\n\t\tvar blackberryVersion;\n\t\tvar firefoxVersion;\n\n\t\t// Devices that don't support touch don't need FastClick\n\t\tif (typeof window.ontouchstart === 'undefined') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Chrome version - zero for other browsers\n\t\tchromeVersion = +(/Chrome\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (chromeVersion) {\n\n\t\t\tif (deviceIsAndroid) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// Chrome on Android with user-scalable=\"no\" doesn't need FastClick (issue #89)\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Chrome 32 and above with width=device-width or less don't need FastClick\n\t\t\t\t\tif (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Chrome desktop doesn't need FastClick (issue #15)\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (deviceIsBlackBerry10) {\n\t\t\tblackberryVersion = navigator.userAgent.match(/Version\\/([0-9]*)\\.([0-9]*)/);\n\n\t\t\t// BlackBerry 10.3+ does not require Fastclick library.\n\t\t\t// https://github.com/ftlabs/fastclick/issues/251\n\t\t\tif (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// user-scalable=no eliminates click delay.\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// width=device-width (or less than device-width) eliminates click delay.\n\t\t\t\t\tif (document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)\n\t\tif (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Firefox version - zero for other browsers\n\t\tfirefoxVersion = +(/Firefox\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (firefoxVersion >= 27) {\n\t\t\t// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896\n\n\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\t\t\tif (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version\n\t\t// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx\n\t\tif (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Factory method for creating a FastClick object\n\t *\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tFastClick.attach = function(layer, options) {\n\t\treturn new FastClick(layer, options);\n\t};\n\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(function() {\n\t\t\treturn FastClick;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = FastClick.attach;\n\t\tmodule.exports.FastClick = FastClick;\n\t} else {\n\t\twindow.FastClick = FastClick;\n\t}\n}());\n","/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n *\n * Version: 1.3.3\n *\n */\n(function ($) {\n\n $.fn.extend({\n slimScroll: function (options) {\n\n var defaults = {\n // width in pixels of the visible scroll area\n width: 'auto',\n // height in pixels of the visible scroll area\n height: '250px',\n // width in pixels of the scrollbar and rail\n size: '7px',\n // scrollbar color, accepts any hex/color value\n color: '#000',\n // scrollbar position - left/right\n position: 'right',\n // distance in pixels between the side edge and the scrollbar\n distance: '1px',\n // default scroll position on load - top / bottom / $('selector')\n start: 'top',\n // sets scrollbar opacity\n opacity: .4,\n // enables always-on mode for the scrollbar\n alwaysVisible: false,\n // check if we should hide the scrollbar when user is hovering over\n disableFadeOut: false,\n // sets visibility of the rail\n railVisible: false,\n // sets rail color\n railColor: '#333',\n // sets rail opacity\n railOpacity: .2,\n // whether we should use jQuery UI Draggable to enable bar dragging\n railDraggable: true,\n // defautlt CSS class of the slimscroll rail\n railClass: 'slimScrollRail',\n // defautlt CSS class of the slimscroll bar\n barClass: 'slimScrollBar',\n // defautlt CSS class of the slimscroll wrapper\n wrapperClass: 'slimScrollDiv',\n // check if mousewheel should scroll the window if we reach top/bottom\n allowPageScroll: false,\n // scroll amount applied to each mouse wheel step\n wheelStep: 20,\n // scroll amount applied when user is using gestures\n touchScrollStep: 200,\n // sets border radius\n borderRadius: '7px',\n // sets border radius of the rail\n railBorderRadius: '7px'\n };\n\n var o = $.extend(defaults, options);\n\n // do it for every element that matches selector\n this.each(function () {\n\n var isOverPanel, isOverBar, isDragg, queueHide, touchDif,\n barHeight, percentScroll, lastScroll,\n divS = '
',\n minBarHeight = 30,\n releaseScroll = false;\n\n // used in event handlers and for better minification\n var me = $(this);\n\n // ensure we are not binding it again\n if (me.parent().hasClass(o.wrapperClass))\n {\n // start from last bar position\n var offset = me.scrollTop();\n\n // find bar and rail\n bar = me.parent().find('.' + o.barClass);\n rail = me.parent().find('.' + o.railClass);\n\n getBarHeight();\n\n // check if we should scroll existing instance\n if ($.isPlainObject(options))\n {\n // Pass height: auto to an existing slimscroll object to force a resize after contents have changed\n if ('height' in options && options.height == 'auto') {\n me.parent().css('height', 'auto');\n me.css('height', 'auto');\n var height = me.parent().parent().height();\n me.parent().css('height', height);\n me.css('height', height);\n }\n\n if ('scrollTo' in options)\n {\n // jump to a static point\n offset = parseInt(o.scrollTo);\n }\n else if ('scrollBy' in options)\n {\n // jump by value pixels\n offset += parseInt(o.scrollBy);\n }\n else if ('destroy' in options)\n {\n // remove slimscroll elements\n bar.remove();\n rail.remove();\n me.unwrap();\n return;\n }\n\n // scroll content by the given offset\n scrollContent(offset, false, true);\n }\n\n return;\n }\n else if ($.isPlainObject(options))\n {\n if ('destroy' in options)\n {\n return;\n }\n }\n\n // optionally set height to the parent's height\n o.height = (o.height == 'auto') ? me.parent().height() : o.height;\n\n // wrap content\n var wrapper = $(divS)\n .addClass(o.wrapperClass)\n .css({\n position: 'relative',\n overflow: 'hidden',\n width: o.width,\n height: o.height\n });\n\n // update style for the div\n me.css({\n overflow: 'hidden',\n width: o.width,\n height: o.height,\n //Fix for IE10\n \"-ms-touch-action\": \"none\"\n });\n\n // create scrollbar rail\n var rail = $(divS)\n .addClass(o.railClass)\n .css({\n width: o.size,\n height: '100%',\n position: 'absolute',\n top: 0,\n display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none',\n 'border-radius': o.railBorderRadius,\n background: o.railColor,\n opacity: o.railOpacity,\n zIndex: 90\n });\n\n // create scrollbar\n var bar = $(divS)\n .addClass(o.barClass)\n .css({\n background: o.color,\n width: o.size,\n position: 'absolute',\n top: 0,\n opacity: o.opacity,\n display: o.alwaysVisible ? 'block' : 'none',\n 'border-radius': o.borderRadius,\n BorderRadius: o.borderRadius,\n MozBorderRadius: o.borderRadius,\n WebkitBorderRadius: o.borderRadius,\n zIndex: 99\n });\n\n // set position\n var posCss = (o.position == 'right') ? {right: o.distance} : {left: o.distance};\n rail.css(posCss);\n bar.css(posCss);\n\n // wrap it\n me.wrap(wrapper);\n\n // append to parent div\n me.parent().append(bar);\n me.parent().append(rail);\n\n // make it draggable and no longer dependent on the jqueryUI\n if (o.railDraggable) {\n bar.bind(\"mousedown\", function (e) {\n var $doc = $(document);\n isDragg = true;\n t = parseFloat(bar.css('top'));\n pageY = e.pageY;\n\n $doc.bind(\"mousemove.slimscroll\", function (e) {\n currTop = t + e.pageY - pageY;\n bar.css('top', currTop);\n scrollContent(0, bar.position().top, false);// scroll content\n });\n\n $doc.bind(\"mouseup.slimscroll\", function (e) {\n isDragg = false;\n hideBar();\n $doc.unbind('.slimscroll');\n });\n return false;\n }).bind(\"selectstart.slimscroll\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n return false;\n });\n }\n\n // on rail over\n rail.hover(function () {\n showBar();\n }, function () {\n hideBar();\n });\n\n // on bar over\n bar.hover(function () {\n isOverBar = true;\n }, function () {\n isOverBar = false;\n });\n\n // show on parent mouseover\n me.hover(function () {\n isOverPanel = true;\n showBar();\n hideBar();\n }, function () {\n isOverPanel = false;\n hideBar();\n });\n\n if (window.navigator.msPointerEnabled) { \n // support for mobile\n me.bind('MSPointerDown', function (e, b) {\n if (e.originalEvent.targetTouches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.targetTouches[0].pageY;\n }\n });\n\n me.bind('MSPointerMove', function (e) {\n // prevent scrolling the page if necessary\n e.originalEvent.preventDefault();\n if (e.originalEvent.targetTouches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.targetTouches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.targetTouches[0].pageY;\n \n }\n });\n } else {\n // support for mobile\n me.bind('touchstart', function (e, b) {\n if (e.originalEvent.touches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n\n me.bind('touchmove', function (e) {\n // prevent scrolling the page if necessary\n if (!releaseScroll)\n {\n e.originalEvent.preventDefault();\n }\n if (e.originalEvent.touches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n }\n\n // set up initial height\n getBarHeight();\n\n // check start position\n if (o.start === 'bottom')\n {\n // scroll content to bottom\n bar.css({top: me.outerHeight() - bar.outerHeight()});\n scrollContent(0, true);\n }\n else if (o.start !== 'top')\n {\n // assume jQuery selector\n scrollContent($(o.start).position().top, null, true);\n\n // make sure bar stays hidden\n if (!o.alwaysVisible) {\n bar.hide();\n }\n }\n\n // attach scroll events\n attachWheel();\n\n function _onWheel(e)\n {\n // use mouse wheel only when mouse is over\n if (!isOverPanel) {\n return;\n }\n\n var e = e || window.event;\n\n var delta = 0;\n if (e.wheelDelta) {\n delta = -e.wheelDelta / 120;\n }\n if (e.detail) {\n delta = e.detail / 3;\n }\n\n var target = e.target || e.srcTarget || e.srcElement;\n if ($(target).closest('.' + o.wrapperClass).is(me.parent())) {\n // scroll content\n scrollContent(delta, true);\n }\n\n // stop window scroll\n if (e.preventDefault && !releaseScroll) {\n e.preventDefault();\n }\n if (!releaseScroll) {\n e.returnValue = false;\n }\n }\n\n function scrollContent(y, isWheel, isJump)\n {\n releaseScroll = false;\n var delta = y;\n var maxTop = me.outerHeight() - bar.outerHeight();\n\n if (isWheel)\n {\n // move bar with mouse wheel\n delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight();\n\n // move bar, make sure it doesn't go out\n delta = Math.min(Math.max(delta, 0), maxTop);\n\n // if scrolling down, make sure a fractional change to the\n // scroll position isn't rounded away when the scrollbar's CSS is set\n // this flooring of delta would happened automatically when\n // bar.css is set below, but we floor here for clarity\n delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta);\n\n // scroll the scrollbar\n bar.css({top: delta + 'px'});\n }\n\n // calculate actual scroll amount\n percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight());\n delta = percentScroll * (me[0].scrollHeight - me.outerHeight());\n\n if (isJump)\n {\n delta = y;\n var offsetTop = delta / me[0].scrollHeight * me.outerHeight();\n offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);\n bar.css({top: offsetTop + 'px'});\n }\n\n // scroll content\n me.scrollTop(delta);\n\n // fire scrolling event\n me.trigger('slimscrolling', ~~delta);\n\n // ensure bar is visible\n showBar();\n\n // trigger hide when scroll is stopped\n hideBar();\n }\n\n function attachWheel()\n {\n if (window.addEventListener)\n {\n this.addEventListener('DOMMouseScroll', _onWheel, false);\n this.addEventListener('mousewheel', _onWheel, false);\n }\n else\n {\n document.attachEvent(\"onmousewheel\", _onWheel)\n }\n }\n\n function getBarHeight()\n {\n // calculate scrollbar height and make sure it is not too small\n barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight);\n bar.css({height: barHeight + 'px'});\n\n // hide scrollbar if content is not long enough\n var display = barHeight == me.outerHeight() ? 'none' : 'block';\n bar.css({display: display});\n }\n\n function showBar()\n {\n // recalculate bar height\n getBarHeight();\n clearTimeout(queueHide);\n\n // when bar reached top or bottom\n if (percentScroll == ~~percentScroll)\n {\n //release wheel\n releaseScroll = o.allowPageScroll;\n\n // publish approporiate event\n if (lastScroll != percentScroll)\n {\n var msg = (~~percentScroll == 0) ? 'top' : 'bottom';\n me.trigger('slimscroll', msg);\n }\n }\n else\n {\n releaseScroll = false;\n }\n lastScroll = percentScroll;\n\n // show only when required\n if (barHeight >= me.outerHeight()) {\n //allow window scroll\n releaseScroll = true;\n return;\n }\n bar.stop(true, true).fadeIn('fast');\n if (o.railVisible) {\n rail.stop(true, true).fadeIn('fast');\n }\n }\n\n function hideBar()\n {\n // only hide when options allow it\n if (!o.alwaysVisible)\n {\n queueHide = setTimeout(function () {\n if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg)\n {\n bar.fadeOut('slow');\n rail.fadeOut('slow');\n }\n }, 1000);\n }\n }\n\n });\n\n // maintain chainability\n return this;\n }\n });\n\n $.fn.extend({\n slimscroll: $.fn.slimScroll\n });\n\n})(jQuery);\n","/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(\"object\"==typeof exports?require(\"jquery\"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split(\"/\"),o=s.map,p=o&&o[\"*\"]||{};if(a&&\".\"===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split(\"/\"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,\"\")),a=n.concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join(\"/\")}else 0===a.indexOf(\"./\")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split(\"/\"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join(\"/\"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join(\"/\")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join(\"/\"))}return a}function g(a,c){return function(){return n.apply(b,v.call(arguments,0).concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error(\"No \"+a);return q[a]}function k(a){var b,c=a?a.indexOf(\"!\"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+\"!\"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return\"undefined\"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:\"\",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,\"undefined\"===v||\"function\"===v){for(c=!c.length&&d.length?[\"require\",\"exports\",\"module\"]:c,n=0;n0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;hc;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b=\"\",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split(\"-\"),d=a;if(1!==c.length){for(var e=0;e\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\"};return\"string\"!=typeof a?a:String(a).replace(/[&<>\"'\\/\\\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if(\"1.7\"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define(\"select2/results\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
    ');return this.options.get(\"multiple\")&&b.attr(\"aria-multiselectable\",\"true\"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var d=a('
  • '),e=this.options.get(\"translations\").get(b.message);d.append(c(e(b.args))),this.$results.append(d)},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"}));a.results=this.sort(a.results);for(var c=0;c-1?b.attr(\"aria-selected\",\"true\"):b.attr(\"aria-selected\",\"false\")});var f=e.filter(\"[aria-selected=true]\");f.length>0?f.first().trigger(\"mouseenter\"):e.first().trigger(\"mouseenter\")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get(\"translations\").get(\"searching\"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=\" loading-results\",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},c.prototype.option=function(b){var c=document.createElement(\"li\");c.className=\"select2-results__option\";var d={role:\"treeitem\",\"aria-selected\":\"false\"};b.disabled&&(delete d[\"aria-selected\"],d[\"aria-disabled\"]=\"true\"),null==b.id&&delete d[\"aria-selected\"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role=\"group\",d[\"aria-label\"]=b.text,delete d[\"aria-selected\"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement(\"strong\");h.className=\"select2-results__group\";{a(h)}this.template(b,h);for(var i=[],j=0;j\",{\"class\":\"select2-results__options select2-results__options--nested\"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,\"data\",b),c},c.prototype.bind=function(b){var c=this,d=b.id+\"-results\";this.$results.attr(\"id\",d),b.on(\"results:all\",function(a){c.clear(),c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"results:append\",function(a){c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"query\",function(a){c.showLoading(a)}),b.on(\"select\",function(){b.isOpen()&&c.setClasses()}),b.on(\"unselect\",function(){b.isOpen()&&c.setClasses()}),b.on(\"open\",function(){c.$results.attr(\"aria-expanded\",\"true\"),c.$results.attr(\"aria-hidden\",\"false\"),c.setClasses(),c.ensureHighlightVisible()}),b.on(\"close\",function(){c.$results.attr(\"aria-expanded\",\"false\"),c.$results.attr(\"aria-hidden\",\"true\"),c.$results.removeAttr(\"aria-activedescendant\")}),b.on(\"results:toggle\",function(){var a=c.getHighlightedResults();0!==a.length&&a.trigger(\"mouseup\")}),b.on(\"results:select\",function(){var a=c.getHighlightedResults();if(0!==a.length){var b=a.data(\"data\");\"true\"==a.attr(\"aria-selected\")?c.trigger(\"close\"):c.trigger(\"select\",{data:b})}}),b.on(\"results:previous\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a);if(0!==d){var e=d-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top,h=f.offset().top,i=c.$results.scrollTop()+(h-g);0===e?c.$results.scrollTop(0):0>h-g&&c.$results.scrollTop(i)}}),b.on(\"results:next\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a),e=d+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top+c.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=c.$results.scrollTop()+h-g;0===e?c.$results.scrollTop(0):h>g&&c.$results.scrollTop(i)}}),b.on(\"results:focus\",function(a){a.element.addClass(\"select2-results__option--highlighted\")}),b.on(\"results:message\",function(a){c.displayMessage(a)}),a.fn.mousewheel&&this.$results.on(\"mousewheel\",function(a){var b=c.$results.scrollTop(),d=c.$results.get(0).scrollHeight-c.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&d<=c.$results.height();e?(c.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(c.$results.scrollTop(c.$results.get(0).scrollHeight-c.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option[aria-selected]\",function(b){var d=a(this),e=d.data(\"data\");return\"true\"===d.attr(\"aria-selected\")?void(c.options.get(\"multiple\")?c.trigger(\"unselect\",{originalEvent:b,data:e}):c.trigger(\"close\")):void c.trigger(\"select\",{originalEvent:b,data:e})}),this.$results.on(\"mouseenter\",\".select2-results__option[aria-selected]\",function(){var b=a(this).data(\"data\");c.getHighlightedResults().removeClass(\"select2-results__option--highlighted\"),c.trigger(\"results:focus\",{data:b,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(\".select2-results__option--highlighted\");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find(\"[aria-selected]\"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get(\"templateResult\"),e=this.options.get(\"escapeMarkup\"),f=d(b);null==f?c.style.display=\"none\":\"string\"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define(\"select2/keys\",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define(\"select2/selection/base\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data(\"old-tabindex\")?this._tabindex=this.$element.data(\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),b.attr(\"title\",this.$element.attr(\"title\")),b.attr(\"tabindex\",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a){var b=this,d=(a.id+\"-container\",a.id+\"-results\");this.container=a,this.$selection.on(\"focus\",function(a){b.trigger(\"focus\",a)}),this.$selection.on(\"blur\",function(a){b.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",function(a){b.trigger(\"keypress\",a),a.which===c.SPACE&&a.preventDefault()}),a.on(\"results:focus\",function(a){b.$selection.attr(\"aria-activedescendant\",a.data._resultId)}),a.on(\"selection:update\",function(a){b.update(a.data)}),a.on(\"open\",function(){b.$selection.attr(\"aria-expanded\",\"true\"),b.$selection.attr(\"aria-owns\",d),b._attachCloseHandler(a)}),a.on(\"close\",function(){b.$selection.attr(\"aria-expanded\",\"false\"),b.$selection.removeAttr(\"aria-activedescendant\"),b.$selection.removeAttr(\"aria-owns\"),b.$selection.focus(),b._detachCloseHandler(a)}),a.on(\"enable\",function(){b.$selection.attr(\"tabindex\",b._tabindex)}),a.on(\"disable\",function(){b.$selection.attr(\"tabindex\",\"-1\")})},d.prototype._attachCloseHandler=function(b){a(document.body).on(\"mousedown.select2.\"+b.id,function(b){var c=a(b.target),d=c.closest(\".select2\"),e=a(\".select2.select2-container--open\");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data(\"element\");c.select2(\"close\")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off(\"mousedown.select2.\"+b.id)},d.prototype.position=function(a,b){var c=b.find(\".selection\");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(){throw new Error(\"The `update` method must be defined in child classes.\")},d}),b.define(\"select2/selection/single\",[\"jquery\",\"./base\",\"../utils\",\"../keys\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--single\"),a.html(''),a},d.prototype.bind=function(a){var b=this;d.__super__.bind.apply(this,arguments);var c=a.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",c),this.$selection.attr(\"aria-labelledby\",c),this.$selection.on(\"mousedown\",function(a){1===a.which&&b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"focus\",function(){}),this.$selection.on(\"blur\",function(){}),a.on(\"selection:update\",function(a){b.update(a.data)})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){return a(\"\")},d.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.display(b),d=this.$selection.find(\".select2-selection__rendered\");d.empty().append(c),d.prop(\"title\",b.title||b.text)},d}),b.define(\"select2/selection/multiple\",[\"jquery\",\"./base\",\"../utils\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--multiple\"),a.html('
      '),a},d.prototype.bind=function(){var b=this;d.__super__.bind.apply(this,arguments),this.$selection.on(\"click\",function(a){b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(c){var d=a(this),e=d.parent(),f=e.data(\"data\");b.trigger(\"unselect\",{originalEvent:c,data:f})})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){var b=a('
    • ×
    • ');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(e)},a}),b.define(\"select2/selection/allowClear\",[\"jquery\",\"../keys\"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(a){d._handleClear(a)}),b.on(\"keypress\",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get(\"disabled\")){var c=this.$selection.find(\".select2-selection__clear\");if(0!==c.length){b.stopPropagation();for(var d=c.data(\"data\"),e=0;e0||0===c.length)){var d=a('×');d.data(\"data\",c),this.$selection.find(\".select2-selection__rendered\").prepend(d)}},c}),b.define(\"select2/selection/search\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find(\"input\");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus()}),b.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\"),e.$search.focus()}),b.on(\"enable\",function(){e.$search.prop(\"disabled\",!1)}),b.on(\"disable\",function(){e.$search.prop(\"disabled\",!0)}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(a){e.trigger(\"focus\",a)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(a){e.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(a){a.stopPropagation(),e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&\"\"===e.$search.val()){var d=e.$searchContainer.prev(\".select2-selection__choice\");if(d.length>0){var f=d.data(\"data\");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on(\"input\",\".select2-search--inline\",function(){e.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input\",\".select2-search--inline\",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr(\"placeholder\",b.text)},d.prototype.update=function(a,b){this.$search.attr(\"placeholder\",\"\"),a.call(this,b),this.$selection.find(\".select2-selection__rendered\").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger(\"unselect\",{data:b}),this.trigger(\"open\"),this.$search.val(b.text+\" \")},d.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var a=\"\";if(\"\"!==this.$search.attr(\"placeholder\"))a=this.$selection.find(\".select2-selection__rendered\").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+\"em\"}this.$search.css(\"width\",a)},d}),b.define(\"select2/selection/eventRelay\",[\"jquery\"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\"],g=[\"opening\",\"closing\",\"selecting\",\"unselecting\"];b.call(this,c,d),c.on(\"*\",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event(\"select2:\"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define(\"select2/translation\",[\"jquery\",\"require\"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define(\"select2/diacritics\",[],function(){var a={\"Ⓐ\":\"A\",\"A\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"B\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"C\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"D\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"DZ\":\"DZ\",\"DŽ\":\"DZ\",\"Dz\":\"Dz\",\"Dž\":\"Dz\",\"Ⓔ\":\"E\",\"E\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"F\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"G\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"H\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"I\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"J\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"K\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"L\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"LJ\":\"LJ\",\"Lj\":\"Lj\",\"Ⓜ\":\"M\",\"M\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"N\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"NJ\":\"NJ\",\"Nj\":\"Nj\",\"Ⓞ\":\"O\",\"O\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"P\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Q\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"R\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"S\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"T\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"U\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"V\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"W\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"X\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Y\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Z\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"a\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"b\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"c\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"d\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"dz\":\"dz\",\"dž\":\"dz\",\"ⓔ\":\"e\",\"e\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"f\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"g\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"h\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"i\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"j\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"k\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"l\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"lj\":\"lj\",\"ⓜ\":\"m\",\"m\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"n\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ʼn\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"nj\":\"nj\",\"ⓞ\":\"o\",\"o\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"p\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"q\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"r\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"s\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"t\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"u\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"v\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"w\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"x\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"y\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"z\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ω\":\"ω\",\"ς\":\"σ\"};return a}),b.define(\"select2/data/base\",[\"../utils\"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error(\"The `current` method must be defined in child classes.\")},b.prototype.query=function(){throw new Error(\"The `query` method must be defined in child classes.\")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+\"-result-\";return d+=a.generateChars(4),d+=null!=c.id?\"-\"+c.id.toString():\"-\"+a.generateChars(4)},b}),b.define(\"select2/data/select\",[\"./base\",\"../utils\",\"jquery\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(\":selected\").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is(\"option\"))return a.element.selected=!0,void this.$element.trigger(\"change\");if(this.$element.prop(\"multiple\"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define(\"select2/data/ajax\",[\"./array\",\"../utils\",\"jquery\"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get(\"debug\")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:\"GET\"},this.ajaxOptions);\"function\"==typeof f.url&&(f.url=f.url(a)),\"function\"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&\"\"!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define(\"select2/data/tags\",[\"jquery\"],function(a){function b(b,c,d){var e=d.get(\"tags\"),f=d.get(\"createTag\");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g0&&b.term.length>this.maximumInputLength?void this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define(\"select2/data/maximumSelectionLength\",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get(\"maximumSelectionLength\"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define(\"select2/dropdown\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define(\"select2/dropdown/search\",[\"jquery\",\"../utils\"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find(\"input\"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on(\"keydown\",function(a){e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on(\"input\",function(){a(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(a){e.handleSearch(a)}),c.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\")}),c.on(\"results:all\",function(a){if(null==a.query.term||\"\"===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass(\"select2-search--hide\"):e.$searchContainer.addClass(\"select2-search--hide\")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define(\"select2/dropdown/hidePlaceholder\",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get(\"placeholder\")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return\"string\"==typeof b&&(b={id:\"\",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define(\"select2/dropdown/infiniteScroll\",[\"jquery\"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on(\"query\",function(a){e.lastParams=a,e.loading=!0}),c.on(\"query:append\",function(a){e.lastParams=a,e.loading=!0}),this.$results.on(\"scroll\",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger(\"query:append\",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
    • '),c=this.options.get(\"translations\").get(\"loadingMore\");return b.html(c(this.lastParams)),b},b}),b.define(\"select2/dropdown/attachBody\",[\"jquery\",\"../utils\"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get(\"dropdownParent\")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on(\"open\",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on(\"results:all\",function(){d._positionDropdown(),d._resizeDropdown()}),b.on(\"results:append\",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on(\"close\",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on(\"mousedown\",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr(\"class\",c.attr(\"class\")),b.removeClass(\"select2\"),b.addClass(\"select2-container--open\"),b.css({position:\"absolute\",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(\"\"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c){var d=this,e=\"scroll.select2.\"+c.id,f=\"resize.select2.\"+c.id,g=\"orientationchange.select2.\"+c.id,h=this.$container.parents().filter(b.hasScroll);h.each(function(){a(this).data(\"select2-scroll-position\",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),h.on(e,function(){var b=a(this).data(\"select2-scroll-position\");a(this).scrollTop(b.y)}),a(window).on(e+\" \"+f+\" \"+g,function(){d._positionDropdown(),d._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c){var d=\"scroll.select2.\"+c.id,e=\"resize.select2.\"+c.id,f=\"orientationchange.select2.\"+c.id,g=this.$container.parents().filter(b.hasScroll);g.off(d),a(window).off(d+\" \"+e+\" \"+f)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass(\"select2-dropdown--above\"),d=this.$dropdown.hasClass(\"select2-dropdown--below\"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom};c||d||(e=\"below\"),k||!j||c?!j&&k&&c&&(e=\"below\"):e=\"above\",(\"above\"==e||c&&\"below\"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass(\"select2-dropdown--below select2-dropdown--above\").addClass(\"select2-dropdown--\"+e),this.$container.removeClass(\"select2-container--below select2-container--above\").addClass(\"select2-container--\"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){this.$dropdownContainer.width();var a={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(a.minWidth=a.width,a.width=\"auto\"),this.$dropdown.css(a)},c.prototype._showDropdown=function(){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define(\"select2/dropdown/minimumResultsForSearch\",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+\"compat/query\");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+\"compat/initSelection\");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+\"compat/dropdownCss\");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+\"compat/containerCss\");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if(\"string\"==typeof l.language)if(l.language.indexOf(\"-\")>0){var H=l.language.split(\"-\"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push(\"en\");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:\"./\",amdLanguageBase:\"./i18n/\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:\"default\",width:\"resolve\"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define(\"select2/options\",[\"require\",\"jquery\",\"./defaults\",\"./utils\"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is(\"input\")){var f=a(this.get(\"amdBase\")+\"compat/inputData\");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=[\"select2\"];null==this.options.multiple&&(this.options.multiple=a.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=a.prop(\"disabled\")),null==this.options.language&&(a.prop(\"lang\")?this.options.language=a.prop(\"lang\").toLowerCase():a.closest(\"[lang]\").prop(\"lang\")&&(this.options.language=a.closest(\"[lang]\").prop(\"lang\"))),null==this.options.dir&&(this.options.dir=a.prop(\"dir\")?a.prop(\"dir\"):a.closest(\"[dir]\").prop(\"dir\")?a.closest(\"[dir]\").prop(\"dir\"):\"ltr\"),a.prop(\"disabled\",this.options.disabled),a.prop(\"multiple\",this.options.multiple),a.data(\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),a.data(\"data\",a.data(\"select2Tags\")),a.data(\"tags\",!0)),a.data(\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),a.attr(\"ajax--url\",a.data(\"ajaxUrl\")),a.data(\"ajax--url\",a.data(\"ajaxUrl\")));var e={};e=b.fn.jquery&&\"1.\"==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define(\"select2/core\",[\"jquery\",\"./options\",\"./utils\",\"./keys\"],function(a,b,c,d){var e=function(a,c){null!=a.data(\"select2\")&&a.data(\"select2\").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr(\"tabindex\")||0;a.data(\"old-tabindex\",d),a.attr(\"tabindex\",\"-1\");var f=this.options.get(\"dataAdapter\");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get(\"selectionAdapter\");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get(\"dropdownAdapter\");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get(\"resultsAdapter\");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger(\"selection:update\",{data:a})}),a.addClass(\"select2-hidden-accessible\"),a.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),a.data(\"select2\",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b=\"\";return b=null!=a.attr(\"id\")?a.attr(\"id\"):null!=a.attr(\"name\")?a.attr(\"name\")+\"-\"+c.generateChars(2):c.generateChars(4),b=\"select2-\"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=b&&a.css(\"width\",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if(\"resolve\"==b){var d=this._resolveWidth(a,\"style\");return null!=d?d:this._resolveWidth(a,\"element\")}if(\"element\"==b){var e=a.outerWidth(!1);return 0>=e?\"auto\":e+\"px\"}if(\"style\"==b){var f=a.attr(\"style\");if(\"string\"!=typeof f)return null;for(var g=f.split(\";\"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\\s/g,\"\"),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on(\"change.select2\",function(){b.dataAdapter.current(function(a){b.trigger(\"selection:update\",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent(\"onpropertychange\",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener(\"DOMAttrModified\",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=[\"toggle\"];this.selection.on(\"toggle\",function(){b.toggleDropdown()}),this.selection.on(\"*\",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on(\"open\",function(){a.$container.addClass(\"select2-container--open\")}),this.on(\"close\",function(){a.$container.removeClass(\"select2-container--open\")}),this.on(\"enable\",function(){a.$container.removeClass(\"select2-container--disabled\")}),this.on(\"disable\",function(){a.$container.addClass(\"select2-container--disabled\")}),this.on(\"focus\",function(){a.$container.addClass(\"select2-container--focus\")}),this.on(\"blur\",function(){a.$container.removeClass(\"select2-container--focus\")}),this.on(\"query\",function(b){a.isOpen()||a.trigger(\"open\"),this.dataAdapter.query(b,function(c){a.trigger(\"results:all\",{data:c,query:b})})}),this.on(\"query:append\",function(b){this.dataAdapter.query(b,function(c){a.trigger(\"results:append\",{data:c,query:b})})}),this.on(\"keypress\",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger(\"results:select\"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger(\"results:toggle\"),b.preventDefault()):c===d.UP?(a.trigger(\"results:previous\"),b.preventDefault()):c===d.DOWN?(a.trigger(\"results:next\"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.options.get(\"disabled\")?(this.isOpen()&&this.close(),this.trigger(\"disable\")):this.trigger(\"enable\")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get(\"disabled\")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger(\"query\",{}),this.trigger(\"open\"))},e.prototype.close=function(){this.isOpen()&&this.trigger(\"close\")},e.prototype.isOpen=function(){return this.$container.hasClass(\"select2-container--open\")},e.prototype.enable=function(a){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop(\"disabled\",b)},e.prototype.data=function(){this.options.get(\"debug\")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger(\"change\")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent(\"onpropertychange\",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener(\"DOMAttrModified\",this._sync,!1),this._sync=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",this.$element.data(\"old-tabindex\")),this.$element.removeClass(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$container=b,this.$container.addClass(\"select2-container--\"+this.options.get(\"theme\")),b.data(\"element\",this.$element),b},e}),b.define(\"select2/compat/utils\",[\"jquery\"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0===this.indexOf(\"select2-\")&&g.push(this)})),e=a.trim(c.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0!==this.indexOf(\"select2-\")&&(f=d(this),null!=f&&g.push(f))})),b.attr(\"class\",g.join(\" \"))}return{syncCssClasses:b}}),b.define(\"select2/compat/containerCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"containerCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptContainerCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"containerCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/dropdownCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"dropdownCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptDropdownCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"dropdownCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/initSelection\",[\"jquery\"],function(a){function b(a,b,c){c.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2\"),this.initSelection=c.get(\"initSelection\"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;return this._isInitialized?void b.call(this,c):void this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define(\"select2/compat/inputData\",[\"jquery\"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get(\"valueSeparator\")||\",\",\"hidden\"===b.prop(\"type\")&&c.get(\"debug\")&&console&&console.warn&&console.warn(\"Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `';\n }\n that.header.stateField = column.field;\n }\n if (column.radio) {\n text = '';\n that.header.stateField = column.field;\n that.options.singleSelect = true;\n }\n\n html.push(text);\n html.push('');\n html.push('
      ');\n html.push('');\n html.push('');\n });\n html.push('');\n });\n\n this.$header.html(html.join(''));\n this.$header.find('th[data-field]').each(function (i) {\n $(this).data(visibleColumns[$(this).data('field')]);\n });\n this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) {\n if (that.options.sortable && $(this).parent().data().sortable) {\n that.onSort(event);\n }\n });\n\n this.$header.children().children().off('keypress').on('keypress', function (event) {\n if (that.options.sortable && $(this).data().sortable) {\n var code = event.keyCode || event.which;\n if (code == 13) { //Enter keycode\n that.onSort(event);\n }\n }\n });\n\n if (!this.options.showHeader || this.options.cardView) {\n this.$header.hide();\n this.$tableHeader.hide();\n this.$tableLoading.css('top', 0);\n } else {\n this.$header.show();\n this.$tableHeader.show();\n this.$tableLoading.css('top', this.$header.outerHeight() + 1);\n // Assign the correct sortable arrow\n this.getCaret();\n }\n\n this.$selectAll = this.$header.find('[name=\"btSelectAll\"]');\n this.$container.off('click', '[name=\"btSelectAll\"]')\n .on('click', '[name=\"btSelectAll\"]', function () {\n var checked = $(this).prop('checked');\n that[checked ? 'checkAll' : 'uncheckAll']();\n that.updateSelected();\n });\n };\n\n BootstrapTable.prototype.initFooter = function () {\n if (!this.options.showFooter || this.options.cardView) {\n this.$tableFooter.hide();\n } else {\n this.$tableFooter.show();\n }\n };\n\n /**\n * @param data\n * @param type: append / prepend\n */\n BootstrapTable.prototype.initData = function (data, type) {\n if (type === 'append') {\n this.data = this.data.concat(data);\n } else if (type === 'prepend') {\n this.data = [].concat(data).concat(this.data);\n } else {\n this.data = data || this.options.data;\n }\n\n // Fix #839 Records deleted when adding new row on filtered table\n if (type === 'append') {\n this.options.data = this.options.data.concat(data);\n } else if (type === 'prepend') {\n this.options.data = [].concat(data).concat(this.options.data);\n } else {\n this.options.data = this.data;\n }\n\n if (this.options.sidePagination === 'server') {\n return;\n }\n this.initSort();\n };\n\n BootstrapTable.prototype.initSort = function () {\n var that = this,\n name = this.options.sortName,\n order = this.options.sortOrder === 'desc' ? -1 : 1,\n index = $.inArray(this.options.sortName, this.header.fields);\n\n if (index !== -1) {\n this.data.sort(function (a, b) {\n if (that.header.sortNames[index]) {\n name = that.header.sortNames[index];\n }\n var aa = getItemField(a, name),\n bb = getItemField(b, name),\n value = calculateObjectValue(that.header, that.header.sorters[index], [aa, bb]);\n\n if (value !== undefined) {\n return order * value;\n }\n\n // Fix #161: undefined or null string sort bug.\n if (aa === undefined || aa === null) {\n aa = '';\n }\n if (bb === undefined || bb === null) {\n bb = '';\n }\n\n // IF both values are numeric, do a numeric comparison\n if ($.isNumeric(aa) && $.isNumeric(bb)) {\n // Convert numerical values form string to float.\n aa = parseFloat(aa);\n bb = parseFloat(bb);\n if (aa < bb) {\n return order * -1;\n }\n return order;\n }\n\n if (aa === bb) {\n return 0;\n }\n\n // If value is not a string, convert to string\n if (typeof aa !== 'string') {\n aa = aa.toString();\n }\n\n if (aa.localeCompare(bb) === -1) {\n return order * -1;\n }\n\n return order;\n });\n }\n };\n\n BootstrapTable.prototype.onSort = function (event) {\n var $this = event.type === \"keypress\" ? $(event.currentTarget) : $(event.currentTarget).parent(),\n $this_ = this.$header.find('th').eq($this.index());\n\n this.$header.add(this.$header_).find('span.order').remove();\n\n if (this.options.sortName === $this.data('field')) {\n this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';\n } else {\n this.options.sortName = $this.data('field');\n this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';\n }\n this.trigger('sort', this.options.sortName, this.options.sortOrder);\n\n $this.add($this_).data('order', this.options.sortOrder);\n\n // Assign the correct sortable arrow\n this.getCaret();\n\n if (this.options.sidePagination === 'server') {\n this.initServer(this.options.silentSort);\n return;\n }\n\n this.initSort();\n this.initBody();\n };\n\n BootstrapTable.prototype.initToolbar = function () {\n var that = this,\n html = [],\n timeoutId = 0,\n $keepOpen,\n $search,\n switchableCount = 0;\n\n this.$toolbar.html('');\n\n if (typeof this.options.toolbar === 'string' || typeof this.options.toolbar === 'object') {\n $(sprintf('
      ', this.options.toolbarAlign))\n .appendTo(this.$toolbar)\n .append($(this.options.toolbar));\n }\n\n // showColumns, showToggle, showRefresh\n html = [sprintf('
      ',\n this.options.buttonsAlign, this.options.buttonsAlign)];\n\n if (typeof this.options.icons === 'string') {\n this.options.icons = calculateObjectValue(null, this.options.icons);\n }\n\n if (this.options.showPaginationSwitch) {\n html.push(sprintf('');\n }\n\n if (this.options.showRefresh) {\n html.push(sprintf('');\n }\n\n if (this.options.showToggle) {\n html.push(sprintf('');\n }\n\n if (this.options.showColumns) {\n html.push(sprintf('
      ',\n this.options.formatColumns()),\n '',\n '
        ');\n\n $.each(this.columns, function (i, column) {\n if (column.radio || column.checkbox) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n var checked = column.visible ? ' checked=\"checked\"' : '';\n\n if (column.switchable) {\n html.push(sprintf('
      • ' +\n '' +\n '
      • ', column.field, i, checked, column.title));\n switchableCount++;\n }\n });\n html.push('
      ',\n '
      ');\n }\n\n html.push('
      ');\n\n // Fix #188: this.showToolbar is for extentions\n if (this.showToolbar || html.length > 2) {\n this.$toolbar.append(html.join(''));\n }\n\n if (this.options.showPaginationSwitch) {\n this.$toolbar.find('button[name=\"paginationSwitch\"]')\n .off('click').on('click', $.proxy(this.togglePagination, this));\n }\n\n if (this.options.showRefresh) {\n this.$toolbar.find('button[name=\"refresh\"]')\n .off('click').on('click', $.proxy(this.refresh, this));\n }\n\n if (this.options.showToggle) {\n this.$toolbar.find('button[name=\"toggle\"]')\n .off('click').on('click', function () {\n that.toggleView();\n });\n }\n\n if (this.options.showColumns) {\n $keepOpen = this.$toolbar.find('.keep-open');\n\n if (switchableCount <= this.options.minimumCountColumns) {\n $keepOpen.find('input').prop('disabled', true);\n }\n\n $keepOpen.find('li').off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n });\n $keepOpen.find('input').off('click').on('click', function () {\n var $this = $(this);\n\n that.toggleColumn(getFieldIndex(that.columns,\n $(this).data('field')), $this.prop('checked'), false);\n that.trigger('column-switch', $(this).data('field'), $this.prop('checked'));\n });\n }\n\n if (this.options.search) {\n html = [];\n html.push(\n '
      ',\n sprintf('',\n this.options.formatSearch()),\n '
      ');\n\n this.$toolbar.append(html.join(''));\n $search = this.$toolbar.find('.search input');\n $search.off('keyup drop').on('keyup drop', function (event) {\n clearTimeout(timeoutId); // doesn't matter if it's 0\n timeoutId = setTimeout(function () {\n that.onSearch(event);\n }, that.options.searchTimeOut);\n });\n }\n };\n\n BootstrapTable.prototype.onSearch = function (event) {\n var text = $.trim($(event.currentTarget).val());\n\n // trim search input\n if (this.options.trimOnSearch && $(event.currentTarget).val() !== text) {\n $(event.currentTarget).val(text);\n }\n\n if (text === this.searchText) {\n return;\n }\n this.searchText = text;\n\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n this.trigger('search', text);\n };\n\n BootstrapTable.prototype.initSearch = function () {\n var that = this;\n\n if (this.options.sidePagination !== 'server') {\n var s = this.searchText && this.searchText.toLowerCase();\n var f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns;\n\n // Check filter\n this.data = f ? $.grep(this.options.data, function (item, i) {\n for (var key in f) {\n if ($.isArray(f[key])) {\n if ($.inArray(item[key], f[key]) === -1) {\n return false;\n }\n } else if (item[key] !== f[key]) {\n return false;\n }\n }\n return true;\n }) : this.options.data;\n\n this.data = s ? $.grep(this.data, function (item, i) {\n for (var key in item) {\n key = $.isNumeric(key) ? parseInt(key, 10) : key;\n var value = item[key],\n column = that.columns[getFieldIndex(that.columns, key)],\n j = $.inArray(key, that.header.fields);\n\n // Fix #142: search use formated data\n if (column && column.searchFormatter) {\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n }\n\n var index = $.inArray(key, that.header.fields);\n if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {\n if (that.options.strictSearch) {\n if ((value + '').toLowerCase() === s) {\n return true;\n }\n } else {\n if ((value + '').toLowerCase().indexOf(s) !== -1) {\n return true;\n }\n }\n }\n }\n return false;\n }) : this.data;\n }\n };\n\n BootstrapTable.prototype.initPagination = function () {\n if (!this.options.pagination) {\n this.$pagination.hide();\n return;\n } else {\n this.$pagination.show();\n }\n\n var that = this,\n html = [],\n $allSelected = false,\n i, from, to,\n $pageList,\n $first, $pre,\n $next, $last,\n $number,\n data = this.getData();\n\n if (this.options.sidePagination !== 'server') {\n this.options.totalRows = data.length;\n }\n\n this.totalPages = 0;\n if (this.options.totalRows) {\n if (this.options.pageSize === this.options.formatAllRows()) {\n this.options.pageSize = this.options.totalRows;\n $allSelected = true;\n } else if (this.options.pageSize === this.options.totalRows) {\n // Fix #667 Table with pagination,\n // multiple pages and a search that matches to one page throws exception\n var pageLst = typeof this.options.pageList === 'string' ?\n this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').toLowerCase().split(',') : this.options.pageList;\n if ($.inArray(this.options.formatAllRows().toLowerCase(), pageLst) > -1) {\n $allSelected = true;\n }\n }\n\n this.totalPages = ~~((this.options.totalRows - 1) / this.options.pageSize) + 1;\n\n this.options.totalPages = this.totalPages;\n }\n if (this.totalPages > 0 && this.options.pageNumber > this.totalPages) {\n this.options.pageNumber = this.totalPages;\n }\n\n this.pageFrom = (this.options.pageNumber - 1) * this.options.pageSize + 1;\n this.pageTo = this.options.pageNumber * this.options.pageSize;\n if (this.pageTo > this.options.totalRows) {\n this.pageTo = this.options.totalRows;\n }\n\n html.push(\n '
      ',\n '',\n this.options.onlyInfoPagination ? this.options.formatDetailPagination(this.options.totalRows) :\n this.options.formatShowingRows(this.pageFrom, this.pageTo, this.options.totalRows),\n '');\n\n if (!this.options.onlyInfoPagination) {\n html.push('');\n\n var pageNumber = [\n sprintf('',\n this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?\n 'dropdown' : 'dropup'),\n '',\n '
        '\n ],\n pageList = this.options.pageList;\n\n if (typeof this.options.pageList === 'string') {\n var list = this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').split(',');\n\n pageList = [];\n $.each(list, function (i, value) {\n pageList.push(value.toUpperCase() === that.options.formatAllRows().toUpperCase() ?\n that.options.formatAllRows() : +value);\n });\n }\n\n $.each(pageList, function (i, page) {\n if (!that.options.smartDisplay || i === 0 || pageList[i - 1] <= that.options.totalRows) {\n var active;\n if ($allSelected) {\n active = page === that.options.formatAllRows() ? ' class=\"active\"' : '';\n } else {\n active = page === that.options.pageSize ? ' class=\"active\"' : '';\n }\n pageNumber.push(sprintf('%s', active, page));\n }\n });\n pageNumber.push('
      ');\n\n html.push(this.options.formatRecordsPerPage(pageNumber.join('')));\n html.push('
      ');\n\n html.push('
      ',\n '
      ',\n '',\n '
      ');\n\n }\n this.$pagination.html(html.join(''));\n\n if (!this.options.onlyInfoPagination) {\n $pageList = this.$pagination.find('.page-list a');\n $first = this.$pagination.find('.page-first');\n $pre = this.$pagination.find('.page-pre');\n $next = this.$pagination.find('.page-next');\n $last = this.$pagination.find('.page-last');\n $number = this.$pagination.find('.page-number');\n\n if (this.options.pageNumber <= 1) {\n $first.addClass('disabled');\n $pre.addClass('disabled');\n }\n if (this.options.pageNumber >= this.totalPages) {\n $next.addClass('disabled');\n $last.addClass('disabled');\n }\n if (this.options.smartDisplay) {\n if (this.totalPages <= 1) {\n this.$pagination.find('div.pagination').hide();\n }\n if (pageList.length < 2 || this.options.totalRows <= pageList[0]) {\n this.$pagination.find('span.page-list').hide();\n }\n\n // when data is empty, hide the pagination\n this.$pagination[this.getData().length ? 'show' : 'hide']();\n }\n if ($allSelected) {\n this.options.pageSize = this.options.formatAllRows();\n }\n $pageList.off('click').on('click', $.proxy(this.onPageListChange, this));\n $first.off('click').on('click', $.proxy(this.onPageFirst, this));\n $pre.off('click').on('click', $.proxy(this.onPagePre, this));\n $next.off('click').on('click', $.proxy(this.onPageNext, this));\n $last.off('click').on('click', $.proxy(this.onPageLast, this));\n $number.off('click').on('click', $.proxy(this.onPageNumber, this));\n }\n };\n\n BootstrapTable.prototype.updatePagination = function (event) {\n // Fix #171: IE disabled button can be clicked bug.\n if (event && $(event.currentTarget).hasClass('disabled')) {\n return;\n }\n\n if (!this.options.maintainSelected) {\n this.resetRows();\n }\n\n this.initPagination();\n if (this.options.sidePagination === 'server') {\n this.initServer();\n } else {\n this.initBody();\n }\n\n this.trigger('page-change', this.options.pageNumber, this.options.pageSize);\n };\n\n BootstrapTable.prototype.onPageListChange = function (event) {\n var $this = $(event.currentTarget);\n\n $this.parent().addClass('active').siblings().removeClass('active');\n this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ?\n this.options.formatAllRows() : +$this.text();\n this.$toolbar.find('.page-size').text(this.options.pageSize);\n\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageFirst = function (event) {\n this.options.pageNumber = 1;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPagePre = function (event) {\n this.options.pageNumber--;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNext = function (event) {\n this.options.pageNumber++;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageLast = function (event) {\n this.options.pageNumber = this.totalPages;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNumber = function (event) {\n if (this.options.pageNumber === +$(event.currentTarget).text()) {\n return;\n }\n this.options.pageNumber = +$(event.currentTarget).text();\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.initBody = function (fixedScroll) {\n var that = this,\n html = [],\n data = this.getData();\n\n this.trigger('pre-body', data);\n\n this.$body = this.$el.find('>tbody');\n if (!this.$body.length) {\n this.$body = $('').appendTo(this.$el);\n }\n\n //Fix #389 Bootstrap-table-flatJSON is not working\n\n if (!this.options.pagination || this.options.sidePagination === 'server') {\n this.pageFrom = 1;\n this.pageTo = data.length;\n }\n\n for (var i = this.pageFrom - 1; i < this.pageTo; i++) {\n var key,\n item = data[i],\n style = {},\n csses = [],\n data_ = '',\n attributes = {},\n htmlAttributes = [];\n\n style = calculateObjectValue(this.options, this.options.rowStyle, [item, i], style);\n\n if (style && style.css) {\n for (key in style.css) {\n csses.push(key + ': ' + style.css[key]);\n }\n }\n\n attributes = calculateObjectValue(this.options,\n this.options.rowAttributes, [item, i], attributes);\n\n if (attributes) {\n for (key in attributes) {\n htmlAttributes.push(sprintf('%s=\"%s\"', key, escapeHTML(attributes[key])));\n }\n }\n\n if (item._data && !$.isEmptyObject(item._data)) {\n $.each(item._data, function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n html.push(''\n );\n\n if (this.options.cardView) {\n html.push(sprintf('', this.header.fields.length));\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('',\n '',\n sprintf('', this.options.iconsPrefix, this.options.icons.detailOpen),\n '',\n '');\n }\n\n $.each(this.header.fields, function (j, field) {\n var text = '',\n value = getItemField(item, field),\n type = '',\n cellStyle = {},\n id_ = '',\n class_ = that.header.classes[j],\n data_ = '',\n rowspan_ = '',\n title_ = '',\n column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n\n style = sprintf('style=\"%s\"', csses.concat(that.header.styles[j]).join('; '));\n\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n\n // handle td's id and class\n if (item['_' + field + '_id']) {\n id_ = sprintf(' id=\"%s\"', item['_' + field + '_id']);\n }\n if (item['_' + field + '_class']) {\n class_ = sprintf(' class=\"%s\"', item['_' + field + '_class']);\n }\n if (item['_' + field + '_rowspan']) {\n rowspan_ = sprintf(' rowspan=\"%s\"', item['_' + field + '_rowspan']);\n }\n if (item['_' + field + '_title']) {\n title_ = sprintf(' title=\"%s\"', item['_' + field + '_title']);\n }\n cellStyle = calculateObjectValue(that.header,\n that.header.cellStyles[j], [value, item, i], cellStyle);\n if (cellStyle.classes) {\n class_ = sprintf(' class=\"%s\"', cellStyle.classes);\n }\n if (cellStyle.css) {\n var csses_ = [];\n for (var key in cellStyle.css) {\n csses_.push(key + ': ' + cellStyle.css[key]);\n }\n style = sprintf('style=\"%s\"', csses_.concat(that.header.styles[j]).join('; '));\n }\n\n if (item['_' + field + '_data'] && !$.isEmptyObject(item['_' + field + '_data'])) {\n $.each(item['_' + field + '_data'], function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n if (column.checkbox || column.radio) {\n type = column.checkbox ? 'checkbox' : type;\n type = column.radio ? 'radio' : type;\n\n text = [that.options.cardView ?\n '
      ' : '',\n '',\n that.header.formatters[j] && typeof value === 'string' ? value : '',\n that.options.cardView ? '
      ' : ''\n ].join('');\n\n item[that.header.stateField] = value === true || (value && value.checked);\n } else {\n value = typeof value === 'undefined' || value === null ?\n that.options.undefinedText : value;\n\n text = that.options.cardView ? ['
      ',\n that.options.showHeader ? sprintf('%s', style,\n getPropertyFromOther(that.columns, 'field', 'title', field)) : '',\n sprintf('%s', value),\n '
      '\n ].join('') : [sprintf('', id_, class_, style, data_, rowspan_, title_),\n value,\n ''\n ].join('');\n\n // Hide empty data on Card view when smartDisplay is set to true.\n if (that.options.cardView && that.options.smartDisplay && value === '') {\n // Should set a placeholder for event binding correct fieldIndex\n text = '
      ';\n }\n }\n\n html.push(text);\n });\n\n if (this.options.cardView) {\n html.push('');\n }\n\n html.push('');\n }\n\n // show no records\n if (!html.length) {\n html.push('',\n sprintf('%s',\n this.$header.find('th').length, this.options.formatNoMatches()),\n '');\n }\n\n this.$body.html(html.join(''));\n\n if (!fixedScroll) {\n this.scrollTo(0);\n }\n\n // click to select by column\n this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {\n var $td = $(this),\n $tr = $td.parent(),\n item = that.data[$tr.data('index')],\n index = $td[0].cellIndex,\n field = that.header.fields[that.options.detailView && !that.options.cardView ? index - 1 : index],\n column = that.columns[getFieldIndex(that.columns, field)],\n value = getItemField(item, field);\n\n if ($td.find('.detail-icon').length) {\n return;\n }\n\n that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);\n that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr);\n\n // if click to select - then trigger the checkbox/radio click\n if (e.type === 'click' && that.options.clickToSelect && column.clickToSelect) {\n var $selectItem = $tr.find(sprintf('[name=\"%s\"]', that.options.selectItemName));\n if ($selectItem.length) {\n $selectItem[0].click(); // #144: .trigger('click') bug\n }\n }\n });\n\n this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function () {\n var $this = $(this),\n $tr = $this.parent().parent(),\n index = $tr.data('index'),\n row = data[index]; // Fix #980 Detail view, when searching, returns wrong row\n\n // remove and update\n if ($tr.next().is('tr.detail-view')) {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailOpen));\n $tr.next().remove();\n that.trigger('collapse-row', index, row);\n } else {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailClose));\n $tr.after(sprintf('%s',\n $tr.find('td').length, calculateObjectValue(that.options,\n that.options.detailFormatter, [index, row], '')));\n that.trigger('expand-row', index, row, $tr.next().find('td'));\n }\n that.resetView();\n });\n\n this.$selectItem = this.$body.find(sprintf('[name=\"%s\"]', this.options.selectItemName));\n this.$selectItem.off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n\n var $this = $(this),\n checked = $this.prop('checked'),\n row = that.data[$this.data('index')];\n\n if (that.options.maintainSelected && $(this).is(':radio')) {\n $.each(that.options.data, function (i, row) {\n row[that.header.stateField] = false;\n });\n }\n\n row[that.header.stateField] = checked;\n\n if (that.options.singleSelect) {\n that.$selectItem.not(this).each(function () {\n that.data[$(this).data('index')][that.header.stateField] = false;\n });\n that.$selectItem.filter(':checked').not(this).prop('checked', false);\n }\n\n that.updateSelected();\n that.trigger(checked ? 'check' : 'uncheck', row, $this);\n });\n\n $.each(this.header.events, function (i, events) {\n if (!events) {\n return;\n }\n // fix bug, if events is defined with namespace\n if (typeof events === 'string') {\n events = calculateObjectValue(null, events);\n }\n\n var field = that.header.fields[i],\n fieldIndex = $.inArray(field, that.getVisibleFields());\n\n if (that.options.detailView && !that.options.cardView) {\n fieldIndex += 1;\n }\n\n for (var key in events) {\n that.$body.find('>tr:not(.no-records-found)').each(function () {\n var $tr = $(this),\n $td = $tr.find(that.options.cardView ? '.card-view' : 'td').eq(fieldIndex),\n index = key.indexOf(' '),\n name = key.substring(0, index),\n el = key.substring(index + 1),\n func = events[key];\n\n $td.find(el).off(name).on(name, function (e) {\n var index = $tr.data('index'),\n row = that.data[index],\n value = row[field];\n\n func.apply(this, [e, value, row, index]);\n });\n });\n }\n });\n\n this.updateSelected();\n this.resetView();\n\n this.trigger('post-body');\n };\n\n BootstrapTable.prototype.initServer = function (silent, query) {\n var that = this,\n data = {},\n params = {\n pageSize: this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize,\n pageNumber: this.options.pageNumber,\n searchText: this.searchText,\n sortName: this.options.sortName,\n sortOrder: this.options.sortOrder\n },\n request;\n\n if (!this.options.url && !this.options.ajax) {\n return;\n }\n\n if (this.options.queryParamsType === 'limit') {\n params = {\n search: params.searchText,\n sort: params.sortName,\n order: params.sortOrder\n };\n if (this.options.pagination) {\n params.limit = this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize;\n params.offset = this.options.pageSize === this.options.formatAllRows() ?\n 0 : this.options.pageSize * (this.options.pageNumber - 1);\n }\n }\n\n if (!($.isEmptyObject(this.filterColumnsPartial))) {\n params['filter'] = JSON.stringify(this.filterColumnsPartial, null);\n }\n\n data = calculateObjectValue(this.options, this.options.queryParams, [params], data);\n\n $.extend(data, query || {});\n\n // false to stop request\n if (data === false) {\n return;\n }\n\n if (!silent) {\n this.$tableLoading.show();\n }\n request = $.extend({}, calculateObjectValue(null, this.options.ajaxOptions), {\n type: this.options.method,\n url: this.options.url,\n data: this.options.contentType === 'application/json' && this.options.method === 'post' ?\n JSON.stringify(data) : data,\n cache: this.options.cache,\n contentType: this.options.contentType,\n dataType: this.options.dataType,\n success: function (res) {\n res = calculateObjectValue(that.options, that.options.responseHandler, [res], res);\n\n that.load(res);\n that.trigger('load-success', res);\n },\n error: function (res) {\n that.trigger('load-error', res.status, res);\n },\n complete: function () {\n if (!silent) {\n that.$tableLoading.hide();\n }\n }\n });\n\n if (this.options.ajax) {\n calculateObjectValue(this, this.options.ajax, [request], null);\n } else {\n $.ajax(request);\n }\n };\n\n BootstrapTable.prototype.initSearchText = function () {\n if (this.options.search) {\n if (this.options.searchText !== '') {\n var $search = this.$toolbar.find('.search input');\n $search.val(this.options.searchText);\n this.onSearch({currentTarget: $search});\n }\n }\n };\n\n BootstrapTable.prototype.getCaret = function () {\n var that = this;\n\n $.each(this.$header.find('th'), function (i, th) {\n $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === that.options.sortName ? that.options.sortOrder : 'both');\n });\n };\n\n BootstrapTable.prototype.updateSelected = function () {\n var checkAll = this.$selectItem.filter(':enabled').length &&\n this.$selectItem.filter(':enabled').length ===\n this.$selectItem.filter(':enabled').filter(':checked').length;\n\n this.$selectAll.add(this.$selectAll_).prop('checked', checkAll);\n\n this.$selectItem.each(function () {\n $(this).closest('tr')[$(this).prop('checked') ? 'addClass' : 'removeClass']('selected');\n });\n };\n\n BootstrapTable.prototype.updateRows = function () {\n var that = this;\n\n this.$selectItem.each(function () {\n that.data[$(this).data('index')][that.header.stateField] = $(this).prop('checked');\n });\n };\n\n BootstrapTable.prototype.resetRows = function () {\n var that = this;\n\n $.each(this.data, function (i, row) {\n that.$selectAll.prop('checked', false);\n that.$selectItem.prop('checked', false);\n if (that.header.stateField) {\n row[that.header.stateField] = false;\n }\n });\n };\n\n BootstrapTable.prototype.trigger = function (name) {\n var args = Array.prototype.slice.call(arguments, 1);\n\n name += '.bs.table';\n this.options[BootstrapTable.EVENTS[name]].apply(this.options, args);\n this.$el.trigger($.Event(name), args);\n\n this.options.onAll(name, args);\n this.$el.trigger($.Event('all.bs.table'), [name, args]);\n };\n\n BootstrapTable.prototype.resetHeader = function () {\n // fix #61: the hidden table reset header bug.\n // fix bug: get $el.css('width') error sometime (height = 500)\n clearTimeout(this.timeoutId_);\n this.timeoutId_ = setTimeout($.proxy(this.fitHeader, this), this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitHeader = function () {\n var that = this,\n fixedBody,\n scrollWidth,\n focused,\n focusedTemp;\n\n if (that.$el.is(':hidden')) {\n that.timeoutId_ = setTimeout($.proxy(that.fitHeader, that), 100);\n return;\n }\n fixedBody = this.$tableBody.get(0);\n\n scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth &&\n fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ?\n getScrollBarWidth() : 0;\n\n this.$el.css('margin-top', -this.$header.outerHeight());\n\n focused = $(':focus');\n if (focused.length > 0) {\n var $th = focused.parents('th');\n if ($th.length > 0) {\n var dataField = $th.attr('data-field');\n if (dataField !== undefined) {\n var $headerTh = this.$header.find(\"[data-field='\" + dataField + \"']\");\n if ($headerTh.length > 0) {\n $headerTh.find(\":input\").addClass(\"focus-temp\");\n }\n }\n }\n }\n\n this.$header_ = this.$header.clone(true, true);\n this.$selectAll_ = this.$header_.find('[name=\"btSelectAll\"]');\n this.$tableHeader.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', this.$el.outerWidth())\n .html('').attr('class', this.$el.attr('class'))\n .append(this.$header_);\n\n\n focusedTemp = $('.focus-temp:visible:eq(0)');\n if (focusedTemp.length > 0) {\n focusedTemp.focus();\n this.$header.find('.focus-temp').removeClass('focus-temp');\n }\n\n // fix bug: $.data() is not working as expected after $.append()\n this.$header.find('th[data-field]').each(function (i) {\n that.$header_.find(sprintf('th[data-field=\"%s\"]', $(this).data('field'))).data($(this).data());\n });\n\n var visibleFields = this.getVisibleFields();\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this),\n index = i;\n\n if (that.options.detailView && !that.options.cardView) {\n if (i === 0) {\n that.$header_.find('th.detail').find('.fht-cell').width($this.innerWidth());\n }\n index = i - 1;\n }\n\n that.$header_.find(sprintf('th[data-field=\"%s\"]', visibleFields[index]))\n .find('.fht-cell').width($this.innerWidth());\n });\n // horizontal scroll event\n // TODO: it's probably better improving the layout than binding to scroll event\n this.$tableBody.off('scroll').on('scroll', function () {\n that.$tableHeader.scrollLeft($(this).scrollLeft());\n\n if (that.options.showFooter && !that.options.cardView) {\n that.$tableFooter.scrollLeft($(this).scrollLeft());\n }\n });\n that.trigger('post-header');\n };\n\n BootstrapTable.prototype.resetFooter = function () {\n var that = this,\n data = that.getData(),\n html = [];\n\n if (!this.options.showFooter || this.options.cardView) { //do nothing\n return;\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('
       
      ');\n }\n\n $.each(this.columns, function (i, column) {\n var falign = '', // footer align style\n style = '',\n class_ = sprintf(' class=\"%s\"', column['class']);\n\n if (!column.visible) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n falign = sprintf('text-align: %s; ', column.falign ? column.falign : column.align);\n style = sprintf('vertical-align: %s; ', column.valign);\n\n html.push('');\n html.push('
      ');\n\n html.push(calculateObjectValue(column, column.footerFormatter, [data], ' ') || ' ');\n\n html.push('
      ');\n html.push('
      ');\n html.push('');\n html.push('');\n });\n\n this.$tableFooter.find('tr').html(html.join(''));\n clearTimeout(this.timeoutFooter_);\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this),\n this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitFooter = function () {\n var that = this,\n $footerTd,\n elWidth,\n scrollWidth;\n\n clearTimeout(this.timeoutFooter_);\n if (this.$el.is(':hidden')) {\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this), 100);\n return;\n }\n\n elWidth = this.$el.css('width');\n scrollWidth = elWidth > this.$tableBody.width() ? getScrollBarWidth() : 0;\n\n this.$tableFooter.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', elWidth)\n .attr('class', this.$el.attr('class'));\n\n $footerTd = this.$tableFooter.find('td');\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this);\n\n $footerTd.eq(i).find('.fht-cell').width($this.innerWidth());\n });\n };\n\n BootstrapTable.prototype.toggleColumn = function (index, checked, needUpdate) {\n if (index === -1) {\n return;\n }\n this.columns[index].visible = checked;\n this.initHeader();\n this.initSearch();\n this.initPagination();\n this.initBody();\n\n if (this.options.showColumns) {\n var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);\n\n if (needUpdate) {\n $items.filter(sprintf('[value=\"%s\"]', index)).prop('checked', checked);\n }\n\n if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n $items.filter(':checked').prop('disabled', true);\n }\n }\n };\n\n BootstrapTable.prototype.toggleRow = function (index, uniqueId, visible) {\n if (index === -1) {\n return;\n }\n\n this.$body.find(typeof index !== 'undefined' ?\n sprintf('tr[data-index=\"%s\"]', index) :\n sprintf('tr[data-uniqueid=\"%s\"]', uniqueId))\n [visible ? 'show' : 'hide']();\n };\n\n BootstrapTable.prototype.getVisibleFields = function () {\n var that = this,\n visibleFields = [];\n\n $.each(this.header.fields, function (j, field) {\n var column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n visibleFields.push(field);\n });\n return visibleFields;\n };\n\n // PUBLIC FUNCTION DEFINITION\n // =======================\n\n BootstrapTable.prototype.resetView = function (params) {\n var padding = 0;\n\n if (params && params.height) {\n this.options.height = params.height;\n }\n\n this.$selectAll.prop('checked', this.$selectItem.length > 0 &&\n this.$selectItem.length === this.$selectItem.filter(':checked').length);\n\n if (this.options.height) {\n var toolbarHeight = getRealHeight(this.$toolbar),\n paginationHeight = getRealHeight(this.$pagination),\n height = this.options.height - toolbarHeight - paginationHeight;\n\n this.$tableContainer.css('height', height + 'px');\n }\n\n if (this.options.cardView) {\n // remove the element css\n this.$el.css('margin-top', '0');\n this.$tableContainer.css('padding-bottom', '0');\n return;\n }\n\n if (this.options.showHeader && this.options.height) {\n this.$tableHeader.show();\n this.resetHeader();\n padding += this.$header.outerHeight();\n } else {\n this.$tableHeader.hide();\n this.trigger('post-header');\n }\n\n if (this.options.showFooter) {\n this.resetFooter();\n if (this.options.height) {\n padding += this.$tableFooter.outerHeight() + 1;\n }\n }\n\n // Assign the correct sortable arrow\n this.getCaret();\n this.$tableContainer.css('padding-bottom', padding + 'px');\n this.trigger('reset-view');\n };\n\n BootstrapTable.prototype.getData = function (useCurrentPage) {\n return (this.searchText || !$.isEmptyObject(this.filterColumns) || !$.isEmptyObject(this.filterColumnsPartial)) ?\n (useCurrentPage ? this.data.slice(this.pageFrom - 1, this.pageTo) : this.data) :\n (useCurrentPage ? this.options.data.slice(this.pageFrom - 1, this.pageTo) : this.options.data);\n };\n\n BootstrapTable.prototype.load = function (data) {\n var fixedScroll = false;\n\n // #431: support pagination\n if (this.options.sidePagination === 'server') {\n this.options.totalRows = data.total;\n fixedScroll = data.fixedScroll;\n data = data[this.options.dataField];\n } else if (!$.isArray(data)) { // support fixedScroll\n fixedScroll = data.fixedScroll;\n data = data.data;\n }\n\n this.initData(data);\n this.initSearch();\n this.initPagination();\n this.initBody(fixedScroll);\n };\n\n BootstrapTable.prototype.append = function (data) {\n this.initData(data, 'append');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.prepend = function (data) {\n this.initData(data, 'prepend');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.remove = function (params) {\n var len = this.options.data.length,\n i, row;\n\n if (!params.hasOwnProperty('field') || !params.hasOwnProperty('values')) {\n return;\n }\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (!row.hasOwnProperty(params.field)) {\n continue;\n }\n if ($.inArray(row[params.field], params.values) !== -1) {\n this.options.data.splice(i, 1);\n }\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.removeAll = function () {\n if (this.options.data.length > 0) {\n this.options.data.splice(0, this.options.data.length);\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n }\n };\n\n BootstrapTable.prototype.getRowByUniqueId = function (id) {\n var uniqueId = this.options.uniqueId,\n len = this.options.data.length,\n dataRow = null,\n i, row, rowUniqueId;\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (row.hasOwnProperty(uniqueId)) { // uniqueId is a column\n rowUniqueId = row[uniqueId];\n } else if(row._data.hasOwnProperty(uniqueId)) { // uniqueId is a row data property\n rowUniqueId = row._data[uniqueId];\n } else {\n continue;\n }\n\n if (typeof rowUniqueId === 'string') {\n id = id.toString();\n } else if (typeof rowUniqueId === 'number') {\n if ((Number(rowUniqueId) === rowUniqueId) && (rowUniqueId % 1 === 0)) {\n id = parseInt(id);\n } else if ((rowUniqueId === Number(rowUniqueId)) && (rowUniqueId !== 0)) {\n id = parseFloat(id);\n }\n }\n\n if (rowUniqueId === id) {\n dataRow = row;\n break;\n }\n }\n\n return dataRow;\n };\n\n BootstrapTable.prototype.removeByUniqueId = function (id) {\n var len = this.options.data.length,\n row = this.getRowByUniqueId(id);\n\n if (row) {\n this.options.data.splice(this.options.data.indexOf(row), 1);\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateByUniqueId = function (params) {\n var rowId;\n\n if (!params.hasOwnProperty('id') || !params.hasOwnProperty('row')) {\n return;\n }\n\n rowId = $.inArray(this.getRowByUniqueId(params.id), this.options.data);\n\n if (rowId === -1) {\n return;\n }\n\n $.extend(this.data[rowId], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.insertRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n this.data.splice(params.index, 0, params.row);\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n $.extend(this.data[params.index], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.showRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, true);\n };\n\n BootstrapTable.prototype.hideRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, false);\n };\n\n BootstrapTable.prototype.getRowsHidden = function (show) {\n var rows = $(this.$body[0]).children().filter(':hidden'),\n i = 0;\n if (show) {\n for (; i < rows.length; i++) {\n $(rows[i]).show();\n }\n }\n return rows;\n };\n\n BootstrapTable.prototype.mergeCells = function (options) {\n var row = options.index,\n col = $.inArray(options.field, this.getVisibleFields()),\n rowspan = options.rowspan || 1,\n colspan = options.colspan || 1,\n i, j,\n $tr = this.$body.find('>tr'),\n $td;\n\n if (this.options.detailView && !this.options.cardView) {\n col += 1;\n }\n\n $td = $tr.eq(row).find('>td').eq(col);\n\n if (row < 0 || col < 0 || row >= this.data.length) {\n return;\n }\n\n for (i = row; i < row + rowspan; i++) {\n for (j = col; j < col + colspan; j++) {\n $tr.eq(i).find('>td').eq(j).hide();\n }\n }\n\n $td.attr('rowspan', rowspan).attr('colspan', colspan).show();\n };\n\n BootstrapTable.prototype.updateCell = function (params) {\n if (!params.hasOwnProperty('index') ||\n !params.hasOwnProperty('field') ||\n !params.hasOwnProperty('value')) {\n return;\n }\n this.data[params.index][params.field] = params.value;\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.getOptions = function () {\n return this.options;\n };\n\n BootstrapTable.prototype.getSelections = function () {\n var that = this;\n\n return $.grep(this.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.getAllSelections = function () {\n var that = this;\n\n return $.grep(this.options.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.checkAll = function () {\n this.checkAll_(true);\n };\n\n BootstrapTable.prototype.uncheckAll = function () {\n this.checkAll_(false);\n };\n\n BootstrapTable.prototype.checkAll_ = function (checked) {\n var rows;\n if (!checked) {\n rows = this.getSelections();\n }\n this.$selectAll.add(this.$selectAll_).prop('checked', checked);\n this.$selectItem.filter(':enabled').prop('checked', checked);\n this.updateRows();\n if (checked) {\n rows = this.getSelections();\n }\n this.trigger(checked ? 'check-all' : 'uncheck-all', rows);\n };\n\n BootstrapTable.prototype.check = function (index) {\n this.check_(true, index);\n };\n\n BootstrapTable.prototype.uncheck = function (index) {\n this.check_(false, index);\n };\n\n BootstrapTable.prototype.check_ = function (checked, index) {\n var $el = this.$selectItem.filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n this.data[index][this.header.stateField] = checked;\n this.updateSelected();\n this.trigger(checked ? 'check' : 'uncheck', this.data[index], $el);\n };\n\n BootstrapTable.prototype.checkBy = function (obj) {\n this.checkBy_(true, obj);\n };\n\n BootstrapTable.prototype.uncheckBy = function (obj) {\n this.checkBy_(false, obj);\n };\n\n BootstrapTable.prototype.checkBy_ = function (checked, obj) {\n if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {\n return;\n }\n\n var that = this,\n rows = [];\n $.each(this.options.data, function (index, row) {\n if (!row.hasOwnProperty(obj.field)) {\n return false;\n }\n if ($.inArray(row[obj.field], obj.values) !== -1) {\n var $el = that.$selectItem.filter(':enabled')\n .filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n row[that.header.stateField] = checked;\n rows.push(row);\n that.trigger(checked ? 'check' : 'uncheck', row, $el);\n }\n });\n this.updateSelected();\n this.trigger(checked ? 'check-some' : 'uncheck-some', rows);\n };\n\n BootstrapTable.prototype.destroy = function () {\n this.$el.insertBefore(this.$container);\n $(this.options.toolbar).insertBefore(this.$el);\n this.$container.next().remove();\n this.$container.remove();\n this.$el.html(this.$el_.html())\n .css('margin-top', '0')\n .attr('class', this.$el_.attr('class') || ''); // reset the class\n };\n\n BootstrapTable.prototype.showLoading = function () {\n this.$tableLoading.show();\n };\n\n BootstrapTable.prototype.hideLoading = function () {\n this.$tableLoading.hide();\n };\n\n BootstrapTable.prototype.togglePagination = function () {\n this.options.pagination = !this.options.pagination;\n var button = this.$toolbar.find('button[name=\"paginationSwitch\"] i');\n if (this.options.pagination) {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchDown);\n } else {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchUp);\n }\n this.updatePagination();\n };\n\n BootstrapTable.prototype.refresh = function (params) {\n if (params && params.url) {\n this.options.url = params.url;\n this.options.pageNumber = 1;\n }\n this.initServer(params && params.silent, params && params.query);\n };\n\n BootstrapTable.prototype.resetWidth = function () {\n if (this.options.showHeader && this.options.height) {\n this.fitHeader();\n }\n if (this.options.showFooter) {\n this.fitFooter();\n }\n };\n\n BootstrapTable.prototype.showColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), true, true);\n };\n\n BootstrapTable.prototype.hideColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), false, true);\n };\n\n BootstrapTable.prototype.getHiddenColumns = function () {\n return $.grep(this.columns, function (column) {\n return !column.visible;\n });\n };\n\n BootstrapTable.prototype.filterBy = function (columns) {\n this.filterColumns = $.isEmptyObject(columns) ? {} : columns;\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n };\n\n BootstrapTable.prototype.scrollTo = function (value) {\n if (typeof value === 'string') {\n value = value === 'bottom' ? this.$tableBody[0].scrollHeight : 0;\n }\n if (typeof value === 'number') {\n this.$tableBody.scrollTop(value);\n }\n if (typeof value === 'undefined') {\n return this.$tableBody.scrollTop();\n }\n };\n\n BootstrapTable.prototype.getScrollPosition = function () {\n return this.scrollTo();\n };\n\n BootstrapTable.prototype.selectPage = function (page) {\n if (page > 0 && page <= this.options.totalPages) {\n this.options.pageNumber = page;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.prevPage = function () {\n if (this.options.pageNumber > 1) {\n this.options.pageNumber--;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.nextPage = function () {\n if (this.options.pageNumber < this.options.totalPages) {\n this.options.pageNumber++;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.toggleView = function () {\n this.options.cardView = !this.options.cardView;\n this.initHeader();\n // Fixed remove toolbar when click cardView button.\n //that.initToolbar();\n this.initBody();\n this.trigger('toggle', this.options.cardView);\n };\n\n BootstrapTable.prototype.refreshOptions = function (options) {\n //If the objects are equivalent then avoid the call of destroy / init methods\n if (compareObjects(this.options, options, false)) {\n return;\n }\n this.options = $.extend(this.options, options);\n this.trigger('refresh-options', this.options);\n this.destroy();\n this.init();\n };\n\n BootstrapTable.prototype.resetSearch = function (text) {\n var $search = this.$toolbar.find('.search input');\n $search.val(text || '');\n this.onSearch({currentTarget: $search});\n };\n\n BootstrapTable.prototype.expandRow_ = function (expand, index) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', index));\n if ($tr.next().is('tr.detail-view') === (expand ? false : true)) {\n $tr.find('> td > .detail-icon').click();\n }\n };\n\n BootstrapTable.prototype.expandRow = function (index) {\n this.expandRow_(true, index);\n };\n\n BootstrapTable.prototype.collapseRow = function (index) {\n this.expandRow_(false, index);\n };\n\n BootstrapTable.prototype.expandAllRows = function (isSubTable) {\n if (isSubTable) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', 0)),\n that = this,\n detailIcon = null,\n executeInterval = false,\n idInterval = -1;\n\n if (!$tr.next().is('tr.detail-view')) {\n $tr.find('> td > .detail-icon').click();\n executeInterval = true;\n } else if (!$tr.next().next().is('tr.detail-view')) {\n $tr.next().find(\".detail-icon\").click();\n executeInterval = true;\n }\n\n if (executeInterval) {\n try {\n idInterval = setInterval(function () {\n detailIcon = that.$body.find(\"tr.detail-view\").last().find(\".detail-icon\");\n if (detailIcon.length > 0) {\n detailIcon.click();\n } else {\n clearInterval(idInterval);\n }\n }, 1);\n } catch (ex) {\n clearInterval(idInterval);\n }\n }\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(true, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n BootstrapTable.prototype.collapseAllRows = function (isSubTable) {\n if (isSubTable) {\n this.expandRow_(false, 0);\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(false, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n // BOOTSTRAP TABLE PLUGIN DEFINITION\n // =======================\n\n var allowedMethods = [\n 'getOptions',\n 'getSelections', 'getAllSelections', 'getData',\n 'load', 'append', 'prepend', 'remove', 'removeAll',\n 'insertRow', 'updateRow', 'updateCell', 'updateByUniqueId', 'removeByUniqueId',\n 'getRowByUniqueId', 'showRow', 'hideRow', 'getRowsHidden',\n 'mergeCells',\n 'checkAll', 'uncheckAll',\n 'check', 'uncheck',\n 'checkBy', 'uncheckBy',\n 'refresh',\n 'resetView',\n 'resetWidth',\n 'destroy',\n 'showLoading', 'hideLoading',\n 'showColumn', 'hideColumn', 'getHiddenColumns',\n 'filterBy',\n 'scrollTo',\n 'getScrollPosition',\n 'selectPage', 'prevPage', 'nextPage',\n 'togglePagination',\n 'toggleView',\n 'refreshOptions',\n 'resetSearch',\n 'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows'\n ];\n\n $.fn.bootstrapTable = function (option) {\n var value,\n args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var $this = $(this),\n data = $this.data('bootstrap.table'),\n options = $.extend({}, BootstrapTable.DEFAULTS, $this.data(),\n typeof option === 'object' && option);\n\n if (typeof option === 'string') {\n if ($.inArray(option, allowedMethods) < 0) {\n throw new Error(\"Unknown method: \" + option);\n }\n\n if (!data) {\n return;\n }\n\n value = data[option].apply(data, args);\n\n if (option === 'destroy') {\n $this.removeData('bootstrap.table');\n }\n }\n\n if (!data) {\n $this.data('bootstrap.table', (data = new BootstrapTable(this, options)));\n }\n });\n\n return typeof value === 'undefined' ? this : value;\n };\n\n $.fn.bootstrapTable.Constructor = BootstrapTable;\n $.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS;\n $.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS;\n $.fn.bootstrapTable.locales = BootstrapTable.LOCALES;\n $.fn.bootstrapTable.methods = allowedMethods;\n $.fn.bootstrapTable.utils = {\n sprintf: sprintf,\n getFieldIndex: getFieldIndex,\n compareObjects: compareObjects,\n calculateObjectValue: calculateObjectValue\n };\n\n // BOOTSTRAP TABLE INIT\n // =======================\n\n $(function () {\n $('[data-toggle=\"table\"]').bootstrapTable();\n });\n\n}(jQuery);\n","/* =========================================================\n * bootstrap-datepicker.js\n * Repo: https://github.com/eternicode/bootstrap-datepicker/\n * Demo: http://eternicode.github.io/bootstrap-datepicker/\n * Docs: http://bootstrap-datepicker.readthedocs.org/\n * Forked from http://www.eyecon.ro/bootstrap-datepicker\n * =========================================================\n * Started by Stefan Petre; improvements by Andrew Rowls + contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n\n(function($, undefined){\n\n\tvar $window = $(window);\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction alias(method){\n\t\treturn function(){\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n\t\t\t\t\tif (this[i].valueOf() === val)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.splice(0);\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = UTCToday();\n\t\tthis.focusDate = null;\n\n\t\tthis._process_options(options);\n\n\t\tthis.element = $(element);\n\t\tthis.isInline = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.is('.date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\n\t\tthis.picker = $(DPGlobal.template);\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tthis.viewMode = this.o.startView;\n\n\t\tif (this.o.calendarWeeks)\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t\t});\n\n\t\tthis._allow_update = false;\n\n\t\tthis.setStartDate(this._o.startDate);\n\t\tthis.setEndDate(this._o.endDate);\n\t\tthis.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis._allow_update = true;\n\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\tswitch (o.startView){\n\t\t\t\tcase 2:\n\t\t\t\tcase 'decade':\n\t\t\t\t\to.startView = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'year':\n\t\t\t\t\to.startView = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.startView = 0;\n\t\t\t}\n\n\t\t\tswitch (o.minViewMode){\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.minViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'years':\n\t\t\t\t\to.minViewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.minViewMode = 0;\n\t\t\t}\n\n\t\t\to.startView = Math.max(o.startView, o.minViewMode);\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t\telse\n\t\t\t\t\to.multidate = 1;\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = ((o.weekStart + 6) % 7);\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled||[];\n\t\t\tif (!$.isArray(o.daysOfWeekDisabled))\n\t\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\\s]*/);\n\t\t\to.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn (/^auto|left|right|top|bottom$/).test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^left|right$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^top|bottom$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t},\n\t\t_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n\t\t\tif (this.isInput){ // single input\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.component && this.hasInput){ // component: input + button\n\t\t\t\tthis._events = [\n\t\t\t\t\t// For components that are not readonly, allow keyboard nav\n\t\t\t\t\t[this.element.find('input'), {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}],\n\t\t\t\t\t[this.component, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.element.is('div')){ // inline datepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\t'mousedown touchstart': $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo('body');\n\t\t\tthis.picker.show();\n\t\t\tthis.place();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tif (!this.picker.is(':visible'))\n\t\t\t\treturn;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.viewMode = this.o.startView;\n\t\t\tthis.showMode();\n\n\t\t\tif (\n\t\t\t\tthis.o.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val() ||\n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t},\n\n\t\tremove: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\treturn utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\treturn new Date(this.dates.get(-1));\n\t\t},\n\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, $.map(args, this._utc_to_local));\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput){\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted).change();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.element.val(formatted).change();\n\t\t\t}\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\twindowWidth = $window.width(),\n\t\t\t\twindowHeight = $window.height(),\n\t\t\t\tscrollTop = $window.scrollTop();\n\n\t\t\tvar zIndex = parseInt(this.element.parents().filter(function(){\n\t\t\t\t\treturn $(this).css('z-index') !== 'auto';\n\t\t\t\t}).first().css('z-index'))+10;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left,\n\t\t\t\ttop = offset.top;\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\t// Default to left\n\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\tif (offset.left < 0)\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\telse if (offset.left + calendarWidth > windowWidth)\n\t\t\t\t\tleft = windowWidth - calendarWidth - visualPadding;\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow, bottom_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + offset.top - calendarHeight;\n\t\t\t\tbottom_overflow = scrollTop + windowHeight - (offset.top + height + calendarHeight);\n\t\t\t\tif (Math.max(top_overflow, bottom_overflow) === bottom_overflow)\n\t\t\t\t\tyorient = 'top';\n\t\t\t\telse\n\t\t\t\t\tyorient = 'bottom';\n\t\t\t}\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop += height;\n\t\t\telse\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\n\t\t\tthis.picker.css({\n\t\t\t\ttop: top,\n\t\t\t\tleft: left,\n\t\t\t\tzIndex: zIndex\n\t\t\t});\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.element.find('input').val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\tdate < this.o.startDate ||\n\t\t\t\t\tdate > this.o.endDate ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.dates.length)\n\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t}\n\t\t\telse if (dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates))\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length)\n\t\t\t\tthis._trigger('clearDate');\n\n\t\t\tthis.fill();\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\tvar cell = ' ';\n\t\t\t\thtml += cell;\n\t\t\t\tthis.picker.find('.datepicker-days thead tr:first-child').prepend(cell);\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += ''+dates[this.o.language].daysMin[(dowCnt++)%7]+'';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12){\n\t\t\t\thtml += ''+dates[this.o.language].monthsShort[i++]+'';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = new Date();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t}\n\t\t\telse if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\tif (this.o.todayHighlight &&\n\t\t\t\tdate.getUTCFullYear() === today.getFullYear() &&\n\t\t\t\tdate.getUTCMonth() === today.getMonth() &&\n\t\t\t\tdate.getUTCDate() === today.getDate()){\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (date.valueOf() < this.o.startDate || date.valueOf() > this.o.endDate ||\n\t\t\t\t$.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n\t\t\t\ttooltip;\n\t\t\tthis.picker.find('.datepicker-days thead th.datepicker-switch')\n\t\t\t\t\t\t.text(dates[this.o.language].months[month]+' '+year);\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.text(todaytxt)\n\t\t\t\t\t\t.toggle(this.o.todayBtn !== false);\n\t\t\tthis.picker.find('tfoot th.clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.toggle(this.o.clearBtn !== false);\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28),\n\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\tprevMonth.setUTCDate(day);\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekStart){\n\t\t\t\t\thtml.push('');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek = (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push(''+ calWeek +'');\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tvar before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t}\n\n\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\thtml.push(''+prevMonth.getUTCDate() + '');\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekEnd){\n\t\t\t\t\thtml.push('');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').empty().append(html.join(''));\n\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t.text(year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datepicker-years')\n\t\t\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tvar years = $.map(this.dates, function(d){\n\t\t\t\t\treturn d.getUTCFullYear();\n\t\t\t\t}),\n\t\t\t\tclasses;\n\t\t\tfor (var i = -1; i < 11; i++){\n\t\t\t\tclasses = ['year'];\n\t\t\t\tif (i === -1)\n\t\t\t\t\tclasses.push('old');\n\t\t\t\telse if (i === 10)\n\t\t\t\t\tclasses.push('new');\n\t\t\t\tif ($.inArray(year, years) !== -1)\n\t\t\t\t\tclasses.push('active');\n\t\t\t\tif (year < startYear || year > endYear)\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\thtml += ''+year+'';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth();\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\tvar target = $(e.target).closest('span, td, th'),\n\t\t\t\tyear, month, day;\n\t\t\tif (target.length === 1){\n\t\t\t\tswitch (target[0].nodeName.toLowerCase()){\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch (target[0].className){\n\t\t\t\t\t\t\tcase 'datepicker-switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch (this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode === 1)\n\t\t\t\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tvar date = new Date();\n\t\t\t\t\t\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\n\t\t\t\t\t\t\t\tthis.showMode(-2);\n\t\t\t\t\t\t\t\tvar which = this.o.todayBtn === 'linked' ? null : 'view';\n\t\t\t\t\t\t\t\tthis._setDate(date, which);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clear':\n\t\t\t\t\t\t\t\tvar element;\n\t\t\t\t\t\t\t\tif (this.isInput)\n\t\t\t\t\t\t\t\t\telement = this.element;\n\t\t\t\t\t\t\t\telse if (this.component)\n\t\t\t\t\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t\t\t\t\tif (element)\n\t\t\t\t\t\t\t\t\telement.val(\"\").change();\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.is('.disabled')){\n\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\tif (target.is('.month')){\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 1){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10)||0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 2){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.is('.day') && !target.is('.disabled')){\n\t\t\t\t\t\t\tday = parseInt(target.text(), 10)||1;\n\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth();\n\t\t\t\t\t\t\tif (target.is('.old')){\n\t\t\t\t\t\t\t\tif (month === 0){\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (target.is('.new')){\n\t\t\t\t\t\t\t\tif (month === 11){\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\t$(this._focused_from).focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\t\t\telse if (ix !== -1){\n\t\t\t\tthis.dates.remove(ix);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif (!which || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tthis._trigger('changeDate');\n\t\t\tvar element;\n\t\t\tif (this.isInput){\n\t\t\t\telement = this.element;\n\t\t\t}\n\t\t\telse if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element){\n\t\t\t\telement.change();\n\t\t\t}\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (this.picker.is(':not(:visible)')){\n\t\t\t\tif (e.keyCode === 27) // allow escape to hide and re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newDate, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 39: // right\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 38 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir * 7);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir * 7);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 32: // spacebar\n\t\t\t\t\t// Spacebar is used in manually typing dates in some formats.\n\t\t\t\t\t// As such, its behavior should not be hijacked.\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\tdateChanged = true;\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput){\n\t\t\t\t\telement = this.element;\n\t\t\t\t}\n\t\t\t\telse if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element){\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir){\n\t\t\tif (dir){\n\t\t\t\tthis.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + dir));\n\t\t\t}\n\t\t\tthis.picker\n\t\t\t\t.find('>div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName)\n\t\t\t\t\t.css('display', 'block');\n\t\t\tthis.updateNavArrows();\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\t$(this.inputs)\n\t\t\t.datepicker(options)\n\t\t\t.bind('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $(i).data('datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling. Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $(e.target).data('datepicker'),\n\t\t\t\tnew_date = dp.getUTCDate(),\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate())\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[i]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (i >= 0 && new_date < this.dates[i]){\n\t\t\t\t\tthis.pickers[i--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (new_date > this.dates[i]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (i < l && new_date > this.dates[i]){\n\t\t\t\t\tthis.pickers[i++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tremove: function(){\n\t\t\t$.map(this.pickers, function(p){ p.remove(); });\n\t\t\tdelete this.element.data().datepicker;\n\t\t}\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\t$.fn.datepicker = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.is('.input-daterange') || opts.inputs){\n\t\t\t\t\tvar ropts = {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t};\n\t\t\t\t\t$this.data('datepicker', (data = new DateRangePicker(this, $.extend(opts, ropts))));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$this.data('datepicker', (data = new Datepicker(this, opts)));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t\tif (internal_return !== undefined)\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif (internal_return !== undefined)\n\t\t\treturn internal_return;\n\t\telse\n\t\t\treturn this;\n\t};\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tweekStart: 0\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function(year){\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\t\t},\n\t\tgetDaysInMonth: function(year, month){\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\t\t},\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\[\\u3400-\\u9fff-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\t// IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar part_re = /([\\-+]\\d+)([dmwy])/,\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g),\n\t\t\t\tpart, dir, i;\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tswitch (part[2]){\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'm':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveMonth.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'w':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir * 7);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'y':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveYear.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0);\n\t\t\t}\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\t\t\tdate = new Date();\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(v);\n\t\t\t\t\t},\n\t\t\t\t\tyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(2000+v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m === p;\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'«'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'»'+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t'',\n\t\tcontTemplate: '',\n\t\tfootTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t''\n\t};\n\tDPGlobal.template = '
      '+\n\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t\t'
      '+\n\t\t\t\t\t\t'
      ';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\t$this.datepicker('show');\n\t\t}\n\t);\n\t$(function(){\n\t\t$('[data-provide=\"datepicker-inline\"]').datepicker();\n\t});\n\n}(window.jQuery));\n","/*!\n * Select2 4.0.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n factory(require('jquery'));\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =\n(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that \"directory\" and not name of the baseName's\n //module. For instance, baseName of \"one/two/three\", maps to\n //\"one/two/three.js\", but we want the directory, \"one/two\" for\n //this normalization.\n baseParts = baseParts.slice(0, baseParts.length - 1);\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n name = baseParts.concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '
        '\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
      • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n this.$results.append($message);\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = $.data(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'treeitem',\n 'aria-selected': 'false'\n };\n\n if (data.disabled) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('
          ', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n $.data(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = $highlighted.data('data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close');\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at te top, don't move further\n if (currentIndex === 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = (\n self.$results.get(0).scrollHeight -\n self.$results.scrollTop() +\n e.deltaY\n );\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = $this.data('data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close');\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = $(this).data('data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (this.$element.data('old-tabindex') != null) {\n this._tabindex = this.$element.data('old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-container';\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.focus();\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n });\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n var self = this;\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n var $this = $(this);\n\n if (this == $select[0]) {\n return;\n }\n\n var $element = $this.data('element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n };\n\n SingleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n SingleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var formatted = this.display(selection);\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty().append(formatted);\n $rendered.prop('title', selection.title || selection.text);\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n '
            '\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('click', '.select2-selection__choice__remove',\n function (evt) {\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = $selection.data('data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n MultipleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
          • ' +\n '' +\n '×' +\n '' +\n '
          • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var formatted = this.display(selection);\n var $selection = this.selectionContainer();\n\n $selection.append(formatted);\n $selection.prop('title', selection.title || selection.text);\n\n $selection.data('data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys'\n], function ($, KEYS) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.options.get('disabled')) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = $clear.data('data');\n\n for (var d = 0; d < data.length; d++) {\n var unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n return;\n }\n }\n\n this.$element.val(this.placeholder.id).trigger('change');\n\n this.trigger('toggle');\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var $remove = $(\n '' +\n '×' +\n ''\n );\n $remove.data('data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n self.$search.focus();\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = $previousChoice.data('data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on('input', '.select2-search--inline', function (evt) {\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n });\n\n this.$selection.on('keyup.search input', '.select2-search--inline',\n function (evt) {\n self.handleSearch(evt);\n });\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.trigger('open');\n\n this.$search.val(item.text + ' ');\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').innerWidth();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting'\n ];\n\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n $.removeData(this, 'data');\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n $.data(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = $.data($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n $.data($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (!$.isPlainObject(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n var data = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n\n this.addOptions(this.convertToOptions(data));\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, existingData, item);\n\n var $newOption = this.option(existingData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return {\n q: params.term\n };\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url(params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data(params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // TODO: Handle AJAX errors\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term !== '') {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var checkText = option.text === params.term;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var tag = this._lastTag;\n\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function select (data) {\n self.select(data);\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, select);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.focus();\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n decorated.call(self, params, callback);\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implmented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n\n window.setTimeout(function () {\n self.$search.focus();\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n self.$loadingMore[0]\n );\n\n if (self.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var loadingMoreOffset = self.$loadingMore.offset().top +\n self.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n self.loadMore();\n }\n });\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
          • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = options.get('dropdownParent') || document.body;\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var setupResultsEvents = false;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n if (!setupResultsEvents) {\n setupResultsEvents = true;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n }\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._attachPositioningHandler = function (container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n $(this).data('select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = $(this).data('select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = function (container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var position = this.$container.position();\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n this.$dropdownContainer.width();\n\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n\n], function () {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function () {\n self._handleSelectOnClose();\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function () {\n var $highlightedResults = this.getHighlightedResults();\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n this.trigger('select', {\n data: $highlightedResults.data('data')\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && originalEvent.ctrlKey) {\n return;\n }\n\n this.trigger('close');\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend({}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n if (typeof options.language === 'string') {\n // Check if the language is specified with a region\n if (options.language.indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = options.language.split('-');\n var baseLanguage = languageParts[0];\n\n options.language = [options.language, baseLanguage];\n } else {\n options.language = [options.language];\n }\n }\n\n if ($.isArray(options.language)) {\n var languages = new Translation();\n options.language.push('en');\n\n var languageNames = options.language;\n\n for (var l = 0; l < languageNames.length; l++) {\n var name = languageNames[l];\n var language = {};\n\n try {\n // Try to load it with the original name\n language = Translation.loadPath(name);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n name = this.defaults.amdLanguageBase + name;\n language = Translation.loadPath(name);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files.\n if (options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + name + '\" could not be ' +\n 'automatically loaded. A fallback will be used instead.'\n );\n }\n\n continue;\n }\n }\n\n languages.extend(language);\n }\n\n options.translations = languages;\n } else {\n var baseTranslation = Translation.loadPath(\n this.defaults.amdLanguageBase + 'en'\n );\n var customTranslation = new Translation(options.language);\n\n customTranslation.extend(baseTranslation);\n\n options.translations = customTranslation;\n }\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: EnglishTranslation,\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.language == null) {\n if ($e.prop('lang')) {\n this.options.language = $e.prop('lang').toLowerCase();\n } else if ($e.closest('[lang]').prop('lang')) {\n this.options.language = $e.closest('[lang]').prop('lang');\n }\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if ($e.data('select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n $e.data('data', $e.data('select2Tags'));\n $e.data('tags', true);\n }\n\n if ($e.data('ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', $e.data('ajaxUrl'));\n $e.data('ajax--url', $e.data('ajaxUrl'));\n }\n\n var dataset = {};\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, $e.data());\n } else {\n dataset = $e.data();\n }\n\n var data = $.extend(true, {}, dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if ($element.data('select2') != null) {\n $element.data('select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n $element.data('old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n\t$element.attr('aria-hidden', 'true');\n\t\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this._sync = Utils.bind(this._syncAttributes, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._sync);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n $.each(mutations, self._sync);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener('DOMAttrModified', self._sync, false);\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('focus', function () {\n self.$container.addClass('select2-container--focus');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open');\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ENTER) {\n self.trigger('results:select');\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle');\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous');\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next');\n\n evt.preventDefault();\n } else if (key === KEYS.ESC || key === KEYS.TAB) {\n self.close();\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n ((key === KEYS.DOWN || key === KEYS.UP) && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.options.get('disabled')) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable');\n } else {\n this.trigger('enable');\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting'\n };\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.options.get('disabled')) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n this.trigger('query', {});\n\n this.trigger('open');\n };\n\n Select2.prototype.close = function () {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._sync);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._sync, false);\n }\n\n this._sync = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex', this.$element.data('old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n\tthis.$element.attr('aria-hidden', 'false');\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n $container.data('element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'require',\n\n './select2/core',\n './select2/defaults'\n], function ($, require, Select2, Defaults) {\n // Force jQuery.mousewheel to be loaded if it hasn't already\n require('jquery.mousewheel');\n\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend({}, options, true);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var instance = this.data('select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n var args = Array.prototype.slice.call(arguments, 1);\n\n var ret = instance[options](args);\n\n // Check if we should be returning `this`\n if ($.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\nS2.define('jquery.mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","/*!\n * iCheck v1.0.1, http://git.io/arlzeA\n * =================================\n * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization\n *\n * (c) 2013 Damir Sultanov, http://fronteed.com\n * MIT Licensed\n */\n\n(function($) {\n\n // Cached vars\n var _iCheck = 'iCheck',\n _iCheckHelper = _iCheck + '-helper',\n _checkbox = 'checkbox',\n _radio = 'radio',\n _checked = 'checked',\n _unchecked = 'un' + _checked,\n _disabled = 'disabled',\n _determinate = 'determinate',\n _indeterminate = 'in' + _determinate,\n _update = 'update',\n _type = 'type',\n _click = 'click',\n _touch = 'touchbegin.i touchend.i',\n _add = 'addClass',\n _remove = 'removeClass',\n _callback = 'trigger',\n _label = 'label',\n _cursor = 'cursor',\n _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);\n\n // Plugin init\n $.fn[_iCheck] = function(options, fire) {\n\n // Walker\n var handle = 'input[type=\"' + _checkbox + '\"], input[type=\"' + _radio + '\"]',\n stack = $(),\n walker = function(object) {\n object.each(function() {\n var self = $(this);\n\n if (self.is(handle)) {\n stack = stack.add(self);\n } else {\n stack = stack.add(self.find(handle));\n }\n });\n };\n\n // Check if we should operate with some method\n if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {\n\n // Normalize method's name\n options = options.toLowerCase();\n\n // Find checkboxes and radio buttons\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n if (options == 'destroy') {\n tidy(self, 'ifDestroyed');\n } else {\n operate(self, true, options);\n }\n // Fire method's callback\n if ($.isFunction(fire)) {\n fire();\n }\n });\n\n // Customization\n } else if (typeof options == 'object' || !options) {\n\n // Check if any options were passed\n var settings = $.extend({\n checkedClass: _checked,\n disabledClass: _disabled,\n indeterminateClass: _indeterminate,\n labelHover: true,\n aria: false\n }, options),\n\n selector = settings.handle,\n hoverClass = settings.hoverClass || 'hover',\n focusClass = settings.focusClass || 'focus',\n activeClass = settings.activeClass || 'active',\n labelHover = !!settings.labelHover,\n labelHoverClass = settings.labelHoverClass || 'hover',\n\n // Setup clickable area\n area = ('' + settings.increaseArea).replace('%', '') | 0;\n\n // Selector limit\n if (selector == _checkbox || selector == _radio) {\n handle = 'input[type=\"' + selector + '\"]';\n }\n // Clickable area limit\n if (area < -50) {\n area = -50;\n }\n // Walk around the selector\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n // If already customized\n tidy(self);\n\n var node = this,\n id = node.id,\n\n // Layer styles\n offset = -area + '%',\n size = 100 + (area * 2) + '%',\n layer = {\n position: 'absolute',\n top: offset,\n left: offset,\n display: 'block',\n width: size,\n height: size,\n margin: 0,\n padding: 0,\n background: '#fff',\n border: 0,\n opacity: 0\n },\n\n // Choose how to hide input\n hide = _mobile ? {\n position: 'absolute',\n visibility: 'hidden'\n } : area ? layer : {\n position: 'absolute',\n opacity: 0\n },\n\n // Get proper class\n className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,\n\n // Find assigned labels\n label = $(_label + '[for=\"' + id + '\"]').add(self.closest(_label)),\n\n // Check ARIA option\n aria = !!settings.aria,\n\n // Set ARIA placeholder\n ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),\n\n // Parent & helper\n parent = '
            ')[_callback]('ifCreated').parent().append(settings.insert);\n\n // Layer addition\n helper = $('').css(layer).appendTo(parent);\n\n // Finalize customization\n self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);\n !!settings.inheritClass && parent[_add](node.className || '');\n !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);\n parent.css('position') == 'static' && parent.css('position', 'relative');\n operate(self, true, _update);\n\n // Label events\n if (label.length) {\n label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {\n var type = event[_type],\n item = $(this);\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n if ($(event.target).is('a')) {\n return;\n }\n operate(self, false, true);\n\n // Hover state\n } else if (labelHover) {\n\n // mouseout|touchend\n if (/ut|nd/.test(type)) {\n parent[_remove](hoverClass);\n item[_remove](labelHoverClass);\n } else {\n parent[_add](hoverClass);\n item[_add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n }\n // Input events\n self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {\n var type = event[_type],\n key = event.keyCode;\n\n // Click\n if (type == _click) {\n return false;\n\n // Keydown\n } else if (type == 'keydown' && key == 32) {\n if (!(node[_type] == _radio && node[_checked])) {\n if (node[_checked]) {\n off(self, _checked);\n } else {\n on(self, _checked);\n }\n }\n return false;\n\n // Keyup\n } else if (type == 'keyup' && node[_type] == _radio) {\n !node[_checked] && on(self, _checked);\n\n // Focus/blur\n } else if (/us|ur/.test(type)) {\n parent[type == 'blur' ? _remove : _add](focusClass);\n }\n });\n\n // Helper events\n helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {\n var type = event[_type],\n\n // mousedown|mouseup\n toggle = /wn|up/.test(type) ? activeClass : hoverClass;\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n operate(self, false, true);\n\n // Active and hover states\n } else {\n\n // State is on\n if (/wn|er|in/.test(type)) {\n\n // mousedown|mouseover|touchbegin\n parent[_add](toggle);\n\n // State is off\n } else {\n parent[_remove](toggle + ' ' + activeClass);\n }\n // Label hover\n if (label.length && labelHover && toggle == hoverClass) {\n\n // mouseout|touchend\n label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n });\n } else {\n return this;\n }\n };\n\n // Do something with inputs\n function operate(input, direct, method) {\n var node = input[0],\n state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,\n active = method == _update ? {\n checked: node[_checked],\n disabled: node[_disabled],\n indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'\n } : node[state];\n\n // Check, disable or indeterminate\n if (/^(ch|di|in)/.test(method) && !active) {\n on(input, state);\n\n // Uncheck, enable or determinate\n } else if (/^(un|en|de)/.test(method) && active) {\n off(input, state);\n\n // Update\n } else if (method == _update) {\n\n // Handle states\n for (var state in active) {\n if (active[state]) {\n on(input, state, true);\n } else {\n off(input, state, true);\n }\n }\n } else if (!direct || method == 'toggle') {\n\n // Helper or label was clicked\n if (!direct) {\n input[_callback]('ifClicked');\n }\n // Toggle checked state\n if (active) {\n if (node[_type] !== _radio) {\n off(input, state);\n }\n } else {\n on(input, state);\n }\n }\n }\n // Add checked, disabled or indeterminate state\n function on(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== true) {\n\n // Toggle assigned radio buttons\n if (!keep && state == _checked && node[_type] == _radio && node.name) {\n var form = input.closest('form'),\n inputs = 'input[name=\"' + node.name + '\"]';\n\n inputs = form.length ? form.find(inputs) : $(inputs);\n\n inputs.each(function() {\n if (this !== node && $(this).data(_iCheck)) {\n off($(this), state);\n }\n });\n }\n // Indeterminate state\n if (indeterminate) {\n\n // Add indeterminate state\n node[state] = true;\n\n // Remove checked state\n if (node[_checked]) {\n off(input, _checked, 'force');\n }\n // Checked or disabled state\n } else {\n\n // Add checked or disabled state\n if (!keep) {\n node[state] = true;\n }\n // Remove indeterminate state\n if (checked && node[_indeterminate]) {\n off(input, _indeterminate, false);\n }\n }\n // Trigger callbacks\n callbacks(input, checked, state, keep);\n }\n // Add proper cursor\n if (node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'default');\n }\n // Add state class\n parent[_add](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');\n\n // Remove regular state class\n parent[_remove](regular || option(input, callback) || '');\n }\n // Remove checked, disabled or indeterminate state\n function off(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== false) {\n\n // Toggle state\n if (indeterminate || !keep || keep == 'force') {\n node[state] = false;\n }\n // Trigger callbacks\n callbacks(input, checked, callback, keep);\n }\n // Add proper cursor\n if (!node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');\n }\n // Remove state class\n parent[_remove](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');\n\n // Add regular state class\n parent[_add](regular || option(input, callback) || '');\n }\n // Remove all traces\n function tidy(input, callback) {\n if (input.data(_iCheck)) {\n\n // Remove everything except input\n input.parent().html(input.attr('style', input.data(_iCheck).s || ''));\n\n // Callback\n if (callback) {\n input[_callback](callback);\n }\n // Unbind events\n input.off('.i').unwrap();\n $(_label + '[for=\"' + input[0].id + '\"]').add(input.closest(_label)).off('.i');\n }\n }\n // Get some option\n function option(input, state, regular) {\n if (input.data(_iCheck)) {\n return input.data(_iCheck).o[state + (regular ? '' : 'Class')];\n }\n }\n // Capitalize some string\n function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n // Executable handlers\n function callbacks(input, checked, callback, keep) {\n if (!keep) {\n if (checked) {\n input[_callback]('ifToggled');\n }\n input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));\n }\n }\n})(window.jQuery || window.Zepto);\n","\n/*\nLightbox for Bootstrap 3 by @ashleydw\nhttps://github.com/ashleydw/lightbox\n\nLicense: https://github.com/ashleydw/lightbox/blob/master/LICENSE\n */\n\n(function() {\n \"use strict\";\n var $, EkkoLightbox;\n\n $ = jQuery;\n\n EkkoLightbox = function(element, options) {\n var content, footer, header;\n this.options = $.extend({\n title: null,\n footer: null,\n remote: null\n }, $.fn.ekkoLightbox.defaults, options || {});\n this.$element = $(element);\n content = '';\n this.modal_id = this.options.modal_id ? this.options.modal_id : 'ekkoLightbox-' + Math.floor((Math.random() * 1000) + 1);\n header = '

            ' + (this.options.title || \" \") + '

            ';\n footer = '
            ' + this.options.footer + '
            ';\n $(document.body).append('
            ' + header + '
            ' + footer + '
            ');\n this.modal = $('#' + this.modal_id);\n this.modal_dialog = this.modal.find('.modal-dialog').first();\n this.modal_content = this.modal.find('.modal-content').first();\n this.modal_body = this.modal.find('.modal-body').first();\n this.modal_header = this.modal.find('.modal-header').first();\n this.modal_footer = this.modal.find('.modal-footer').first();\n this.lightbox_container = this.modal_body.find('.ekko-lightbox-container').first();\n this.lightbox_body = this.lightbox_container.find('> div:first-child').first();\n this.showLoading();\n this.modal_arrows = null;\n this.border = {\n top: parseFloat(this.modal_dialog.css('border-top-width')) + parseFloat(this.modal_content.css('border-top-width')) + parseFloat(this.modal_body.css('border-top-width')),\n right: parseFloat(this.modal_dialog.css('border-right-width')) + parseFloat(this.modal_content.css('border-right-width')) + parseFloat(this.modal_body.css('border-right-width')),\n bottom: parseFloat(this.modal_dialog.css('border-bottom-width')) + parseFloat(this.modal_content.css('border-bottom-width')) + parseFloat(this.modal_body.css('border-bottom-width')),\n left: parseFloat(this.modal_dialog.css('border-left-width')) + parseFloat(this.modal_content.css('border-left-width')) + parseFloat(this.modal_body.css('border-left-width'))\n };\n this.padding = {\n top: parseFloat(this.modal_dialog.css('padding-top')) + parseFloat(this.modal_content.css('padding-top')) + parseFloat(this.modal_body.css('padding-top')),\n right: parseFloat(this.modal_dialog.css('padding-right')) + parseFloat(this.modal_content.css('padding-right')) + parseFloat(this.modal_body.css('padding-right')),\n bottom: parseFloat(this.modal_dialog.css('padding-bottom')) + parseFloat(this.modal_content.css('padding-bottom')) + parseFloat(this.modal_body.css('padding-bottom')),\n left: parseFloat(this.modal_dialog.css('padding-left')) + parseFloat(this.modal_content.css('padding-left')) + parseFloat(this.modal_body.css('padding-left'))\n };\n this.modal.on('show.bs.modal', this.options.onShow.bind(this)).on('shown.bs.modal', (function(_this) {\n return function() {\n _this.modal_shown();\n return _this.options.onShown.call(_this);\n };\n })(this)).on('hide.bs.modal', this.options.onHide.bind(this)).on('hidden.bs.modal', (function(_this) {\n return function() {\n if (_this.gallery) {\n $(document).off('keydown.ekkoLightbox');\n }\n _this.modal.remove();\n return _this.options.onHidden.call(_this);\n };\n })(this)).modal('show', options);\n return this.modal;\n };\n\n EkkoLightbox.prototype = {\n modal_shown: function() {\n var video_id;\n if (!this.options.remote) {\n return this.error('No remote target given');\n } else {\n this.gallery = this.$element.data('gallery');\n if (this.gallery) {\n if (this.options.gallery_parent_selector === 'document.body' || this.options.gallery_parent_selector === '') {\n this.gallery_items = $(document.body).find('*[data-gallery=\"' + this.gallery + '\"]');\n } else {\n this.gallery_items = this.$element.parents(this.options.gallery_parent_selector).first().find('*[data-gallery=\"' + this.gallery + '\"]');\n }\n this.gallery_index = this.gallery_items.index(this.$element);\n $(document).on('keydown.ekkoLightbox', this.navigate.bind(this));\n if (this.options.directional_arrows && this.gallery_items.length > 1) {\n this.lightbox_container.append('
            ');\n this.modal_arrows = this.lightbox_container.find('div.ekko-lightbox-nav-overlay').first();\n this.lightbox_container.find('a' + this.strip_spaces(this.options.left_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_left();\n };\n })(this));\n this.lightbox_container.find('a' + this.strip_spaces(this.options.right_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_right();\n };\n })(this));\n }\n }\n if (this.options.type) {\n if (this.options.type === 'image') {\n return this.preloadImage(this.options.remote, true);\n } else if (this.options.type === 'youtube' && (video_id = this.getYoutubeId(this.options.remote))) {\n return this.showYoutubeVideo(video_id);\n } else if (this.options.type === 'vimeo') {\n return this.showVimeoVideo(this.options.remote);\n } else if (this.options.type === 'instagram') {\n return this.showInstagramVideo(this.options.remote);\n } else if (this.options.type === 'url') {\n return this.loadRemoteContent(this.options.remote);\n } else if (this.options.type === 'video') {\n return this.showVideoIframe(this.options.remote);\n } else {\n return this.error(\"Could not detect remote target type. Force the type using data-type=\\\"image|youtube|vimeo|instagram|url|video\\\"\");\n }\n } else {\n return this.detectRemoteType(this.options.remote);\n }\n }\n },\n strip_stops: function(str) {\n return str.replace(/\\./g, '');\n },\n strip_spaces: function(str) {\n return str.replace(/\\s/g, '');\n },\n isImage: function(str) {\n return str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n },\n isSwf: function(str) {\n return str.match(/\\.(swf)((\\?|#).*)?$/i);\n },\n getYoutubeId: function(str) {\n var match;\n match = str.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/);\n if (match && match[2].length === 11) {\n return match[2];\n } else {\n return false;\n }\n },\n getVimeoId: function(str) {\n if (str.indexOf('vimeo') > 0) {\n return str;\n } else {\n return false;\n }\n },\n getInstagramId: function(str) {\n if (str.indexOf('instagram') > 0) {\n return str;\n } else {\n return false;\n }\n },\n navigate: function(event) {\n event = event || window.event;\n if (event.keyCode === 39 || event.keyCode === 37) {\n if (event.keyCode === 39) {\n return this.navigate_right();\n } else if (event.keyCode === 37) {\n return this.navigate_left();\n }\n }\n },\n navigateTo: function(index) {\n var next, src;\n if (index < 0 || index > this.gallery_items.length - 1) {\n return this;\n }\n this.showLoading();\n this.gallery_index = index;\n this.$element = $(this.gallery_items.get(this.gallery_index));\n this.updateTitleAndFooter();\n src = this.$element.attr('data-remote') || this.$element.attr('href');\n this.detectRemoteType(src, this.$element.attr('data-type') || false);\n if (this.gallery_index + 1 < this.gallery_items.length) {\n next = $(this.gallery_items.get(this.gallery_index + 1), false);\n src = next.attr('data-remote') || next.attr('href');\n if (next.attr('data-type') === 'image' || this.isImage(src)) {\n return this.preloadImage(src, false);\n }\n }\n },\n navigate_left: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === 0) {\n this.gallery_index = this.gallery_items.length - 1;\n } else {\n this.gallery_index--;\n }\n this.options.onNavigate.call(this, 'left', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n navigate_right: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === this.gallery_items.length - 1) {\n this.gallery_index = 0;\n } else {\n this.gallery_index++;\n }\n this.options.onNavigate.call(this, 'right', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n detectRemoteType: function(src, type) {\n var video_id;\n type = type || false;\n if (type === 'image' || this.isImage(src)) {\n this.options.type = 'image';\n return this.preloadImage(src, true);\n } else if (type === 'youtube' || (video_id = this.getYoutubeId(src))) {\n this.options.type = 'youtube';\n return this.showYoutubeVideo(video_id);\n } else if (type === 'vimeo' || (video_id = this.getVimeoId(src))) {\n this.options.type = 'vimeo';\n return this.showVimeoVideo(video_id);\n } else if (type === 'instagram' || (video_id = this.getInstagramId(src))) {\n this.options.type = 'instagram';\n return this.showInstagramVideo(video_id);\n } else if (type === 'video') {\n this.options.type = 'video';\n return this.showVideoIframe(video_id);\n } else {\n this.options.type = 'url';\n return this.loadRemoteContent(src);\n }\n },\n updateTitleAndFooter: function() {\n var caption, footer, header, title;\n header = this.modal_content.find('.modal-header');\n footer = this.modal_content.find('.modal-footer');\n title = this.$element.data('title') || \"\";\n caption = this.$element.data('footer') || \"\";\n if (title || this.options.always_show_close) {\n header.css('display', '').find('.modal-title').html(title || \" \");\n } else {\n header.css('display', 'none');\n }\n if (caption) {\n footer.css('display', '').html(caption);\n } else {\n footer.css('display', 'none');\n }\n return this;\n },\n showLoading: function() {\n this.lightbox_body.html('
            ' + this.options.loadingMessage + '
            ');\n return this;\n },\n showYoutubeVideo: function(id) {\n var height, rel, width;\n if ((this.$element.attr('data-norelated') != null) || this.options.no_related) {\n rel = \"&rel=0\";\n } else {\n rel = \"\";\n }\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (560 / 315);\n return this.showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + rel, width, height);\n },\n showVimeoVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (500 / 281);\n return this.showVideoIframe(id + '?autoplay=1', width, height);\n },\n showInstagramVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 612);\n this.resize(width);\n height = width + 80;\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n return this.modal_arrows.css('display', 'none');\n }\n },\n showVideoIframe: function(url, width, height) {\n height = height || width;\n this.resize(width);\n this.lightbox_body.html('
            ');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n loadRemoteContent: function(url) {\n var disableExternalCheck, width;\n width = this.$element.data('width') || 560;\n this.resize(width);\n disableExternalCheck = this.$element.data('disableExternalCheck') || false;\n if (!disableExternalCheck && !this.isExternal(url)) {\n this.lightbox_body.load(url, $.proxy((function(_this) {\n return function() {\n return _this.$element.trigger('loaded.bs.modal');\n };\n })(this)));\n } else {\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n }\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n isExternal: function(url) {\n var match;\n match = url.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\n if (typeof match[1] === \"string\" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) {\n return true;\n }\n if (typeof match[2] === \"string\" && match[2].length > 0 && match[2].replace(new RegExp(\":(\" + {\n \"http:\": 80,\n \"https:\": 443\n }[location.protocol] + \")?$\"), \"\") !== location.host) {\n return true;\n }\n return false;\n },\n error: function(message) {\n this.lightbox_body.html(message);\n return this;\n },\n preloadImage: function(src, onLoadShowImage) {\n var img;\n img = new Image();\n if ((onLoadShowImage == null) || onLoadShowImage === true) {\n img.onload = (function(_this) {\n return function() {\n var image;\n image = $('');\n image.attr('src', img.src);\n image.addClass('img-responsive');\n _this.lightbox_body.html(image);\n if (_this.modal_arrows) {\n _this.modal_arrows.css('display', 'block');\n }\n return image.load(function() {\n if (_this.options.scale_height) {\n _this.scaleHeight(img.height, img.width);\n } else {\n _this.resize(img.width);\n }\n return _this.options.onContentLoaded.call(_this);\n });\n };\n })(this);\n img.onerror = (function(_this) {\n return function() {\n return _this.error('Failed to load image: ' + src);\n };\n })(this);\n }\n img.src = src;\n return img;\n },\n scaleHeight: function(height, width) {\n var border_padding, factor, footer_height, header_height, margins, max_height;\n header_height = this.modal_header.outerHeight(true) || 0;\n footer_height = this.modal_footer.outerHeight(true) || 0;\n if (!this.modal_footer.is(':visible')) {\n footer_height = 0;\n }\n if (!this.modal_header.is(':visible')) {\n header_height = 0;\n }\n border_padding = this.border.top + this.border.bottom + this.padding.top + this.padding.bottom;\n margins = parseFloat(this.modal_dialog.css('margin-top')) + parseFloat(this.modal_dialog.css('margin-bottom'));\n max_height = $(window).height() - border_padding - margins - header_height - footer_height;\n factor = Math.min(max_height / height, 1);\n this.modal_dialog.css('height', 'auto').css('max-height', max_height);\n return this.resize(factor * width);\n },\n resize: function(width) {\n var width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n this.modal_dialog.css('width', 'auto').css('max-width', width_total);\n this.lightbox_container.find('a').css('line-height', function() {\n return $(this).parent().height() + 'px';\n });\n return this;\n },\n checkDimensions: function(width) {\n var body_width, width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n body_width = document.body.clientWidth;\n if (width_total > body_width) {\n width = this.modal_body.width();\n }\n return width;\n },\n close: function() {\n return this.modal.modal('hide');\n },\n addTrailingSlash: function(url) {\n if (url.substr(-1) !== '/') {\n url += '/';\n }\n return url;\n }\n };\n\n $.fn.ekkoLightbox = function(options) {\n return this.each(function() {\n var $this;\n $this = $(this);\n options = $.extend({\n remote: $this.attr('data-remote') || $this.attr('href'),\n gallery_parent_selector: $this.attr('data-parent'),\n type: $this.attr('data-type')\n }, options, $this.data());\n new EkkoLightbox(this, options);\n return this;\n });\n };\n\n $.fn.ekkoLightbox.defaults = {\n gallery_parent_selector: 'document.body',\n left_arrow_class: '.glyphicon .glyphicon-chevron-left',\n right_arrow_class: '.glyphicon .glyphicon-chevron-right',\n directional_arrows: true,\n type: null,\n always_show_close: true,\n no_related: false,\n scale_height: true,\n loadingMessage: 'Loading...',\n onShow: function() {},\n onShown: function() {},\n onHide: function() {},\n onHidden: function() {},\n onNavigate: function() {},\n onContentLoaded: function() {}\n };\n\n}).call(this);\n","/**\n * Module containing core application logic.\n * @param {jQuery} $ Insulated jQuery object\n * @param {JSON} settings Insulated `window.snipeit.settings` object.\n * @return {IIFE} Immediately invoked. Returns self.\n */\n\n\nvar pieOptions = {\n //Boolean - Whether we should show a stroke on each segment\n segmentShowStroke: true,\n //String - The colour of each segment stroke\n segmentStrokeColor: \"#fff\",\n //Number - The width of each segment stroke\n segmentStrokeWidth: 1,\n //Number - The percentage of the chart that we cut out of the middle\n percentageInnerCutout: 50, // This is 0 for Pie charts\n //Number - Amount of animation steps\n animationSteps: 100,\n //String - Animation easing effect\n animationEasing: \"easeOutBounce\",\n //Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n //Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false,\n //Boolean - whether to make the chart responsive to window resizing\n responsive: true,\n // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container\n maintainAspectRatio: false,\n\n //String - A legend template\n legendTemplate: \"
              -legend\\\"><% for (var i=0; i
            • \" +\n \"\" +\n \"<%if(segments[i].label){%><%=segments[i].label%><%}%> foo
            • <%}%>
            \",\n //String - A tooltip template\n tooltipTemplate: \"<%=value %> <%=label%> \"\n};\n//console.dir(pieOptions);\n//Create pie or douhnut chart\n// You can switch between pie and douhnut using the method below.\n//pieChart.Doughnut(PieData, pieOptions);\n//-----------------\n//- END PIE CHART -\n//-----------------\n\n\n\n(function($, settings) {\n var Components = {};\n Components.modals = {};\n\n // confirm delete modal\n Components.modals.confirmDelete = function() {\n var $el = $('table');\n\n var events = {\n 'click': function(evnt) {\n var $context = $(this);\n var $dataConfirmModal = $('#dataConfirmModal');\n var href = $context.attr('href');\n var message = $context.attr('data-content');\n var title = $context.attr('data-title');\n\n $('#myModalLabel').text(title);\n $dataConfirmModal.find('.modal-body').text(message);\n $('#deleteForm').attr('action', href);\n $dataConfirmModal.modal({\n show: true\n });\n return false;\n }\n };\n\n var render = function() {\n $el.on('click', '.delete-asset', events['click']);\n };\n\n return {\n render: render\n };\n };\n\n\n /**\n * Application start point\n * Component definition stays out of load event, execution only happens.\n */\n $(function() {\n new Components.modals.confirmDelete().render();\n });\n}(jQuery, window.snipeit.settings));\n\n\n// Vue.component(\n// 'passport-clients',\n// require('./components/passport/Clients.vue')\n// );\n//\n// Vue.component(\n// 'passport-authorized-clients',\n// require('./components/passport/AuthorizedClients.vue')\n// );\n//\n// Vue.component(\n// 'passport-personal-access-tokens',\n// require('./components/passport/PersonalAccessTokens.vue')\n// );\n","/*! AdminLTE app.js\n * ================\n * Main JS application file for AdminLTE v2. This file\n * should be included in all pages. It controls some layout\n * options and implements exclusive AdminLTE plugins.\n *\n * @Author Almsaeed Studio\n * @Support \n * @Email \n * @version 2.3.0\n * @license MIT \n */\n\n//Make sure jQuery has been loaded before app.js\nif (typeof jQuery === \"undefined\") {\n throw new Error(\"AdminLTE requires jQuery\");\n}\n\n\n/* AdminLTE\n *\n * @type Object\n * @description $.AdminLTE is the main object for the template's app.\n * It's used for implementing functions and options related\n * to the template. Keeping everything wrapped in an object\n * prevents conflict with other plugins and is a better\n * way to organize our code.\n */\n$.AdminLTE = {};\n\n/* --------------------\n * - AdminLTE Options -\n * --------------------\n * Modify these options to suit your implementation\n */\n$.AdminLTE.options = {\n //Add slimscroll to navbar menus\n //This requires you to load the slimscroll plugin\n //in every page before app.js\n navbarMenuSlimscroll: true,\n navbarMenuSlimscrollWidth: \"3px\", //The width of the scroll bar\n navbarMenuHeight: \"200px\", //The height of the inner menu\n //General animation speed for JS animated elements such as box collapse/expand and\n //sidebar treeview slide up/down. This options accepts an integer as milliseconds,\n //'fast', 'normal', or 'slow'\n animationSpeed: 500,\n //Sidebar push menu toggle button selector\n sidebarToggleSelector: \"[data-toggle='offcanvas']\",\n //Activate sidebar push menu\n sidebarPushMenu: true,\n //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)\n sidebarSlimScroll: true,\n //Enable sidebar expand on hover effect for sidebar mini\n //This option is forced to true if both the fixed layout and sidebar mini\n //are used together\n sidebarExpandOnHover: false,\n //BoxRefresh Plugin\n enableBoxRefresh: true,\n //Bootstrap.js tooltip\n enableBSToppltip: true,\n BSTooltipSelector: \"[data-toggle='tooltip']\",\n //Enable Fast Click. Fastclick.js creates a more\n //native touch experience with touch devices. If you\n //choose to enable the plugin, make sure you load the script\n //before AdminLTE's app.js\n enableFastclick: true,\n //Control Sidebar Options\n enableControlSidebar: true,\n controlSidebarOptions: {\n //Which button should trigger the open/close event\n toggleBtnSelector: \"[data-toggle='control-sidebar']\",\n //The sidebar selector\n selector: \".control-sidebar\",\n //Enable slide over content\n slide: true\n },\n //Box Widget Plugin. Enable this plugin\n //to allow boxes to be collapsed and/or removed\n enableBoxWidget: true,\n //Box Widget plugin options\n boxWidgetOptions: {\n boxWidgetIcons: {\n //Collapse icon\n collapse: 'fa-minus',\n //Open icon\n open: 'fa-plus',\n //Remove icon\n remove: 'fa-times'\n },\n boxWidgetSelectors: {\n //Remove button selector\n remove: '[data-widget=\"remove\"]',\n //Collapse button selector\n collapse: '[data-widget=\"collapse\"]'\n }\n },\n //Direct Chat plugin options\n directChat: {\n //Enable direct chat by default\n enable: true,\n //The button to open and close the chat contacts pane\n contactToggleSelector: '[data-widget=\"chat-pane-toggle\"]'\n },\n //Define the set of colors to use globally around the website\n colors: {\n lightBlue: \"#3c8dbc\",\n red: \"#f56954\",\n green: \"#00a65a\",\n aqua: \"#00c0ef\",\n yellow: \"#f39c12\",\n blue: \"#0073b7\",\n navy: \"#001F3F\",\n teal: \"#39CCCC\",\n olive: \"#3D9970\",\n lime: \"#01FF70\",\n orange: \"#FF851B\",\n fuchsia: \"#F012BE\",\n purple: \"#8E24AA\",\n maroon: \"#D81B60\",\n black: \"#222222\",\n gray: \"#d2d6de\"\n },\n //The standard screen sizes that bootstrap uses.\n //If you change these in the variables.less file, change\n //them here too.\n screenSizes: {\n xs: 480,\n sm: 768,\n md: 992,\n lg: 1200\n }\n};\n\n/* ------------------\n * - Implementation -\n * ------------------\n * The next block of code implements AdminLTE's\n * functions and plugins as specified by the\n * options above.\n */\n$(function () {\n \"use strict\";\n\n //Fix for IE page transitions\n $(\"body\").removeClass(\"hold-transition\");\n\n //Extend options if external options exist\n if (typeof AdminLTEOptions !== \"undefined\") {\n $.extend(true,\n $.AdminLTE.options,\n AdminLTEOptions);\n }\n\n //Easy access to options\n var o = $.AdminLTE.options;\n\n //Set up the object\n _init();\n\n //Activate the layout maker\n $.AdminLTE.layout.activate();\n\n //Enable sidebar tree view controls\n $.AdminLTE.tree('.sidebar');\n\n //Enable control sidebar\n if (o.enableControlSidebar) {\n $.AdminLTE.controlSidebar.activate();\n }\n\n //Add slimscroll to navbar dropdown\n if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {\n $(\".navbar .menu\").slimscroll({\n height: o.navbarMenuHeight,\n alwaysVisible: false,\n size: o.navbarMenuSlimscrollWidth\n }).css(\"width\", \"100%\");\n }\n\n //Activate sidebar push menu\n if (o.sidebarPushMenu) {\n $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);\n }\n\n //Activate Bootstrap tooltip\n if (o.enableBSToppltip) {\n $('body').tooltip({\n selector: o.BSTooltipSelector\n });\n }\n\n //Activate box widget\n if (o.enableBoxWidget) {\n $.AdminLTE.boxWidget.activate();\n }\n\n //Activate fast click\n if (o.enableFastclick && typeof FastClick != 'undefined') {\n FastClick.attach(document.body);\n }\n\n //Activate direct chat widget\n if (o.directChat.enable) {\n $(document).on('click', o.directChat.contactToggleSelector, function () {\n var box = $(this).parents('.direct-chat').first();\n box.toggleClass('direct-chat-contacts-open');\n });\n }\n\n /*\n * INITIALIZE BUTTON TOGGLE\n * ------------------------\n */\n $('.btn-group[data-toggle=\"btn-toggle\"]').each(function () {\n var group = $(this);\n $(this).find(\".btn\").on('click', function (e) {\n group.find(\".btn.active\").removeClass(\"active\");\n $(this).addClass(\"active\");\n e.preventDefault();\n });\n\n });\n});\n\n/* ----------------------------------\n * - Initialize the AdminLTE Object -\n * ----------------------------------\n * All AdminLTE functions are implemented below.\n */\nfunction _init() {\n 'use strict';\n /* Layout\n * ======\n * Fixes the layout height in case min-height fails.\n *\n * @type Object\n * @usage $.AdminLTE.layout.activate()\n * $.AdminLTE.layout.fix()\n * $.AdminLTE.layout.fixSidebar()\n */\n $.AdminLTE.layout = {\n activate: function () {\n var _this = this;\n _this.fix();\n _this.fixSidebar();\n $(window, \".wrapper\").resize(function () {\n _this.fix();\n _this.fixSidebar();\n });\n },\n fix: function () {\n //Get window height and the wrapper height\n var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight();\n var window_height = $(window).height();\n var sidebar_height = $(\".sidebar\").height();\n //Set the min-height of the content and sidebar based on the\n //the height of the document.\n if ($(\"body\").hasClass(\"fixed\")) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - $('.main-footer').outerHeight());\n } else {\n var postSetWidth;\n if (window_height >= sidebar_height) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - neg);\n postSetWidth = window_height - neg;\n } else {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar_height);\n postSetWidth = sidebar_height;\n }\n\n //Fix for the control sidebar height\n var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);\n if (typeof controlSidebar !== \"undefined\") {\n if (controlSidebar.height() > postSetWidth)\n $(\".content-wrapper, .right-side\").css('min-height', controlSidebar.height());\n }\n\n }\n },\n fixSidebar: function () {\n //Make sure the body tag has the .fixed class\n if (!$(\"body\").hasClass(\"fixed\")) {\n if (typeof $.fn.slimScroll != 'undefined') {\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n }\n return;\n } else if (typeof $.fn.slimScroll == 'undefined' && window.console) {\n window.console.error(\"Error: the fixed layout requires the slimscroll plugin!\");\n }\n //Enable slimscroll for fixed layout\n if ($.AdminLTE.options.sidebarSlimScroll) {\n if (typeof $.fn.slimScroll != 'undefined') {\n //Destroy if it exists\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n //Add slimscroll\n $(\".sidebar\").slimscroll({\n height: ($(window).height() - $(\".main-header\").height()) + \"px\",\n color: \"rgba(0,0,0,0.2)\",\n size: \"3px\"\n });\n }\n }\n }\n };\n\n /* PushMenu()\n * ==========\n * Adds the push menu functionality to the sidebar.\n *\n * @type Function\n * @usage: $.AdminLTE.pushMenu(\"[data-toggle='offcanvas']\")\n */\n $.AdminLTE.pushMenu = {\n activate: function (toggleBtn) {\n //Get the screen sizes\n var screenSizes = $.AdminLTE.options.screenSizes;\n\n //Enable sidebar toggle\n $(toggleBtn).on('click', function (e) {\n e.preventDefault();\n\n //Enable sidebar push menu\n if ($(window).width() > (screenSizes.sm - 1)) {\n if ($(\"body\").hasClass('sidebar-collapse')) {\n $(\"body\").removeClass('sidebar-collapse').trigger('expanded.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-collapse').trigger('collapsed.pushMenu');\n }\n }\n //Handle sidebar push menu for small screens\n else {\n if ($(\"body\").hasClass('sidebar-open')) {\n $(\"body\").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-open').trigger('expanded.pushMenu');\n }\n }\n });\n\n $(\".content-wrapper\").click(function () {\n //Enable hide menu when clicking on the content-wrapper on small screens\n if ($(window).width() <= (screenSizes.sm - 1) && $(\"body\").hasClass(\"sidebar-open\")) {\n $(\"body\").removeClass('sidebar-open');\n }\n });\n\n //Enable expand on hover for sidebar mini\n if ($.AdminLTE.options.sidebarExpandOnHover\n || ($('body').hasClass('fixed')\n && $('body').hasClass('sidebar-mini'))) {\n this.expandOnHover();\n }\n },\n expandOnHover: function () {\n var _this = this;\n var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;\n //Expand sidebar on hover\n $('.main-sidebar').hover(function () {\n if ($('body').hasClass('sidebar-mini')\n && $(\"body\").hasClass('sidebar-collapse')\n && $(window).width() > screenWidth) {\n _this.expand();\n }\n }, function () {\n if ($('body').hasClass('sidebar-mini')\n && $('body').hasClass('sidebar-expanded-on-hover')\n && $(window).width() > screenWidth) {\n _this.collapse();\n }\n });\n },\n expand: function () {\n $(\"body\").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');\n },\n collapse: function () {\n if ($('body').hasClass('sidebar-expanded-on-hover')) {\n $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');\n }\n }\n };\n\n /* Tree()\n * ======\n * Converts the sidebar into a multilevel\n * tree view menu.\n *\n * @type Function\n * @Usage: $.AdminLTE.tree('.sidebar')\n */\n $.AdminLTE.tree = function (menu) {\n var _this = this;\n var animationSpeed = $.AdminLTE.options.animationSpeed;\n $(document).on('click', menu + ' li a', function (e) {\n //Get the clicked link and the next element\n var $this = $(this);\n var checkElement = $this.next();\n\n //Check if the next element is a menu and is visible\n if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible'))) {\n //Close the menu\n checkElement.slideUp(animationSpeed, function () {\n checkElement.removeClass('menu-open');\n //Fix the layout in case the sidebar stretches over the height of the window\n //_this.layout.fix();\n });\n checkElement.parent(\"li\").removeClass(\"active\");\n }\n //If the menu is not visible\n else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {\n //Get the parent menu\n var parent = $this.parents('ul').first();\n //Close all open menus within the parent\n var ul = parent.find('ul:visible').slideUp(animationSpeed);\n //Remove the menu-open class from the parent\n ul.removeClass('menu-open');\n //Get the parent li\n var parent_li = $this.parent(\"li\");\n\n //Open the target menu and add the menu-open class\n checkElement.slideDown(animationSpeed, function () {\n //Add the class active to the parent li\n checkElement.addClass('menu-open');\n parent.find('li.active').removeClass('active');\n parent_li.addClass('active');\n //Fix the layout in case the sidebar stretches over the height of the window\n _this.layout.fix();\n });\n }\n //if this isn't a link, prevent the page from being redirected\n if (checkElement.is('.treeview-menu')) {\n e.preventDefault();\n }\n });\n };\n\n /* ControlSidebar\n * ==============\n * Adds functionality to the right sidebar\n *\n * @type Object\n * @usage $.AdminLTE.controlSidebar.activate(options)\n */\n $.AdminLTE.controlSidebar = {\n //instantiate the object\n activate: function () {\n //Get the object\n var _this = this;\n //Update options\n var o = $.AdminLTE.options.controlSidebarOptions;\n //Get the sidebar\n var sidebar = $(o.selector);\n //The toggle button\n var btn = $(o.toggleBtnSelector);\n\n //Listen to the click event\n btn.on('click', function (e) {\n e.preventDefault();\n //If the sidebar is not open\n if (!sidebar.hasClass('control-sidebar-open')\n && !$('body').hasClass('control-sidebar-open')) {\n //Open the sidebar\n _this.open(sidebar, o.slide);\n } else {\n _this.close(sidebar, o.slide);\n }\n });\n\n //If the body has a boxed layout, fix the sidebar bg position\n var bg = $(\".control-sidebar-bg\");\n _this._fix(bg);\n\n //If the body has a fixed layout, make the control sidebar fixed\n if ($('body').hasClass('fixed')) {\n _this._fixForFixed(sidebar);\n } else {\n //If the content height is less than the sidebar's height, force max height\n if ($('.content-wrapper, .right-side').height() < sidebar.height()) {\n _this._fixForContent(sidebar);\n }\n }\n },\n //Open the control sidebar\n open: function (sidebar, slide) {\n //Slide over content\n if (slide) {\n sidebar.addClass('control-sidebar-open');\n } else {\n //Push the content by adding the open class to the body instead\n //of the sidebar itself\n $('body').addClass('control-sidebar-open');\n }\n },\n //Close the control sidebar\n close: function (sidebar, slide) {\n if (slide) {\n sidebar.removeClass('control-sidebar-open');\n } else {\n $('body').removeClass('control-sidebar-open');\n }\n },\n _fix: function (sidebar) {\n var _this = this;\n if ($(\"body\").hasClass('layout-boxed')) {\n sidebar.css('position', 'absolute');\n sidebar.height($(\".wrapper\").height());\n $(window).resize(function () {\n _this._fix(sidebar);\n });\n } else {\n sidebar.css({\n 'position': 'fixed',\n 'height': 'auto'\n });\n }\n },\n _fixForFixed: function (sidebar) {\n sidebar.css({\n 'position': 'fixed',\n 'max-height': '100%',\n 'overflow': 'auto',\n 'padding-bottom': '50px'\n });\n },\n _fixForContent: function (sidebar) {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar.height());\n }\n };\n\n /* BoxWidget\n * =========\n * BoxWidget is a plugin to handle collapsing and\n * removing boxes from the screen.\n *\n * @type Object\n * @usage $.AdminLTE.boxWidget.activate()\n * Set all your options in the main $.AdminLTE.options object\n */\n $.AdminLTE.boxWidget = {\n selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,\n icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,\n animationSpeed: $.AdminLTE.options.animationSpeed,\n activate: function (_box) {\n var _this = this;\n if (!_box) {\n _box = document; // activate all boxes per default\n }\n //Listen for collapse event triggers\n $(_box).on('click', _this.selectors.collapse, function (e) {\n e.preventDefault();\n _this.collapse($(this));\n });\n\n //Listen for remove event triggers\n $(_box).on('click', _this.selectors.remove, function (e) {\n e.preventDefault();\n _this.remove($(this));\n });\n },\n collapse: function (element) {\n var _this = this;\n //Find the box parent\n var box = element.parents(\".box\").first();\n //Find the body and the footer\n var box_content = box.find(\"> .box-body, > .box-footer, > form >.box-body, > form > .box-footer\");\n if (!box.hasClass(\"collapsed-box\")) {\n //Convert minus into plus\n element.children(\":first\")\n .removeClass(_this.icons.collapse)\n .addClass(_this.icons.open);\n //Hide the content\n box_content.slideUp(_this.animationSpeed, function () {\n box.addClass(\"collapsed-box\");\n });\n } else {\n //Convert plus into minus\n element.children(\":first\")\n .removeClass(_this.icons.open)\n .addClass(_this.icons.collapse);\n //Show the content\n box_content.slideDown(_this.animationSpeed, function () {\n box.removeClass(\"collapsed-box\");\n });\n }\n },\n remove: function (element) {\n //Find the box parent\n var box = element.parents(\".box\").first();\n box.slideUp(this.animationSpeed);\n }\n };\n}\n\n/* ------------------\n * - Custom Plugins -\n * ------------------\n * All custom plugins are defined below.\n */\n\n/*\n * BOX REFRESH BUTTON\n * ------------------\n * This is a custom plugin to use with the component BOX. It allows you to add\n * a refresh button to the box. It converts the box's state to a loading state.\n *\n * @type plugin\n * @usage $(\"#box-widget\").boxRefresh( options );\n */\n(function ($) {\n\n \"use strict\";\n\n $.fn.boxRefresh = function (options) {\n\n // Render options\n var settings = $.extend({\n //Refresh button selector\n trigger: \".refresh-btn\",\n //File source to be loaded (e.g: ajax/src.php)\n source: \"\",\n //Callbacks\n onLoadStart: function (box) {\n return box;\n }, //Right after the button has been clicked\n onLoadDone: function (box) {\n return box;\n } //When the source has been loaded\n\n }, options);\n\n //The overlay\n var overlay = $('
            ');\n\n return this.each(function () {\n //if a source is specified\n if (settings.source === \"\") {\n if (window.console) {\n window.console.log(\"Please specify a source first - boxRefresh()\");\n }\n return;\n }\n //the box\n var box = $(this);\n //the button\n var rBtn = box.find(settings.trigger).first();\n\n //On trigger click\n rBtn.on('click', function (e) {\n e.preventDefault();\n //Add loading overlay\n start(box);\n\n //Perform ajax call\n box.find(\".box-body\").load(settings.source, function () {\n done(box);\n });\n });\n });\n\n function start(box) {\n //Add overlay and loading img\n box.append(overlay);\n\n settings.onLoadStart.call(box);\n }\n\n function done(box) {\n //Remove overlay and loading img\n box.find(overlay).remove();\n\n settings.onLoadDone.call(box);\n }\n\n };\n\n})(jQuery);\n\n/*\n * EXPLICIT BOX ACTIVATION\n * -----------------------\n * This is a custom plugin to use with the component BOX. It allows you to activate\n * a box inserted in the DOM after the app.js was loaded.\n *\n * @type plugin\n * @usage $(\"#box-widget\").activateBox();\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.activateBox = function () {\n $.AdminLTE.boxWidget.activate(this);\n };\n\n})(jQuery);\n\n/*\n * TODO LIST CUSTOM PLUGIN\n * -----------------------\n * This plugin depends on iCheck plugin for checkbox and radio inputs\n *\n * @type plugin\n * @usage $(\"#todo-widget\").todolist( options );\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.todolist = function (options) {\n // Render options\n var settings = $.extend({\n //When the user checks the input\n onCheck: function (ele) {\n return ele;\n },\n //When the user unchecks the input\n onUncheck: function (ele) {\n return ele;\n }\n }, options);\n\n return this.each(function () {\n\n if (typeof $.fn.iCheck != 'undefined') {\n $('input', this).on('ifChecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onCheck.call(ele);\n });\n\n $('input', this).on('ifUnchecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onUncheck.call(ele);\n });\n } else {\n $('input', this).on('change', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n if ($('input', ele).is(\":checked\")) {\n settings.onCheck.call(ele);\n } else {\n settings.onUncheck.call(ele);\n }\n });\n }\n });\n };\n}(jQuery));\n\n//-------------\n//- PIE CHART -\n//-------------\n// Get context with jQuery - using jQuery's .get() method.\n"]} \ No newline at end of file +{"version":3,"sources":["jQuery-2.1.4.min.js","jquery-ui.js","jquery.ui.widget.js","jquery.iframe-transport.js","jquery.fileupload.js","bootstrap-js.js","fastclick.js","jquery.slimscroll.js","select2.full.min.js","bootstrap-colorpicker.js","bootstrap-table.js","bootstrap-datepicker.js","select2.js","icheck.js","ekko-lightbox.js","snipeit.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxugBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3zEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1eA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACr7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACloFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvoDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3xKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"all.js","sourcesContent":["/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */\n!function(a,b){\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m=\"2.1.4\",n=function(a,b){return new n.fn.init(a,b)},o=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,p=/^-ms-/,q=/-([\\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:\"\",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:\"jQuery\"+(m+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return\"object\"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,\"isPrototypeOf\")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?h[i.call(a)]||\"object\":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf(\"use strict\")?(b=l.createElement(\"script\"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,\"ms-\").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(o,\"\")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,\"string\"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return\"string\"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){h[\"[object \"+b+\"]\"]=b.toLowerCase()});function s(a){var b=\"length\"in a&&a.length,c=n.type(a);return\"function\"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=\"sizzle\"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",L=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",M=\"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",N=M.replace(\"w\",\"w#\"),O=\"\\\\[\"+L+\"*(\"+M+\")(?:\"+L+\"*([*^$|!~]?=)\"+L+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+N+\"))|)\"+L+\"*\\\\]\",P=\":(\"+M+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+O+\")*)|.*)\\\\)|)\",Q=new RegExp(L+\"+\",\"g\"),R=new RegExp(\"^\"+L+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+L+\"+$\",\"g\"),S=new RegExp(\"^\"+L+\"*,\"+L+\"*\"),T=new RegExp(\"^\"+L+\"*([>+~]|\"+L+\")\"+L+\"*\"),U=new RegExp(\"=\"+L+\"*([^\\\\]'\\\"]*?)\"+L+\"*\\\\]\",\"g\"),V=new RegExp(P),W=new RegExp(\"^\"+N+\"$\"),X={ID:new RegExp(\"^#(\"+M+\")\"),CLASS:new RegExp(\"^\\\\.(\"+M+\")\"),TAG:new RegExp(\"^(\"+M.replace(\"w\",\"w*\")+\")\"),ATTR:new RegExp(\"^\"+O),PSEUDO:new RegExp(\"^\"+P),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+L+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+L+\"*(?:([+-]|)\"+L+\"*(\\\\d+)|))\"+L+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+K+\")$\",\"i\"),needsContext:new RegExp(\"^\"+L+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+L+\"*((?:-\\\\d)?\\\\d*)\"+L+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,$=/^[^{]+\\{\\s*\\[native \\w/,_=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,aa=/[+~]/,ba=/'|\\\\/g,ca=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+L+\"?|(\"+L+\")|.)\",\"ig\"),da=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,\"string\"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&\"object\"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(\"id\"))?s=r.replace(ba,\"\\\\$&\"):b.setAttribute(\"id\",s),s=\"[id='\"+s+\"'] \",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(\",\")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(\"id\")}}}return i(a.replace(R,\"$1\"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+\" \")>d.cacheLength&&delete b[a.shift()],b[c+\" \"]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(\"div\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(\"|\"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&\"undefined\"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener(\"unload\",ea,!1):e.attachEvent&&e.attachEvent(\"onunload\",ea)),p=!f(g),c.attributes=ja(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(\"undefined\"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute(\"id\")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c=\"undefined\"!=typeof a.getAttributeNode&&a.getAttributeNode(\"id\");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return\"undefined\"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=\"\",a.querySelectorAll(\"[msallowcapture^='']\").length&&q.push(\"[*^$]=\"+L+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\"[selected]\").length||q.push(\"\\\\[\"+L+\"*(?:value|\"+K+\")\"),a.querySelectorAll(\"[id~=\"+u+\"-]\").length||q.push(\"~=\"),a.querySelectorAll(\":checked\").length||q.push(\":checked\"),a.querySelectorAll(\"a#\"+u+\"+*\").length||q.push(\".#.+[+~]\")}),ja(function(a){var b=g.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"name\",\"D\"),a.querySelectorAll(\"[name=d]\").length&&q.push(\"name\"+L+\"*[*^$|!~]?=\"),a.querySelectorAll(\":enabled\").length||q.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),q.push(\",.*:\")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,\"div\"),s.call(a,\"[s!='']:x\"),r.push(\"!=\",P)}),q=q.length&&new RegExp(q.join(\"|\")),r=r.length&&new RegExp(r.join(\"|\")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,\"='$1']\"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=\"\",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||\"\").replace(ca,da),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||\"\":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(\")\",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+\" \"];return b||(b=new RegExp(\"(^|\"+L+\")\"+a+\"(\"+L+\"|$)\"))&&y(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||\"undefined\"!=typeof a.getAttribute&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?\"!=\"===b:b?(e+=\"\",\"=\"===b?e===c:\"!=\"===b?e!==c:\"^=\"===b?c&&0===e.indexOf(c):\"*=\"===b?c&&e.indexOf(c)>-1:\"$=\"===b?c&&e.slice(-c.length)===c:\"~=\"===b?(\" \"+e.replace(Q,\" \")+\" \").indexOf(c)>-1:\"|=\"===b?e===c||e.slice(0,c.length+1)===c+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(\"unsupported pseudo: \"+a);return e[u]?e(b):e.length>1?(c=[a,a,\"\",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,\"$1\"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||\"\")||ga.error(\"unsupported lang: \"+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||\"text\"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&\"parentNode\"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||\"*\",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[\" \"],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:\" \"===a[i-2].type?\"*\":\"\"})).replace(R,\"$1\"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q=\"0\",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(\"*\",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+\" \"];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=\"function\"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&\"ID\"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split(\"\").sort(B).join(\"\")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement(\"div\"))}),ja(function(a){return a.innerHTML=\"\",\"#\"===a.firstChild.getAttribute(\"href\")})||ka(\"type|href|height|width\",function(a,b,c){return c?void 0:a.getAttribute(b,\"type\"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=\"\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||ka(\"value\",function(a,b,c){return c||\"input\"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(\"disabled\")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[\":\"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,w=/^.[^:#\\[\\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if(\"string\"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+\" \"+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,\"string\"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if(\"string\"==typeof a){if(c=\"<\"===a[0]&&\">\"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?\"undefined\"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||\"string\"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?\"string\"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,\"parentNode\")},parentsUntil:function(a,b,c){return n.dir(a,\"parentNode\",c)},next:function(a){return D(a,\"nextSibling\")},prev:function(a){return D(a,\"previousSibling\")},nextAll:function(a){return n.dir(a,\"nextSibling\")},prevAll:function(a){return n.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return n.dir(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return n.dir(a,\"previousSibling\",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a=\"string\"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);\"function\"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&\"string\"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[[\"resolve\",\"done\",n.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",n.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",n.Callbacks(\"memory\")]],c=\"pending\",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+\"With\"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+\"With\"](this===e?d:this,arguments),this},e[f[0]+\"With\"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(\"ready\"),n(l).off(\"ready\"))))}});function I(){l.removeEventListener(\"DOMContentLoaded\",I,!1),a.removeEventListener(\"load\",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),\"complete\"===l.readyState?setTimeout(n.ready):(l.addEventListener(\"DOMContentLoaded\",I,!1),a.addEventListener(\"load\",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(\"object\"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if(\"string\"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&\"string\"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(O,\"-$1\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){\nreturn M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,\"hasDataAttrs\"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf(\"data-\")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,\"hasDataAttrs\",!0)}return e}return\"object\"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf(\"-\")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||\"fx\")+\"queue\",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||\"fx\";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(\"once memory\").add(function(){L.remove(a,[b+\"queue\",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return\"string\"!=typeof a&&(b=a,a=\"fx\",c--),arguments.lengthx\",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U=\"undefined\";k.focusinBubbles=\"onfocusin\"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(\".\")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,\"events\"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,\"type\")?b.type:b,r=j.call(b,\"namespace\")?b.namespace.split(\".\"):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(\".\")>=0&&(r=q.split(\".\"),q=r.shift(),r.sort()),k=q.indexOf(\":\")<0&&\"on\"+q,b=b[n.expando]?b:new n.Event(q,\"object\"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join(\".\"),b.namespace_re=b.namespace?new RegExp(\"(^|\\\\.)\"+r.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,\"events\")||{})[b.type]&&L.get(g,\"handle\"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,\"events\")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||\"click\"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||\"click\"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\\/>/gi,ba=/<([\\w:]+)/,ca=/<|&#?\\w+;/,da=/<(?:script|style|link)/i,ea=/checked\\s*(?:[^=]|=\\s*.checked.)/i,fa=/^$|\\/(?:java|ecma)script/i,ga=/^true\\/(.*)/,ha=/^\\s*\\s*$/g,ia={option:[1,\"\"],thead:[1,\"\",\"
            \"],col:[2,\"\",\"
            \"],tr:[2,\"\",\"
            \"],td:[3,\"\",\"
            \"],_default:[0,\"\",\"\"]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,\"table\")&&n.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\")):a}function ka(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],\"globalEval\",!b||L.get(b[c],\"globalEval\"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&T.test(a.type)?b.checked=a.checked:(\"input\"===c||\"textarea\"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,\"script\"),g.length>0&&ma(g,!i&&oa(a,\"script\")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if(\"object\"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement(\"div\")),g=(ba.exec(e)||[\"\",\"\"])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,\"<$1>\")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=\"\"}else l.push(b.createTextNode(e));k.textContent=\"\",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),\"script\"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||\"\")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,\"script\")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(aa,\"<$1>\");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&\"string\"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,\"script\"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,\"script\"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||\"\")&&!L.access(h,\"globalEval\")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,\"\")))}return this}}),n.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],\"display\");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),\"none\"!==c&&c||(qa=(qa||n(\"'\n ).bind('load', function () {\n var fileInputClones,\n paramNames = $.isArray(options.paramName) ?\n options.paramName : [options.paramName];\n iframe\n .unbind('load')\n .bind('load', function () {\n var response;\n // Wrap in a try/catch block to catch exceptions thrown\n // when trying to access cross-domain iframe contents:\n try {\n response = iframe.contents();\n // Google Chrome and Firefox do not throw an\n // exception when calling iframe.contents() on\n // cross-domain requests, so we unify the response:\n if (!response.length || !response[0].firstChild) {\n throw new Error();\n }\n } catch (e) {\n response = undefined;\n }\n // The complete callback returns the\n // iframe content document as response object:\n completeCallback(\n 200,\n 'success',\n {'iframe': response}\n );\n // Fix for IE endless progress bar activity bug\n // (happens on form submits to iframe targets):\n $('')\n .appendTo(form);\n window.setTimeout(function () {\n // Removing the form in a setTimeout call\n // allows Chrome's developer tools to display\n // the response result\n form.remove();\n }, 0);\n });\n form\n .prop('target', iframe.prop('name'))\n .prop('action', options.url)\n .prop('method', options.type);\n if (options.formData) {\n $.each(options.formData, function (index, field) {\n $('')\n .prop('name', field.name)\n .val(field.value)\n .appendTo(form);\n });\n }\n if (options.fileInput && options.fileInput.length &&\n options.type === 'POST') {\n fileInputClones = options.fileInput.clone();\n // Insert a clone for each file input field:\n options.fileInput.after(function (index) {\n return fileInputClones[index];\n });\n if (options.paramName) {\n options.fileInput.each(function (index) {\n $(this).prop(\n 'name',\n paramNames[index] || options.paramName\n );\n });\n }\n // Appending the file input fields to the hidden form\n // removes them from their original location:\n form\n .append(options.fileInput)\n .prop('enctype', 'multipart/form-data')\n // enctype must be set as encoding for IE:\n .prop('encoding', 'multipart/form-data');\n // Remove the HTML5 form attribute from the input(s):\n options.fileInput.removeAttr('form');\n }\n form.submit();\n // Insert the file input fields at their original location\n // by replacing the clones with the originals:\n if (fileInputClones && fileInputClones.length) {\n options.fileInput.each(function (index, input) {\n var clone = $(fileInputClones[index]);\n // Restore the original name and form properties:\n $(input)\n .prop('name', clone.prop('name'))\n .attr('form', clone.attr('form'));\n clone.replaceWith(input);\n });\n }\n });\n form.append(iframe).appendTo(document.body);\n },\n abort: function () {\n if (iframe) {\n // javascript:false as iframe src aborts the request\n // and prevents warning popups on HTTPS in IE6.\n // concat is used to avoid the \"Script URL\" JSLint error:\n iframe\n .unbind('load')\n .prop('src', initialIframeSrc);\n }\n if (form) {\n form.remove();\n }\n }\n };\n }\n });\n\n // The iframe transport returns the iframe content document as response.\n // The following adds converters from iframe to text, json, html, xml\n // and script.\n // Please note that the Content-Type for JSON responses has to be text/plain\n // or text/html, if the browser doesn't include application/json in the\n // Accept header, else IE will show a download dialog.\n // The Content-Type for XML responses on the other hand has to be always\n // application/xml or text/xml, so IE properly parses the XML response.\n // See also\n // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\n $.ajaxSetup({\n converters: {\n 'iframe text': function (iframe) {\n return iframe && $(iframe[0].body).text();\n },\n 'iframe json': function (iframe) {\n return iframe && $.parseJSON($(iframe[0].body).text());\n },\n 'iframe html': function (iframe) {\n return iframe && $(iframe[0].body).html();\n },\n 'iframe xml': function (iframe) {\n var xmlDoc = iframe && iframe[0];\n return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\n $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\n $(xmlDoc.body).html());\n },\n 'iframe script': function (iframe) {\n return iframe && $.globalEval($(iframe[0].body).text());\n }\n }\n });\n\n}));\n","/*\n * jQuery File Upload Plugin 5.42.3\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document, location, Blob, FormData */\n\n(function (factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define([\n 'jquery',\n 'jquery.ui.widget'\n ], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS:\n factory(\n require('jquery'),\n require('./vendor/jquery.ui.widget')\n );\n } else {\n // Browser globals:\n factory(window.jQuery);\n }\n}(function ($) {\n 'use strict';\n\n // Detect file input support, based on\n // http://viljamis.com/blog/2012/file-upload-support-on-mobile/\n $.support.fileInput = !(new RegExp(\n // Handle devices which give false positives for the feature detection:\n '(Android (1\\\\.[0156]|2\\\\.[01]))' +\n '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\n '|(w(eb)?OSBrowser)|(webOS)' +\n '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))'\n ).test(window.navigator.userAgent) ||\n // Feature detection for all other devices:\n $('').prop('disabled'));\n\n // The FileReader API is not actually used, but works as feature detection,\n // as some Safari versions (5?) support XHR file uploads via the FormData API,\n // but not non-multipart XHR file uploads.\n // window.XMLHttpRequestUpload is not available on IE10, so we check for\n // window.ProgressEvent instead to detect XHR2 file upload capability:\n $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\n $.support.xhrFormDataFileUpload = !!window.FormData;\n\n // Detect support for Blob slicing (required for chunked uploads):\n $.support.blobSlice = window.Blob && (Blob.prototype.slice ||\n Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n\n // Helper function to create drag handlers for dragover/dragenter/dragleave:\n function getDragHandler(type) {\n var isDragOver = type === 'dragover';\n return function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var dataTransfer = e.dataTransfer;\n if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&\n this._trigger(\n type,\n $.Event(type, {delegatedEvent: e})\n ) !== false) {\n e.preventDefault();\n if (isDragOver) {\n dataTransfer.dropEffect = 'copy';\n }\n }\n };\n }\n\n // The fileupload widget listens for change events on file input fields defined\n // via fileInput setting and paste or drop events of the given dropZone.\n // In addition to the default jQuery Widget methods, the fileupload widget\n // exposes the \"add\" and \"send\" methods, to add or directly send files using\n // the fileupload API.\n // By default, files added via file input selection, paste, drag & drop or\n // \"add\" method are uploaded immediately, but it is possible to override\n // the \"add\" callback option to queue file uploads.\n $.widget('blueimp.fileupload', {\n\n options: {\n // The drop target element(s), by the default the complete document.\n // Set to null to disable drag & drop support:\n dropZone: $(document),\n // The paste target element(s), by the default undefined.\n // Set to a DOM node or jQuery object to enable file pasting:\n pasteZone: undefined,\n // The file input field(s), that are listened to for change events.\n // If undefined, it is set to the file input fields inside\n // of the widget element on plugin initialization.\n // Set to null to disable the change listener.\n fileInput: undefined,\n // By default, the file input field is replaced with a clone after\n // each input field change event. This is required for iframe transport\n // queues and allows change events to be fired for the same file\n // selection, but can be disabled by setting the following option to false:\n replaceFileInput: true,\n // The parameter name for the file form data (the request argument name).\n // If undefined or empty, the name property of the file input field is\n // used, or \"files[]\" if the file input name property is also empty,\n // can be a string or an array of strings:\n paramName: undefined,\n // By default, each file of a selection is uploaded using an individual\n // request for XHR type uploads. Set to false to upload file\n // selections in one request each:\n singleFileUploads: true,\n // To limit the number of files uploaded with one XHR request,\n // set the following option to an integer greater than 0:\n limitMultiFileUploads: undefined,\n // The following option limits the number of files uploaded with one\n // XHR request to keep the request size under or equal to the defined\n // limit in bytes:\n limitMultiFileUploadSize: undefined,\n // Multipart file uploads add a number of bytes to each uploaded file,\n // therefore the following option adds an overhead for each file used\n // in the limitMultiFileUploadSize configuration:\n limitMultiFileUploadSizeOverhead: 512,\n // Set the following option to true to issue all file upload requests\n // in a sequential order:\n sequentialUploads: false,\n // To limit the number of concurrent uploads,\n // set the following option to an integer greater than 0:\n limitConcurrentUploads: undefined,\n // Set the following option to true to force iframe transport uploads:\n forceIframeTransport: false,\n // Set the following option to the location of a redirect url on the\n // origin server, for cross-domain iframe transport uploads:\n redirect: undefined,\n // The parameter name for the redirect url, sent as part of the form\n // data and set to 'redirect' if this option is empty:\n redirectParamName: undefined,\n // Set the following option to the location of a postMessage window,\n // to enable postMessage transport uploads:\n postMessage: undefined,\n // By default, XHR file uploads are sent as multipart/form-data.\n // The iframe transport is always using multipart/form-data.\n // Set to false to enable non-multipart XHR uploads:\n multipart: true,\n // To upload large files in smaller chunks, set the following option\n // to a preferred maximum chunk size. If set to 0, null or undefined,\n // or the browser does not support the required Blob API, files will\n // be uploaded as a whole.\n maxChunkSize: undefined,\n // When a non-multipart upload or a chunked multipart upload has been\n // aborted, this option can be used to resume the upload by setting\n // it to the size of the already uploaded bytes. This option is most\n // useful when modifying the options object inside of the \"add\" or\n // \"send\" callbacks, as the options are cloned for each file upload.\n uploadedBytes: undefined,\n // By default, failed (abort or error) file uploads are removed from the\n // global progress calculation. Set the following option to false to\n // prevent recalculating the global progress data:\n recalculateProgress: true,\n // Interval in milliseconds to calculate and trigger progress events:\n progressInterval: 100,\n // Interval in milliseconds to calculate progress bitrate:\n bitrateInterval: 500,\n // By default, uploads are started automatically when adding files:\n autoUpload: true,\n\n // Error and info messages:\n messages: {\n uploadedBytes: 'Uploaded bytes exceed file size'\n },\n\n // Translation function, gets the message key to be translated\n // and an object with context specific data as arguments:\n i18n: function (message, context) {\n message = this.messages[message] || message.toString();\n if (context) {\n $.each(context, function (key, value) {\n message = message.replace('{' + key + '}', value);\n });\n }\n return message;\n },\n\n // Additional form data to be sent along with the file uploads can be set\n // using this option, which accepts an array of objects with name and\n // value properties, a function returning such an array, a FormData\n // object (for XHR file uploads), or a simple object.\n // The form of the first fileInput is given as parameter to the function:\n formData: function (form) {\n return form.serializeArray();\n },\n\n // The add callback is invoked as soon as files are added to the fileupload\n // widget (via file input selection, drag & drop, paste or add API call).\n // If the singleFileUploads option is enabled, this callback will be\n // called once for each file in the selection for XHR file uploads, else\n // once for each file selection.\n //\n // The upload starts when the submit method is invoked on the data parameter.\n // The data object contains a files property holding the added files\n // and allows you to override plugin options as well as define ajax settings.\n //\n // Listeners for this callback can also be bound the following way:\n // .bind('fileuploadadd', func);\n //\n // data.submit() returns a Promise object and allows to attach additional\n // handlers using jQuery's Deferred callbacks:\n // data.submit().done(func).fail(func).always(func);\n add: function (e, data) {\n if (e.isDefaultPrevented()) {\n return false;\n }\n if (data.autoUpload || (data.autoUpload !== false &&\n $(this).fileupload('option', 'autoUpload'))) {\n data.process().done(function () {\n data.submit();\n });\n }\n },\n\n // Other callbacks:\n\n // Callback for the submit event of each file upload:\n // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n // Callback for the start of each file upload request:\n // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n // Callback for successful uploads:\n // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n // Callback for failed (abort or error) uploads:\n // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n // Callback for completed (success, abort or error) requests:\n // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n // Callback for upload progress events:\n // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n // Callback for global upload progress events:\n // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n // Callback for uploads start, equivalent to the global ajaxStart event:\n // start: function (e) {}, // .bind('fileuploadstart', func);\n\n // Callback for uploads stop, equivalent to the global ajaxStop event:\n // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n // Callback for change events of the fileInput(s):\n // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n // Callback for paste events to the pasteZone(s):\n // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n // Callback for drop events of the dropZone(s):\n // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n // Callback for dragover events of the dropZone(s):\n // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n // Callback for the start of each chunk upload request:\n // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n // Callback for successful chunk uploads:\n // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n // Callback for failed (abort or error) chunk uploads:\n // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n // Callback for completed (success, abort or error) chunk upload requests:\n // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n // The plugin options are used as settings object for the ajax calls.\n // The following are jQuery ajax settings required for the file uploads:\n processData: false,\n contentType: false,\n cache: false,\n timeout: 0\n },\n\n // A list of options that require reinitializing event listeners and/or\n // special initialization code:\n _specialOptions: [\n 'fileInput',\n 'dropZone',\n 'pasteZone',\n 'multipart',\n 'forceIframeTransport'\n ],\n\n _blobSlice: $.support.blobSlice && function () {\n var slice = this.slice || this.webkitSlice || this.mozSlice;\n return slice.apply(this, arguments);\n },\n\n _BitrateTimer: function () {\n this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n this.loaded = 0;\n this.bitrate = 0;\n this.getBitrate = function (now, loaded, interval) {\n var timeDiff = now - this.timestamp;\n if (!this.bitrate || !interval || timeDiff > interval) {\n this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n this.loaded = loaded;\n this.timestamp = now;\n }\n return this.bitrate;\n };\n },\n\n _isXHRUpload: function (options) {\n return !options.forceIframeTransport &&\n ((!options.multipart && $.support.xhrFileUpload) ||\n $.support.xhrFormDataFileUpload);\n },\n\n _getFormData: function (options) {\n var formData;\n if ($.type(options.formData) === 'function') {\n return options.formData(options.form);\n }\n if ($.isArray(options.formData)) {\n return options.formData;\n }\n if ($.type(options.formData) === 'object') {\n formData = [];\n $.each(options.formData, function (name, value) {\n formData.push({name: name, value: value});\n });\n return formData;\n }\n return [];\n },\n\n _getTotal: function (files) {\n var total = 0;\n $.each(files, function (index, file) {\n total += file.size || 1;\n });\n return total;\n },\n\n _initProgressObject: function (obj) {\n var progress = {\n loaded: 0,\n total: 0,\n bitrate: 0\n };\n if (obj._progress) {\n $.extend(obj._progress, progress);\n } else {\n obj._progress = progress;\n }\n },\n\n _initResponseObject: function (obj) {\n var prop;\n if (obj._response) {\n for (prop in obj._response) {\n if (obj._response.hasOwnProperty(prop)) {\n delete obj._response[prop];\n }\n }\n } else {\n obj._response = {};\n }\n },\n\n _onProgress: function (e, data) {\n if (e.lengthComputable) {\n var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n loaded;\n if (data._time && data.progressInterval &&\n (now - data._time < data.progressInterval) &&\n e.loaded !== e.total) {\n return;\n }\n data._time = now;\n loaded = Math.floor(\n e.loaded / e.total * (data.chunkSize || data._progress.total)\n ) + (data.uploadedBytes || 0);\n // Add the difference from the previously loaded state\n // to the global loaded counter:\n this._progress.loaded += (loaded - data._progress.loaded);\n this._progress.bitrate = this._bitrateTimer.getBitrate(\n now,\n this._progress.loaded,\n data.bitrateInterval\n );\n data._progress.loaded = data.loaded = loaded;\n data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n now,\n loaded,\n data.bitrateInterval\n );\n // Trigger a custom progress event with a total data property set\n // to the file size(s) of the current upload and a loaded data\n // property calculated accordingly:\n this._trigger(\n 'progress',\n $.Event('progress', {delegatedEvent: e}),\n data\n );\n // Trigger a global progress event for all current file uploads,\n // including ajax calls queued for sequential file uploads:\n this._trigger(\n 'progressall',\n $.Event('progressall', {delegatedEvent: e}),\n this._progress\n );\n }\n },\n\n _initProgressListener: function (options) {\n var that = this,\n xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n // Accesss to the native XHR object is required to add event listeners\n // for the upload progress event:\n if (xhr.upload) {\n $(xhr.upload).bind('progress', function (e) {\n var oe = e.originalEvent;\n // Make sure the progress event properties get copied over:\n e.lengthComputable = oe.lengthComputable;\n e.loaded = oe.loaded;\n e.total = oe.total;\n that._onProgress(e, options);\n });\n options.xhr = function () {\n return xhr;\n };\n }\n },\n\n _isInstanceOf: function (type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n _initXHRData: function (options) {\n var that = this,\n formData,\n file = options.files[0],\n // Ignore non-multipart setting if not supported:\n multipart = options.multipart || !$.support.xhrFileUpload,\n paramName = $.type(options.paramName) === 'array' ?\n options.paramName[0] : options.paramName;\n options.headers = $.extend({}, options.headers);\n if (options.contentRange) {\n options.headers['Content-Range'] = options.contentRange;\n }\n if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\n options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n encodeURI(file.name) + '\"';\n }\n if (!multipart) {\n options.contentType = file.type || 'application/octet-stream';\n options.data = options.blob || file;\n } else if ($.support.xhrFormDataFileUpload) {\n if (options.postMessage) {\n // window.postMessage does not allow sending FormData\n // objects, so we just add the File/Blob objects to\n // the formData array and let the postMessage window\n // create the FormData object out of this array:\n formData = this._getFormData(options);\n if (options.blob) {\n formData.push({\n name: paramName,\n value: options.blob\n });\n } else {\n $.each(options.files, function (index, file) {\n formData.push({\n name: ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n value: file\n });\n });\n }\n } else {\n if (that._isInstanceOf('FormData', options.formData)) {\n formData = options.formData;\n } else {\n formData = new FormData();\n $.each(this._getFormData(options), function (index, field) {\n formData.append(field.name, field.value);\n });\n }\n if (options.blob) {\n formData.append(paramName, options.blob, file.name);\n } else {\n $.each(options.files, function (index, file) {\n // This check allows the tests to run with\n // dummy objects:\n if (that._isInstanceOf('File', file) ||\n that._isInstanceOf('Blob', file)) {\n formData.append(\n ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n file,\n file.uploadName || file.name\n );\n }\n });\n }\n }\n options.data = formData;\n }\n // Blob reference is not needed anymore, free memory:\n options.blob = null;\n },\n\n _initIframeSettings: function (options) {\n var targetHost = $('').prop('href', options.url).prop('host');\n // Setting the dataType to iframe enables the iframe transport:\n options.dataType = 'iframe ' + (options.dataType || '');\n // The iframe transport accepts a serialized array as form data:\n options.formData = this._getFormData(options);\n // Add redirect url to form data on cross-domain uploads:\n if (options.redirect && targetHost && targetHost !== location.host) {\n options.formData.push({\n name: options.redirectParamName || 'redirect',\n value: options.redirect\n });\n }\n },\n\n _initDataSettings: function (options) {\n if (this._isXHRUpload(options)) {\n if (!this._chunkedUpload(options, true)) {\n if (!options.data) {\n this._initXHRData(options);\n }\n this._initProgressListener(options);\n }\n if (options.postMessage) {\n // Setting the dataType to postmessage enables the\n // postMessage transport:\n options.dataType = 'postmessage ' + (options.dataType || '');\n }\n } else {\n this._initIframeSettings(options);\n }\n },\n\n _getParamName: function (options) {\n var fileInput = $(options.fileInput),\n paramName = options.paramName;\n if (!paramName) {\n paramName = [];\n fileInput.each(function () {\n var input = $(this),\n name = input.prop('name') || 'files[]',\n i = (input.prop('files') || [1]).length;\n while (i) {\n paramName.push(name);\n i -= 1;\n }\n });\n if (!paramName.length) {\n paramName = [fileInput.prop('name') || 'files[]'];\n }\n } else if (!$.isArray(paramName)) {\n paramName = [paramName];\n }\n return paramName;\n },\n\n _initFormSettings: function (options) {\n // Retrieve missing options from the input field and the\n // associated form, if available:\n if (!options.form || !options.form.length) {\n options.form = $(options.fileInput.prop('form'));\n // If the given file input doesn't have an associated form,\n // use the default widget file input's form:\n if (!options.form.length) {\n options.form = $(this.options.fileInput.prop('form'));\n }\n }\n options.paramName = this._getParamName(options);\n if (!options.url) {\n options.url = options.form.prop('action') || location.href;\n }\n // The HTTP request method must be \"POST\" or \"PUT\":\n options.type = (options.type ||\n ($.type(options.form.prop('method')) === 'string' &&\n options.form.prop('method')) || ''\n ).toUpperCase();\n if (options.type !== 'POST' && options.type !== 'PUT' &&\n options.type !== 'PATCH') {\n options.type = 'POST';\n }\n if (!options.formAcceptCharset) {\n options.formAcceptCharset = options.form.attr('accept-charset');\n }\n },\n\n _getAJAXSettings: function (data) {\n var options = $.extend({}, this.options, data);\n this._initFormSettings(options);\n this._initDataSettings(options);\n return options;\n },\n\n // jQuery 1.6 doesn't provide .state(),\n // while jQuery 1.8+ removed .isRejected() and .isResolved():\n _getDeferredState: function (deferred) {\n if (deferred.state) {\n return deferred.state();\n }\n if (deferred.isResolved()) {\n return 'resolved';\n }\n if (deferred.isRejected()) {\n return 'rejected';\n }\n return 'pending';\n },\n\n // Maps jqXHR callbacks to the equivalent\n // methods of the given Promise object:\n _enhancePromise: function (promise) {\n promise.success = promise.done;\n promise.error = promise.fail;\n promise.complete = promise.always;\n return promise;\n },\n\n // Creates and returns a Promise object enhanced with\n // the jqXHR methods abort, success, error and complete:\n _getXHRPromise: function (resolveOrReject, context, args) {\n var dfd = $.Deferred(),\n promise = dfd.promise();\n context = context || this.options.context || promise;\n if (resolveOrReject === true) {\n dfd.resolveWith(context, args);\n } else if (resolveOrReject === false) {\n dfd.rejectWith(context, args);\n }\n promise.abort = dfd.promise;\n return this._enhancePromise(promise);\n },\n\n // Adds convenience methods to the data callback argument:\n _addConvenienceMethods: function (e, data) {\n var that = this,\n getPromise = function (args) {\n return $.Deferred().resolveWith(that, args).promise();\n };\n data.process = function (resolveFunc, rejectFunc) {\n if (resolveFunc || rejectFunc) {\n data._processQueue = this._processQueue =\n (this._processQueue || getPromise([this])).pipe(\n function () {\n if (data.errorThrown) {\n return $.Deferred()\n .rejectWith(that, [data]).promise();\n }\n return getPromise(arguments);\n }\n ).pipe(resolveFunc, rejectFunc);\n }\n return this._processQueue || getPromise([this]);\n };\n data.submit = function () {\n if (this.state() !== 'pending') {\n data.jqXHR = this.jqXHR =\n (that._trigger(\n 'submit',\n $.Event('submit', {delegatedEvent: e}),\n this\n ) !== false) && that._onSend(e, this);\n }\n return this.jqXHR || that._getXHRPromise();\n };\n data.abort = function () {\n if (this.jqXHR) {\n return this.jqXHR.abort();\n }\n this.errorThrown = 'abort';\n that._trigger('fail', null, this);\n return that._getXHRPromise(false);\n };\n data.state = function () {\n if (this.jqXHR) {\n return that._getDeferredState(this.jqXHR);\n }\n if (this._processQueue) {\n return that._getDeferredState(this._processQueue);\n }\n };\n data.processing = function () {\n return !this.jqXHR && this._processQueue && that\n ._getDeferredState(this._processQueue) === 'pending';\n };\n data.progress = function () {\n return this._progress;\n };\n data.response = function () {\n return this._response;\n };\n },\n\n // Parses the Range header from the server response\n // and returns the uploaded bytes:\n _getUploadedBytes: function (jqXHR) {\n var range = jqXHR.getResponseHeader('Range'),\n parts = range && range.split('-'),\n upperBytesPos = parts && parts.length > 1 &&\n parseInt(parts[1], 10);\n return upperBytesPos && upperBytesPos + 1;\n },\n\n // Uploads a file in multiple, sequential requests\n // by splitting the file up in multiple blob chunks.\n // If the second parameter is true, only tests if the file\n // should be uploaded in chunks, but does not invoke any\n // upload requests:\n _chunkedUpload: function (options, testOnly) {\n options.uploadedBytes = options.uploadedBytes || 0;\n var that = this,\n file = options.files[0],\n fs = file.size,\n ub = options.uploadedBytes,\n mcs = options.maxChunkSize || fs,\n slice = this._blobSlice,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n upload;\n if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n options.data) {\n return false;\n }\n if (testOnly) {\n return true;\n }\n if (ub >= fs) {\n file.error = options.i18n('uploadedBytes');\n return this._getXHRPromise(\n false,\n options.context,\n [null, 'error', file.error]\n );\n }\n // The chunk upload method:\n upload = function () {\n // Clone the options object for each chunk upload:\n var o = $.extend({}, options),\n currentLoaded = o._progress.loaded;\n o.blob = slice.call(\n file,\n ub,\n ub + mcs,\n file.type\n );\n // Store the current chunk size, as the blob itself\n // will be dereferenced after data processing:\n o.chunkSize = o.blob.size;\n // Expose the chunk bytes position range:\n o.contentRange = 'bytes ' + ub + '-' +\n (ub + o.chunkSize - 1) + '/' + fs;\n // Process the upload data (the blob and potential form data):\n that._initXHRData(o);\n // Add progress listeners for this chunk upload:\n that._initProgressListener(o);\n jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n that._getXHRPromise(false, o.context))\n .done(function (result, textStatus, jqXHR) {\n ub = that._getUploadedBytes(jqXHR) ||\n (ub + o.chunkSize);\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered\n // for this chunk:\n if (currentLoaded + o.chunkSize - o._progress.loaded) {\n that._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: ub - o.uploadedBytes,\n total: ub - o.uploadedBytes\n }), o);\n }\n options.uploadedBytes = o.uploadedBytes = ub;\n o.result = result;\n o.textStatus = textStatus;\n o.jqXHR = jqXHR;\n that._trigger('chunkdone', null, o);\n that._trigger('chunkalways', null, o);\n if (ub < fs) {\n // File upload not yet complete,\n // continue with the next chunk:\n upload();\n } else {\n dfd.resolveWith(\n o.context,\n [result, textStatus, jqXHR]\n );\n }\n })\n .fail(function (jqXHR, textStatus, errorThrown) {\n o.jqXHR = jqXHR;\n o.textStatus = textStatus;\n o.errorThrown = errorThrown;\n that._trigger('chunkfail', null, o);\n that._trigger('chunkalways', null, o);\n dfd.rejectWith(\n o.context,\n [jqXHR, textStatus, errorThrown]\n );\n });\n };\n this._enhancePromise(promise);\n promise.abort = function () {\n return jqXHR.abort();\n };\n upload();\n return promise;\n },\n\n _beforeSend: function (e, data) {\n if (this._active === 0) {\n // the start callback is triggered when an upload starts\n // and no other uploads are currently running,\n // equivalent to the global ajaxStart event:\n this._trigger('start');\n // Set timer for global bitrate progress calculation:\n this._bitrateTimer = new this._BitrateTimer();\n // Reset the global progress values:\n this._progress.loaded = this._progress.total = 0;\n this._progress.bitrate = 0;\n }\n // Make sure the container objects for the .response() and\n // .progress() methods on the data object are available\n // and reset to their initial state:\n this._initResponseObject(data);\n this._initProgressObject(data);\n data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n data._progress.total = data.total = this._getTotal(data.files) || 1;\n data._progress.bitrate = data.bitrate = 0;\n this._active += 1;\n // Initialize the global progress values:\n this._progress.loaded += data.loaded;\n this._progress.total += data.total;\n },\n\n _onDone: function (result, textStatus, jqXHR, options) {\n var total = options._progress.total,\n response = options._response;\n if (options._progress.loaded < total) {\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered:\n this._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: total,\n total: total\n }), options);\n }\n response.result = options.result = result;\n response.textStatus = options.textStatus = textStatus;\n response.jqXHR = options.jqXHR = jqXHR;\n this._trigger('done', null, options);\n },\n\n _onFail: function (jqXHR, textStatus, errorThrown, options) {\n var response = options._response;\n if (options.recalculateProgress) {\n // Remove the failed (error or abort) file upload from\n // the global progress calculation:\n this._progress.loaded -= options._progress.loaded;\n this._progress.total -= options._progress.total;\n }\n response.jqXHR = options.jqXHR = jqXHR;\n response.textStatus = options.textStatus = textStatus;\n response.errorThrown = options.errorThrown = errorThrown;\n this._trigger('fail', null, options);\n },\n\n _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n // jqXHRorResult, textStatus and jqXHRorError are added to the\n // options object via done and fail callbacks\n this._trigger('always', null, options);\n },\n\n _onSend: function (e, data) {\n if (!data.submit) {\n this._addConvenienceMethods(e, data);\n }\n var that = this,\n jqXHR,\n aborted,\n slot,\n pipe,\n options = that._getAJAXSettings(data),\n send = function () {\n that._sending += 1;\n // Set timer for bitrate progress calculation:\n options._bitrateTimer = new that._BitrateTimer();\n jqXHR = jqXHR || (\n ((aborted || that._trigger(\n 'send',\n $.Event('send', {delegatedEvent: e}),\n options\n ) === false) &&\n that._getXHRPromise(false, options.context, aborted)) ||\n that._chunkedUpload(options) || $.ajax(options)\n ).done(function (result, textStatus, jqXHR) {\n that._onDone(result, textStatus, jqXHR, options);\n }).fail(function (jqXHR, textStatus, errorThrown) {\n that._onFail(jqXHR, textStatus, errorThrown, options);\n }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n that._onAlways(\n jqXHRorResult,\n textStatus,\n jqXHRorError,\n options\n );\n that._sending -= 1;\n that._active -= 1;\n if (options.limitConcurrentUploads &&\n options.limitConcurrentUploads > that._sending) {\n // Start the next queued upload,\n // that has not been aborted:\n var nextSlot = that._slots.shift();\n while (nextSlot) {\n if (that._getDeferredState(nextSlot) === 'pending') {\n nextSlot.resolve();\n break;\n }\n nextSlot = that._slots.shift();\n }\n }\n if (that._active === 0) {\n // The stop callback is triggered when all uploads have\n // been completed, equivalent to the global ajaxStop event:\n that._trigger('stop');\n }\n });\n return jqXHR;\n };\n this._beforeSend(e, options);\n if (this.options.sequentialUploads ||\n (this.options.limitConcurrentUploads &&\n this.options.limitConcurrentUploads <= this._sending)) {\n if (this.options.limitConcurrentUploads > 1) {\n slot = $.Deferred();\n this._slots.push(slot);\n pipe = slot.pipe(send);\n } else {\n this._sequence = this._sequence.pipe(send, send);\n pipe = this._sequence;\n }\n // Return the piped Promise object, enhanced with an abort method,\n // which is delegated to the jqXHR object of the current upload,\n // and jqXHR callbacks mapped to the equivalent Promise methods:\n pipe.abort = function () {\n aborted = [undefined, 'abort', 'abort'];\n if (!jqXHR) {\n if (slot) {\n slot.rejectWith(options.context, aborted);\n }\n return send();\n }\n return jqXHR.abort();\n };\n return this._enhancePromise(pipe);\n }\n return send();\n },\n\n _onAdd: function (e, data) {\n var that = this,\n result = true,\n options = $.extend({}, this.options, data),\n files = data.files,\n filesLength = files.length,\n limit = options.limitMultiFileUploads,\n limitSize = options.limitMultiFileUploadSize,\n overhead = options.limitMultiFileUploadSizeOverhead,\n batchSize = 0,\n paramName = this._getParamName(options),\n paramNameSet,\n paramNameSlice,\n fileSet,\n i,\n j = 0;\n if (!filesLength) {\n return false;\n }\n if (limitSize && files[0].size === undefined) {\n limitSize = undefined;\n }\n if (!(options.singleFileUploads || limit || limitSize) ||\n !this._isXHRUpload(options)) {\n fileSet = [files];\n paramNameSet = [paramName];\n } else if (!(options.singleFileUploads || limitSize) && limit) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i += limit) {\n fileSet.push(files.slice(i, i + limit));\n paramNameSlice = paramName.slice(i, i + limit);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n }\n } else if (!options.singleFileUploads && limitSize) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i = i + 1) {\n batchSize += files[i].size + overhead;\n if (i + 1 === filesLength ||\n ((batchSize + files[i + 1].size + overhead) > limitSize) ||\n (limit && i + 1 - j >= limit)) {\n fileSet.push(files.slice(j, i + 1));\n paramNameSlice = paramName.slice(j, i + 1);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n j = i + 1;\n batchSize = 0;\n }\n }\n } else {\n paramNameSet = paramName;\n }\n data.originalFiles = files;\n $.each(fileSet || files, function (index, element) {\n var newData = $.extend({}, data);\n newData.files = fileSet ? element : [element];\n newData.paramName = paramNameSet[index];\n that._initResponseObject(newData);\n that._initProgressObject(newData);\n that._addConvenienceMethods(e, newData);\n result = that._trigger(\n 'add',\n $.Event('add', {delegatedEvent: e}),\n newData\n );\n return result;\n });\n return result;\n },\n\n _replaceFileInput: function (data) {\n var input = data.fileInput,\n inputClone = input.clone(true);\n // Add a reference for the new cloned file input to the data argument:\n data.fileInputClone = inputClone;\n $('
            ').append(inputClone)[0].reset();\n // Detaching allows to insert the fileInput on another form\n // without loosing the file input value:\n input.after(inputClone).detach();\n // Avoid memory leaks with the detached file input:\n $.cleanData(input.unbind('remove'));\n // Replace the original file input element in the fileInput\n // elements set with the clone, which has been copied including\n // event handlers:\n this.options.fileInput = this.options.fileInput.map(function (i, el) {\n if (el === input[0]) {\n return inputClone[0];\n }\n return el;\n });\n // If the widget has been initialized on the file input itself,\n // override this.element with the file input clone:\n if (input[0] === this.element[0]) {\n this.element = inputClone;\n }\n },\n\n _handleFileTreeEntry: function (entry, path) {\n var that = this,\n dfd = $.Deferred(),\n errorHandler = function (e) {\n if (e && !e.entry) {\n e.entry = entry;\n }\n // Since $.when returns immediately if one\n // Deferred is rejected, we use resolve instead.\n // This allows valid files and invalid items\n // to be returned together in one set:\n dfd.resolve([e]);\n },\n successHandler = function (entries) {\n that._handleFileTreeEntries(\n entries,\n path + entry.name + '/'\n ).done(function (files) {\n dfd.resolve(files);\n }).fail(errorHandler);\n },\n readEntries = function () {\n dirReader.readEntries(function (results) {\n if (!results.length) {\n successHandler(entries);\n } else {\n entries = entries.concat(results);\n readEntries();\n }\n }, errorHandler);\n },\n dirReader, entries = [];\n path = path || '';\n if (entry.isFile) {\n if (entry._file) {\n // Workaround for Chrome bug #149735\n entry._file.relativePath = path;\n dfd.resolve(entry._file);\n } else {\n entry.file(function (file) {\n file.relativePath = path;\n dfd.resolve(file);\n }, errorHandler);\n }\n } else if (entry.isDirectory) {\n dirReader = entry.createReader();\n readEntries();\n } else {\n // Return an empy list for file system items\n // other than files or directories:\n dfd.resolve([]);\n }\n return dfd.promise();\n },\n\n _handleFileTreeEntries: function (entries, path) {\n var that = this;\n return $.when.apply(\n $,\n $.map(entries, function (entry) {\n return that._handleFileTreeEntry(entry, path);\n })\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _getDroppedFiles: function (dataTransfer) {\n dataTransfer = dataTransfer || {};\n var items = dataTransfer.items;\n if (items && items.length && (items[0].webkitGetAsEntry ||\n items[0].getAsEntry)) {\n return this._handleFileTreeEntries(\n $.map(items, function (item) {\n var entry;\n if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n if (entry) {\n // Workaround for Chrome bug #149735:\n entry._file = item.getAsFile();\n }\n return entry;\n }\n return item.getAsEntry();\n })\n );\n }\n return $.Deferred().resolve(\n $.makeArray(dataTransfer.files)\n ).promise();\n },\n\n _getSingleFileInputFiles: function (fileInput) {\n fileInput = $(fileInput);\n var entries = fileInput.prop('webkitEntries') ||\n fileInput.prop('entries'),\n files,\n value;\n if (entries && entries.length) {\n return this._handleFileTreeEntries(entries);\n }\n files = $.makeArray(fileInput.prop('files'));\n if (!files.length) {\n value = fileInput.prop('value');\n if (!value) {\n return $.Deferred().resolve([]).promise();\n }\n // If the files property is not available, the browser does not\n // support the File API and we add a pseudo File object with\n // the input value as name with path information removed:\n files = [{name: value.replace(/^.*\\\\/, '')}];\n } else if (files[0].name === undefined && files[0].fileName) {\n // File normalization for Safari 4 and Firefox 3:\n $.each(files, function (index, file) {\n file.name = file.fileName;\n file.size = file.fileSize;\n });\n }\n return $.Deferred().resolve(files).promise();\n },\n\n _getFileInputFiles: function (fileInput) {\n if (!(fileInput instanceof $) || fileInput.length === 1) {\n return this._getSingleFileInputFiles(fileInput);\n }\n return $.when.apply(\n $,\n $.map(fileInput, this._getSingleFileInputFiles)\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _onChange: function (e) {\n var that = this,\n data = {\n fileInput: $(e.target),\n form: $(e.target.form)\n };\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n if (that.options.replaceFileInput) {\n that._replaceFileInput(data);\n }\n if (that._trigger(\n 'change',\n $.Event('change', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n },\n\n _onPaste: function (e) {\n var items = e.originalEvent && e.originalEvent.clipboardData &&\n e.originalEvent.clipboardData.items,\n data = {files: []};\n if (items && items.length) {\n $.each(items, function (index, item) {\n var file = item.getAsFile && item.getAsFile();\n if (file) {\n data.files.push(file);\n }\n });\n if (this._trigger(\n 'paste',\n $.Event('paste', {delegatedEvent: e}),\n data\n ) !== false) {\n this._onAdd(e, data);\n }\n }\n },\n\n _onDrop: function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var that = this,\n dataTransfer = e.dataTransfer,\n data = {};\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n e.preventDefault();\n this._getDroppedFiles(dataTransfer).always(function (files) {\n data.files = files;\n if (that._trigger(\n 'drop',\n $.Event('drop', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n }\n },\n\n _onDragOver: getDragHandler('dragover'),\n\n _onDragEnter: getDragHandler('dragenter'),\n\n _onDragLeave: getDragHandler('dragleave'),\n\n _initEventHandlers: function () {\n if (this._isXHRUpload(this.options)) {\n this._on(this.options.dropZone, {\n dragover: this._onDragOver,\n drop: this._onDrop,\n // event.preventDefault() on dragenter is required for IE10+:\n dragenter: this._onDragEnter,\n // dragleave is not required, but added for completeness:\n dragleave: this._onDragLeave\n });\n this._on(this.options.pasteZone, {\n paste: this._onPaste\n });\n }\n if ($.support.fileInput) {\n this._on(this.options.fileInput, {\n change: this._onChange\n });\n }\n },\n\n _destroyEventHandlers: function () {\n this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\n this._off(this.options.pasteZone, 'paste');\n this._off(this.options.fileInput, 'change');\n },\n\n _setOption: function (key, value) {\n var reinit = $.inArray(key, this._specialOptions) !== -1;\n if (reinit) {\n this._destroyEventHandlers();\n }\n this._super(key, value);\n if (reinit) {\n this._initSpecialOptions();\n this._initEventHandlers();\n }\n },\n\n _initSpecialOptions: function () {\n var options = this.options;\n if (options.fileInput === undefined) {\n options.fileInput = this.element.is('input[type=\"file\"]') ?\n this.element : this.element.find('input[type=\"file\"]');\n } else if (!(options.fileInput instanceof $)) {\n options.fileInput = $(options.fileInput);\n }\n if (!(options.dropZone instanceof $)) {\n options.dropZone = $(options.dropZone);\n }\n if (!(options.pasteZone instanceof $)) {\n options.pasteZone = $(options.pasteZone);\n }\n },\n\n _getRegExp: function (str) {\n var parts = str.split('/'),\n modifiers = parts.pop();\n parts.shift();\n return new RegExp(parts.join('/'), modifiers);\n },\n\n _isRegExpOption: function (key, value) {\n return key !== 'url' && $.type(value) === 'string' &&\n /^\\/.*\\/[igm]{0,3}$/.test(value);\n },\n\n _initDataAttributes: function () {\n var that = this,\n options = this.options,\n data = this.element.data();\n // Initialize options set via HTML5 data-attributes:\n $.each(\n this.element[0].attributes,\n function (index, attr) {\n var key = attr.name.toLowerCase(),\n value;\n if (/^data-/.test(key)) {\n // Convert hyphen-ated key to camelCase:\n key = key.slice(5).replace(/-[a-z]/g, function (str) {\n return str.charAt(1).toUpperCase();\n });\n value = data[key];\n if (that._isRegExpOption(key, value)) {\n value = that._getRegExp(value);\n }\n options[key] = value;\n }\n }\n );\n },\n\n _create: function () {\n this._initDataAttributes();\n this._initSpecialOptions();\n this._slots = [];\n this._sequence = this._getXHRPromise(true);\n this._sending = this._active = 0;\n this._initProgressObject(this);\n this._initEventHandlers();\n },\n\n // This method is exposed to the widget API and allows to query\n // the number of active uploads:\n active: function () {\n return this._active;\n },\n\n // This method is exposed to the widget API and allows to query\n // the widget upload progress.\n // It returns an object with loaded, total and bitrate properties\n // for the running uploads:\n progress: function () {\n return this._progress;\n },\n\n // This method is exposed to the widget API and allows adding files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files property and can contain additional options:\n // .fileupload('add', {files: filesList});\n add: function (data) {\n var that = this;\n if (!data || this.options.disabled) {\n return;\n }\n if (data.fileInput && !data.files) {\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n that._onAdd(null, data);\n });\n } else {\n data.files = $.makeArray(data.files);\n this._onAdd(null, data);\n }\n },\n\n // This method is exposed to the widget API and allows sending files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files or fileInput property and can contain additional options:\n // .fileupload('send', {files: filesList});\n // The method returns a Promise object for the file upload call.\n send: function (data) {\n if (data && !this.options.disabled) {\n if (data.fileInput && !data.files) {\n var that = this,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n aborted;\n promise.abort = function () {\n aborted = true;\n if (jqXHR) {\n return jqXHR.abort();\n }\n dfd.reject(null, 'abort', 'abort');\n return promise;\n };\n this._getFileInputFiles(data.fileInput).always(\n function (files) {\n if (aborted) {\n return;\n }\n if (!files.length) {\n dfd.reject();\n return;\n }\n data.files = files;\n jqXHR = that._onSend(null, data);\n jqXHR.then(\n function (result, textStatus, jqXHR) {\n dfd.resolve(result, textStatus, jqXHR);\n },\n function (jqXHR, textStatus, errorThrown) {\n dfd.reject(jqXHR, textStatus, errorThrown);\n }\n );\n }\n );\n return this._enhancePromise(promise);\n }\n data.files = $.makeArray(data.files);\n if (data.files.length) {\n return this._onSend(null, data);\n }\n }\n return this._getXHRPromise(false, data && data.context);\n }\n\n });\n\n}));\n","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.6\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.6\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.6'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.6\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.6'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.6\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.6'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.6\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.6'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.6\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.6'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.6\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.6'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.6\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.6'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
            ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.6\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.6'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

            '\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.6\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.6'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.6\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.6'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.6\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.6'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n",";(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.\n\t *\n\t * @codingstandard ftlabs-jsv2\n\t * @copyright The Financial Times Limited [All Rights Reserved]\n\t * @license MIT License (see LICENSE.txt)\n\t */\n\n\t/*jslint browser:true, node:true*/\n\t/*global define, Event, Node*/\n\n\n\t/**\n\t * Instantiate fast-clicking listeners on the specified layer.\n\t *\n\t * @constructor\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tfunction FastClick(layer, options) {\n\t\tvar oldOnClick;\n\n\t\toptions = options || {};\n\n\t\t/**\n\t\t * Whether a click is currently being tracked.\n\t\t *\n\t\t * @type boolean\n\t\t */\n\t\tthis.trackingClick = false;\n\n\n\t\t/**\n\t\t * Timestamp for when click tracking started.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.trackingClickStart = 0;\n\n\n\t\t/**\n\t\t * The element being tracked for a click.\n\t\t *\n\t\t * @type EventTarget\n\t\t */\n\t\tthis.targetElement = null;\n\n\n\t\t/**\n\t\t * X-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartX = 0;\n\n\n\t\t/**\n\t\t * Y-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartY = 0;\n\n\n\t\t/**\n\t\t * ID of the last touch, retrieved from Touch.identifier.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.lastTouchIdentifier = 0;\n\n\n\t\t/**\n\t\t * Touchmove boundary, beyond which a click will be cancelled.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchBoundary = options.touchBoundary || 10;\n\n\n\t\t/**\n\t\t * The FastClick layer.\n\t\t *\n\t\t * @type Element\n\t\t */\n\t\tthis.layer = layer;\n\n\t\t/**\n\t\t * The minimum time between tap(touchstart and touchend) events\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapDelay = options.tapDelay || 200;\n\n\t\t/**\n\t\t * The maximum time for a tap\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapTimeout = options.tapTimeout || 700;\n\n\t\tif (FastClick.notNeeded(layer)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Some old versions of Android don't have Function.prototype.bind\n\t\tfunction bind(method, context) {\n\t\t\treturn function() { return method.apply(context, arguments); };\n\t\t}\n\n\n\t\tvar methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];\n\t\tvar context = this;\n\t\tfor (var i = 0, l = methods.length; i < l; i++) {\n\t\t\tcontext[methods[i]] = bind(context[methods[i]], context);\n\t\t}\n\n\t\t// Set up event handlers as required\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.addEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.addEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.addEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.addEventListener('click', this.onClick, true);\n\t\tlayer.addEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.addEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.addEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.addEventListener('touchcancel', this.onTouchCancel, false);\n\n\t\t// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick\n\t\t// layer when they are cancelled.\n\t\tif (!Event.prototype.stopImmediatePropagation) {\n\t\t\tlayer.removeEventListener = function(type, callback, capture) {\n\t\t\t\tvar rmv = Node.prototype.removeEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\trmv.call(layer, type, callback.hijacked || callback, capture);\n\t\t\t\t} else {\n\t\t\t\t\trmv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlayer.addEventListener = function(type, callback, capture) {\n\t\t\t\tvar adv = Node.prototype.addEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\tadv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {\n\t\t\t\t\t\tif (!event.propagationStopped) {\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}), capture);\n\t\t\t\t} else {\n\t\t\t\t\tadv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// If a handler is already declared in the element's onclick attribute, it will be fired before\n\t\t// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and\n\t\t// adding it as listener.\n\t\tif (typeof layer.onclick === 'function') {\n\n\t\t\t// Android browser on at least 3.2 requires a new reference to the function in layer.onclick\n\t\t\t// - the old one won't work if passed to addEventListener directly.\n\t\t\toldOnClick = layer.onclick;\n\t\t\tlayer.addEventListener('click', function(event) {\n\t\t\t\toldOnClick(event);\n\t\t\t}, false);\n\t\t\tlayer.onclick = null;\n\t\t}\n\t}\n\n\t/**\n\t* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.\n\t*\n\t* @type boolean\n\t*/\n\tvar deviceIsWindowsPhone = navigator.userAgent.indexOf(\"Windows Phone\") >= 0;\n\n\t/**\n\t * Android requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS 4 requires an exception for select elements.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS4 = deviceIsIOS && (/OS 4_\\d(_\\d)?/).test(navigator.userAgent);\n\n\n\t/**\n\t * iOS 6.0-7.* requires the target element to be manually derived\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\\d/).test(navigator.userAgent);\n\n\t/**\n\t * BlackBerry requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;\n\n\t/**\n\t * Determine whether a given element requires a native click.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element needs a native click\n\t */\n\tFastClick.prototype.needsClick = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\n\t\t// Don't send a synthetic click to disabled inputs (issue #62)\n\t\tcase 'button':\n\t\tcase 'select':\n\t\tcase 'textarea':\n\t\t\tif (target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'input':\n\n\t\t\t// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)\n\t\t\tif ((deviceIsIOS && target.type === 'file') || target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'label':\n\t\tcase 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames\n\t\tcase 'video':\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (/\\bneedsclick\\b/).test(target.className);\n\t};\n\n\n\t/**\n\t * Determine whether a given element requires a call to focus to simulate click into element.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.\n\t */\n\tFastClick.prototype.needsFocus = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\t\tcase 'textarea':\n\t\t\treturn true;\n\t\tcase 'select':\n\t\t\treturn !deviceIsAndroid;\n\t\tcase 'input':\n\t\t\tswitch (target.type) {\n\t\t\tcase 'button':\n\t\t\tcase 'checkbox':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'radio':\n\t\t\tcase 'submit':\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// No point in attempting to focus disabled inputs\n\t\t\treturn !target.disabled && !target.readOnly;\n\t\tdefault:\n\t\t\treturn (/\\bneedsfocus\\b/).test(target.className);\n\t\t}\n\t};\n\n\n\t/**\n\t * Send a click event to the specified element.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t * @param {Event} event\n\t */\n\tFastClick.prototype.sendClick = function(targetElement, event) {\n\t\tvar clickEvent, touch;\n\n\t\t// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)\n\t\tif (document.activeElement && document.activeElement !== targetElement) {\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\n\t\ttouch = event.changedTouches[0];\n\n\t\t// Synthesise a click event, with an extra attribute so it can be tracked\n\t\tclickEvent = document.createEvent('MouseEvents');\n\t\tclickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);\n\t\tclickEvent.forwardedTouchEvent = true;\n\t\ttargetElement.dispatchEvent(clickEvent);\n\t};\n\n\tFastClick.prototype.determineEventType = function(targetElement) {\n\n\t\t//Issue #159: Android Chrome Select Box does not open with a synthetic click event\n\t\tif (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {\n\t\t\treturn 'mousedown';\n\t\t}\n\n\t\treturn 'click';\n\t};\n\n\n\t/**\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.focus = function(targetElement) {\n\t\tvar length;\n\n\t\t// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.\n\t\tif (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {\n\t\t\tlength = targetElement.value.length;\n\t\t\ttargetElement.setSelectionRange(length, length);\n\t\t} else {\n\t\t\ttargetElement.focus();\n\t\t}\n\t};\n\n\n\t/**\n\t * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.updateScrollParent = function(targetElement) {\n\t\tvar scrollParent, parentElement;\n\n\t\tscrollParent = targetElement.fastClickScrollParent;\n\n\t\t// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the\n\t\t// target element was moved to another parent.\n\t\tif (!scrollParent || !scrollParent.contains(targetElement)) {\n\t\t\tparentElement = targetElement;\n\t\t\tdo {\n\t\t\t\tif (parentElement.scrollHeight > parentElement.offsetHeight) {\n\t\t\t\t\tscrollParent = parentElement;\n\t\t\t\t\ttargetElement.fastClickScrollParent = parentElement;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparentElement = parentElement.parentElement;\n\t\t\t} while (parentElement);\n\t\t}\n\n\t\t// Always update the scroll top tracker if possible.\n\t\tif (scrollParent) {\n\t\t\tscrollParent.fastClickLastScrollTop = scrollParent.scrollTop;\n\t\t}\n\t};\n\n\n\t/**\n\t * @param {EventTarget} targetElement\n\t * @returns {Element|EventTarget}\n\t */\n\tFastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {\n\n\t\t// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.\n\t\tif (eventTarget.nodeType === Node.TEXT_NODE) {\n\t\t\treturn eventTarget.parentNode;\n\t\t}\n\n\t\treturn eventTarget;\n\t};\n\n\n\t/**\n\t * On touch start, record the position and scroll offset.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchStart = function(event) {\n\t\tvar targetElement, touch, selection;\n\n\t\t// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).\n\t\tif (event.targetTouches.length > 1) {\n\t\t\treturn true;\n\t\t}\n\n\t\ttargetElement = this.getTargetElementFromEventTarget(event.target);\n\t\ttouch = event.targetTouches[0];\n\n\t\tif (deviceIsIOS) {\n\n\t\t\t// Only trusted events will deselect text on iOS (issue #49)\n\t\t\tselection = window.getSelection();\n\t\t\tif (selection.rangeCount && !selection.isCollapsed) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!deviceIsIOS4) {\n\n\t\t\t\t// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):\n\t\t\t\t// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched\n\t\t\t\t// with the same identifier as the touch event that previously triggered the click that triggered the alert.\n\t\t\t\t// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an\n\t\t\t\t// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.\n\t\t\t\t// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,\n\t\t\t\t// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,\n\t\t\t\t// random integers, it's safe to to continue if the identifier is 0 here.\n\t\t\t\tif (touch.identifier && touch.identifier === this.lastTouchIdentifier) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastTouchIdentifier = touch.identifier;\n\n\t\t\t\t// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:\n\t\t\t\t// 1) the user does a fling scroll on the scrollable layer\n\t\t\t\t// 2) the user stops the fling scroll with another tap\n\t\t\t\t// then the event.target of the last 'touchend' event will be the element that was under the user's finger\n\t\t\t\t// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check\n\t\t\t\t// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).\n\t\t\t\tthis.updateScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackingClick = true;\n\t\tthis.trackingClickStart = event.timeStamp;\n\t\tthis.targetElement = targetElement;\n\n\t\tthis.touchStartX = touch.pageX;\n\t\tthis.touchStartY = touch.pageY;\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.touchHasMoved = function(event) {\n\t\tvar touch = event.changedTouches[0], boundary = this.touchBoundary;\n\n\t\tif (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Update the last position.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchMove = function(event) {\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the touch has moved, cancel the click tracking\n\t\tif (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {\n\t\t\tthis.trackingClick = false;\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Attempt to find the labelled control for the given label element.\n\t *\n\t * @param {EventTarget|HTMLLabelElement} labelElement\n\t * @returns {Element|null}\n\t */\n\tFastClick.prototype.findControl = function(labelElement) {\n\n\t\t// Fast path for newer browsers supporting the HTML5 control attribute\n\t\tif (labelElement.control !== undefined) {\n\t\t\treturn labelElement.control;\n\t\t}\n\n\t\t// All browsers under test that support touch events also support the HTML5 htmlFor attribute\n\t\tif (labelElement.htmlFor) {\n\t\t\treturn document.getElementById(labelElement.htmlFor);\n\t\t}\n\n\t\t// If no for attribute exists, attempt to retrieve the first labellable descendant element\n\t\t// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label\n\t\treturn labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');\n\t};\n\n\n\t/**\n\t * On touch end, determine whether to send a click event at once.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchEnd = function(event) {\n\t\tvar forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;\n\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tthis.cancelNextClick = true;\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Reset to prevent wrong click cancel on input (issue #156).\n\t\tthis.cancelNextClick = false;\n\n\t\tthis.lastClickTime = event.timeStamp;\n\n\t\ttrackingClickStart = this.trackingClickStart;\n\t\tthis.trackingClick = false;\n\t\tthis.trackingClickStart = 0;\n\n\t\t// On some iOS devices, the targetElement supplied with the event is invalid if the layer\n\t\t// is performing a transition or scroll, and has to be re-detected manually. Note that\n\t\t// for this to function correctly, it must be called *after* the event target is checked!\n\t\t// See issue #57; also filed as rdar://13048589 .\n\t\tif (deviceIsIOSWithBadTarget) {\n\t\t\ttouch = event.changedTouches[0];\n\n\t\t\t// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null\n\t\t\ttargetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;\n\t\t\ttargetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;\n\t\t}\n\n\t\ttargetTagName = targetElement.tagName.toLowerCase();\n\t\tif (targetTagName === 'label') {\n\t\t\tforElement = this.findControl(targetElement);\n\t\t\tif (forElement) {\n\t\t\t\tthis.focus(targetElement);\n\t\t\t\tif (deviceIsAndroid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\ttargetElement = forElement;\n\t\t\t}\n\t\t} else if (this.needsFocus(targetElement)) {\n\n\t\t\t// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.\n\t\t\t// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).\n\t\t\tif ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.focus(targetElement);\n\t\t\tthis.sendClick(targetElement, event);\n\n\t\t\t// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.\n\t\t\t// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)\n\t\t\tif (!deviceIsIOS || targetTagName !== 'select') {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (deviceIsIOS && !deviceIsIOS4) {\n\n\t\t\t// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled\n\t\t\t// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).\n\t\t\tscrollParent = targetElement.fastClickScrollParent;\n\t\t\tif (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Prevent the actual click from going though - unless the target node is marked as requiring\n\t\t// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.\n\t\tif (!this.needsClick(targetElement)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendClick(targetElement, event);\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * On touch cancel, stop tracking the click.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.onTouchCancel = function() {\n\t\tthis.trackingClick = false;\n\t\tthis.targetElement = null;\n\t};\n\n\n\t/**\n\t * Determine mouse events which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onMouse = function(event) {\n\n\t\t// If a target element was never set (because a touch event was never fired) allow the event\n\t\tif (!this.targetElement) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (event.forwardedTouchEvent) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Programmatically generated events targeting a specific element should be permitted\n\t\tif (!event.cancelable) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Derive and check the target element to see whether the mouse event needs to be permitted;\n\t\t// unless explicitly enabled, prevent non-touch click events from triggering actions,\n\t\t// to prevent ghost/doubleclicks.\n\t\tif (!this.needsClick(this.targetElement) || this.cancelNextClick) {\n\n\t\t\t// Prevent any user-added listeners declared on FastClick element from being fired.\n\t\t\tif (event.stopImmediatePropagation) {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t} else {\n\n\t\t\t\t// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t\t\tevent.propagationStopped = true;\n\t\t\t}\n\n\t\t\t// Cancel the event\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the mouse event is permitted, return true for the action to go through.\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * On actual clicks, determine whether this is a touch-generated click, a click action occurring\n\t * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or\n\t * an actual click which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onClick = function(event) {\n\t\tvar permitted;\n\n\t\t// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.\n\t\tif (this.trackingClick) {\n\t\t\tthis.targetElement = null;\n\t\t\tthis.trackingClick = false;\n\t\t\treturn true;\n\t\t}\n\n\t\t// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.\n\t\tif (event.target.type === 'submit' && event.detail === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tpermitted = this.onMouse(event);\n\n\t\t// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.\n\t\tif (!permitted) {\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\t// If clicks are permitted, return true for the action to go through.\n\t\treturn permitted;\n\t};\n\n\n\t/**\n\t * Remove all FastClick's event listeners.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.destroy = function() {\n\t\tvar layer = this.layer;\n\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.removeEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.removeEventListener('click', this.onClick, true);\n\t\tlayer.removeEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.removeEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.removeEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.removeEventListener('touchcancel', this.onTouchCancel, false);\n\t};\n\n\n\t/**\n\t * Check whether FastClick is needed.\n\t *\n\t * @param {Element} layer The layer to listen on\n\t */\n\tFastClick.notNeeded = function(layer) {\n\t\tvar metaViewport;\n\t\tvar chromeVersion;\n\t\tvar blackberryVersion;\n\t\tvar firefoxVersion;\n\n\t\t// Devices that don't support touch don't need FastClick\n\t\tif (typeof window.ontouchstart === 'undefined') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Chrome version - zero for other browsers\n\t\tchromeVersion = +(/Chrome\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (chromeVersion) {\n\n\t\t\tif (deviceIsAndroid) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// Chrome on Android with user-scalable=\"no\" doesn't need FastClick (issue #89)\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Chrome 32 and above with width=device-width or less don't need FastClick\n\t\t\t\t\tif (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Chrome desktop doesn't need FastClick (issue #15)\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (deviceIsBlackBerry10) {\n\t\t\tblackberryVersion = navigator.userAgent.match(/Version\\/([0-9]*)\\.([0-9]*)/);\n\n\t\t\t// BlackBerry 10.3+ does not require Fastclick library.\n\t\t\t// https://github.com/ftlabs/fastclick/issues/251\n\t\t\tif (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// user-scalable=no eliminates click delay.\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// width=device-width (or less than device-width) eliminates click delay.\n\t\t\t\t\tif (document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)\n\t\tif (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Firefox version - zero for other browsers\n\t\tfirefoxVersion = +(/Firefox\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (firefoxVersion >= 27) {\n\t\t\t// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896\n\n\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\t\t\tif (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version\n\t\t// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx\n\t\tif (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Factory method for creating a FastClick object\n\t *\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tFastClick.attach = function(layer, options) {\n\t\treturn new FastClick(layer, options);\n\t};\n\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(function() {\n\t\t\treturn FastClick;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = FastClick.attach;\n\t\tmodule.exports.FastClick = FastClick;\n\t} else {\n\t\twindow.FastClick = FastClick;\n\t}\n}());\n","/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n *\n * Version: 1.3.3\n *\n */\n(function ($) {\n\n $.fn.extend({\n slimScroll: function (options) {\n\n var defaults = {\n // width in pixels of the visible scroll area\n width: 'auto',\n // height in pixels of the visible scroll area\n height: '250px',\n // width in pixels of the scrollbar and rail\n size: '7px',\n // scrollbar color, accepts any hex/color value\n color: '#000',\n // scrollbar position - left/right\n position: 'right',\n // distance in pixels between the side edge and the scrollbar\n distance: '1px',\n // default scroll position on load - top / bottom / $('selector')\n start: 'top',\n // sets scrollbar opacity\n opacity: .4,\n // enables always-on mode for the scrollbar\n alwaysVisible: false,\n // check if we should hide the scrollbar when user is hovering over\n disableFadeOut: false,\n // sets visibility of the rail\n railVisible: false,\n // sets rail color\n railColor: '#333',\n // sets rail opacity\n railOpacity: .2,\n // whether we should use jQuery UI Draggable to enable bar dragging\n railDraggable: true,\n // defautlt CSS class of the slimscroll rail\n railClass: 'slimScrollRail',\n // defautlt CSS class of the slimscroll bar\n barClass: 'slimScrollBar',\n // defautlt CSS class of the slimscroll wrapper\n wrapperClass: 'slimScrollDiv',\n // check if mousewheel should scroll the window if we reach top/bottom\n allowPageScroll: false,\n // scroll amount applied to each mouse wheel step\n wheelStep: 20,\n // scroll amount applied when user is using gestures\n touchScrollStep: 200,\n // sets border radius\n borderRadius: '7px',\n // sets border radius of the rail\n railBorderRadius: '7px'\n };\n\n var o = $.extend(defaults, options);\n\n // do it for every element that matches selector\n this.each(function () {\n\n var isOverPanel, isOverBar, isDragg, queueHide, touchDif,\n barHeight, percentScroll, lastScroll,\n divS = '
            ',\n minBarHeight = 30,\n releaseScroll = false;\n\n // used in event handlers and for better minification\n var me = $(this);\n\n // ensure we are not binding it again\n if (me.parent().hasClass(o.wrapperClass))\n {\n // start from last bar position\n var offset = me.scrollTop();\n\n // find bar and rail\n bar = me.parent().find('.' + o.barClass);\n rail = me.parent().find('.' + o.railClass);\n\n getBarHeight();\n\n // check if we should scroll existing instance\n if ($.isPlainObject(options))\n {\n // Pass height: auto to an existing slimscroll object to force a resize after contents have changed\n if ('height' in options && options.height == 'auto') {\n me.parent().css('height', 'auto');\n me.css('height', 'auto');\n var height = me.parent().parent().height();\n me.parent().css('height', height);\n me.css('height', height);\n }\n\n if ('scrollTo' in options)\n {\n // jump to a static point\n offset = parseInt(o.scrollTo);\n }\n else if ('scrollBy' in options)\n {\n // jump by value pixels\n offset += parseInt(o.scrollBy);\n }\n else if ('destroy' in options)\n {\n // remove slimscroll elements\n bar.remove();\n rail.remove();\n me.unwrap();\n return;\n }\n\n // scroll content by the given offset\n scrollContent(offset, false, true);\n }\n\n return;\n }\n else if ($.isPlainObject(options))\n {\n if ('destroy' in options)\n {\n return;\n }\n }\n\n // optionally set height to the parent's height\n o.height = (o.height == 'auto') ? me.parent().height() : o.height;\n\n // wrap content\n var wrapper = $(divS)\n .addClass(o.wrapperClass)\n .css({\n position: 'relative',\n overflow: 'hidden',\n width: o.width,\n height: o.height\n });\n\n // update style for the div\n me.css({\n overflow: 'hidden',\n width: o.width,\n height: o.height,\n //Fix for IE10\n \"-ms-touch-action\": \"none\"\n });\n\n // create scrollbar rail\n var rail = $(divS)\n .addClass(o.railClass)\n .css({\n width: o.size,\n height: '100%',\n position: 'absolute',\n top: 0,\n display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none',\n 'border-radius': o.railBorderRadius,\n background: o.railColor,\n opacity: o.railOpacity,\n zIndex: 90\n });\n\n // create scrollbar\n var bar = $(divS)\n .addClass(o.barClass)\n .css({\n background: o.color,\n width: o.size,\n position: 'absolute',\n top: 0,\n opacity: o.opacity,\n display: o.alwaysVisible ? 'block' : 'none',\n 'border-radius': o.borderRadius,\n BorderRadius: o.borderRadius,\n MozBorderRadius: o.borderRadius,\n WebkitBorderRadius: o.borderRadius,\n zIndex: 99\n });\n\n // set position\n var posCss = (o.position == 'right') ? {right: o.distance} : {left: o.distance};\n rail.css(posCss);\n bar.css(posCss);\n\n // wrap it\n me.wrap(wrapper);\n\n // append to parent div\n me.parent().append(bar);\n me.parent().append(rail);\n\n // make it draggable and no longer dependent on the jqueryUI\n if (o.railDraggable) {\n bar.bind(\"mousedown\", function (e) {\n var $doc = $(document);\n isDragg = true;\n t = parseFloat(bar.css('top'));\n pageY = e.pageY;\n\n $doc.bind(\"mousemove.slimscroll\", function (e) {\n currTop = t + e.pageY - pageY;\n bar.css('top', currTop);\n scrollContent(0, bar.position().top, false);// scroll content\n });\n\n $doc.bind(\"mouseup.slimscroll\", function (e) {\n isDragg = false;\n hideBar();\n $doc.unbind('.slimscroll');\n });\n return false;\n }).bind(\"selectstart.slimscroll\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n return false;\n });\n }\n\n // on rail over\n rail.hover(function () {\n showBar();\n }, function () {\n hideBar();\n });\n\n // on bar over\n bar.hover(function () {\n isOverBar = true;\n }, function () {\n isOverBar = false;\n });\n\n // show on parent mouseover\n me.hover(function () {\n isOverPanel = true;\n showBar();\n hideBar();\n }, function () {\n isOverPanel = false;\n hideBar();\n });\n\n if (window.navigator.msPointerEnabled) { \n // support for mobile\n me.bind('MSPointerDown', function (e, b) {\n if (e.originalEvent.targetTouches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.targetTouches[0].pageY;\n }\n });\n\n me.bind('MSPointerMove', function (e) {\n // prevent scrolling the page if necessary\n e.originalEvent.preventDefault();\n if (e.originalEvent.targetTouches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.targetTouches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.targetTouches[0].pageY;\n \n }\n });\n } else {\n // support for mobile\n me.bind('touchstart', function (e, b) {\n if (e.originalEvent.touches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n\n me.bind('touchmove', function (e) {\n // prevent scrolling the page if necessary\n if (!releaseScroll)\n {\n e.originalEvent.preventDefault();\n }\n if (e.originalEvent.touches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n }\n\n // set up initial height\n getBarHeight();\n\n // check start position\n if (o.start === 'bottom')\n {\n // scroll content to bottom\n bar.css({top: me.outerHeight() - bar.outerHeight()});\n scrollContent(0, true);\n }\n else if (o.start !== 'top')\n {\n // assume jQuery selector\n scrollContent($(o.start).position().top, null, true);\n\n // make sure bar stays hidden\n if (!o.alwaysVisible) {\n bar.hide();\n }\n }\n\n // attach scroll events\n attachWheel();\n\n function _onWheel(e)\n {\n // use mouse wheel only when mouse is over\n if (!isOverPanel) {\n return;\n }\n\n var e = e || window.event;\n\n var delta = 0;\n if (e.wheelDelta) {\n delta = -e.wheelDelta / 120;\n }\n if (e.detail) {\n delta = e.detail / 3;\n }\n\n var target = e.target || e.srcTarget || e.srcElement;\n if ($(target).closest('.' + o.wrapperClass).is(me.parent())) {\n // scroll content\n scrollContent(delta, true);\n }\n\n // stop window scroll\n if (e.preventDefault && !releaseScroll) {\n e.preventDefault();\n }\n if (!releaseScroll) {\n e.returnValue = false;\n }\n }\n\n function scrollContent(y, isWheel, isJump)\n {\n releaseScroll = false;\n var delta = y;\n var maxTop = me.outerHeight() - bar.outerHeight();\n\n if (isWheel)\n {\n // move bar with mouse wheel\n delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight();\n\n // move bar, make sure it doesn't go out\n delta = Math.min(Math.max(delta, 0), maxTop);\n\n // if scrolling down, make sure a fractional change to the\n // scroll position isn't rounded away when the scrollbar's CSS is set\n // this flooring of delta would happened automatically when\n // bar.css is set below, but we floor here for clarity\n delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta);\n\n // scroll the scrollbar\n bar.css({top: delta + 'px'});\n }\n\n // calculate actual scroll amount\n percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight());\n delta = percentScroll * (me[0].scrollHeight - me.outerHeight());\n\n if (isJump)\n {\n delta = y;\n var offsetTop = delta / me[0].scrollHeight * me.outerHeight();\n offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);\n bar.css({top: offsetTop + 'px'});\n }\n\n // scroll content\n me.scrollTop(delta);\n\n // fire scrolling event\n me.trigger('slimscrolling', ~~delta);\n\n // ensure bar is visible\n showBar();\n\n // trigger hide when scroll is stopped\n hideBar();\n }\n\n function attachWheel()\n {\n if (window.addEventListener)\n {\n this.addEventListener('DOMMouseScroll', _onWheel, false);\n this.addEventListener('mousewheel', _onWheel, false);\n }\n else\n {\n document.attachEvent(\"onmousewheel\", _onWheel)\n }\n }\n\n function getBarHeight()\n {\n // calculate scrollbar height and make sure it is not too small\n barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight);\n bar.css({height: barHeight + 'px'});\n\n // hide scrollbar if content is not long enough\n var display = barHeight == me.outerHeight() ? 'none' : 'block';\n bar.css({display: display});\n }\n\n function showBar()\n {\n // recalculate bar height\n getBarHeight();\n clearTimeout(queueHide);\n\n // when bar reached top or bottom\n if (percentScroll == ~~percentScroll)\n {\n //release wheel\n releaseScroll = o.allowPageScroll;\n\n // publish approporiate event\n if (lastScroll != percentScroll)\n {\n var msg = (~~percentScroll == 0) ? 'top' : 'bottom';\n me.trigger('slimscroll', msg);\n }\n }\n else\n {\n releaseScroll = false;\n }\n lastScroll = percentScroll;\n\n // show only when required\n if (barHeight >= me.outerHeight()) {\n //allow window scroll\n releaseScroll = true;\n return;\n }\n bar.stop(true, true).fadeIn('fast');\n if (o.railVisible) {\n rail.stop(true, true).fadeIn('fast');\n }\n }\n\n function hideBar()\n {\n // only hide when options allow it\n if (!o.alwaysVisible)\n {\n queueHide = setTimeout(function () {\n if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg)\n {\n bar.fadeOut('slow');\n rail.fadeOut('slow');\n }\n }, 1000);\n }\n }\n\n });\n\n // maintain chainability\n return this;\n }\n });\n\n $.fn.extend({\n slimscroll: $.fn.slimScroll\n });\n\n})(jQuery);\n","/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(\"object\"==typeof exports?require(\"jquery\"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split(\"/\"),o=s.map,p=o&&o[\"*\"]||{};if(a&&\".\"===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split(\"/\"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,\"\")),a=n.concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join(\"/\")}else 0===a.indexOf(\"./\")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split(\"/\"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join(\"/\"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join(\"/\")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join(\"/\"))}return a}function g(a,c){return function(){return n.apply(b,v.call(arguments,0).concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error(\"No \"+a);return q[a]}function k(a){var b,c=a?a.indexOf(\"!\"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+\"!\"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return\"undefined\"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:\"\",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,\"undefined\"===v||\"function\"===v){for(c=!c.length&&d.length?[\"require\",\"exports\",\"module\"]:c,n=0;n0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;hc;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b=\"\",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split(\"-\"),d=a;if(1!==c.length){for(var e=0;e\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\"};return\"string\"!=typeof a?a:String(a).replace(/[&<>\"'\\/\\\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if(\"1.7\"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define(\"select2/results\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
              ');return this.options.get(\"multiple\")&&b.attr(\"aria-multiselectable\",\"true\"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var d=a('
            • '),e=this.options.get(\"translations\").get(b.message);d.append(c(e(b.args))),this.$results.append(d)},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"}));a.results=this.sort(a.results);for(var c=0;c-1?b.attr(\"aria-selected\",\"true\"):b.attr(\"aria-selected\",\"false\")});var f=e.filter(\"[aria-selected=true]\");f.length>0?f.first().trigger(\"mouseenter\"):e.first().trigger(\"mouseenter\")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get(\"translations\").get(\"searching\"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=\" loading-results\",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},c.prototype.option=function(b){var c=document.createElement(\"li\");c.className=\"select2-results__option\";var d={role:\"treeitem\",\"aria-selected\":\"false\"};b.disabled&&(delete d[\"aria-selected\"],d[\"aria-disabled\"]=\"true\"),null==b.id&&delete d[\"aria-selected\"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role=\"group\",d[\"aria-label\"]=b.text,delete d[\"aria-selected\"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement(\"strong\");h.className=\"select2-results__group\";{a(h)}this.template(b,h);for(var i=[],j=0;j\",{\"class\":\"select2-results__options select2-results__options--nested\"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,\"data\",b),c},c.prototype.bind=function(b){var c=this,d=b.id+\"-results\";this.$results.attr(\"id\",d),b.on(\"results:all\",function(a){c.clear(),c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"results:append\",function(a){c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"query\",function(a){c.showLoading(a)}),b.on(\"select\",function(){b.isOpen()&&c.setClasses()}),b.on(\"unselect\",function(){b.isOpen()&&c.setClasses()}),b.on(\"open\",function(){c.$results.attr(\"aria-expanded\",\"true\"),c.$results.attr(\"aria-hidden\",\"false\"),c.setClasses(),c.ensureHighlightVisible()}),b.on(\"close\",function(){c.$results.attr(\"aria-expanded\",\"false\"),c.$results.attr(\"aria-hidden\",\"true\"),c.$results.removeAttr(\"aria-activedescendant\")}),b.on(\"results:toggle\",function(){var a=c.getHighlightedResults();0!==a.length&&a.trigger(\"mouseup\")}),b.on(\"results:select\",function(){var a=c.getHighlightedResults();if(0!==a.length){var b=a.data(\"data\");\"true\"==a.attr(\"aria-selected\")?c.trigger(\"close\"):c.trigger(\"select\",{data:b})}}),b.on(\"results:previous\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a);if(0!==d){var e=d-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top,h=f.offset().top,i=c.$results.scrollTop()+(h-g);0===e?c.$results.scrollTop(0):0>h-g&&c.$results.scrollTop(i)}}),b.on(\"results:next\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a),e=d+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top+c.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=c.$results.scrollTop()+h-g;0===e?c.$results.scrollTop(0):h>g&&c.$results.scrollTop(i)}}),b.on(\"results:focus\",function(a){a.element.addClass(\"select2-results__option--highlighted\")}),b.on(\"results:message\",function(a){c.displayMessage(a)}),a.fn.mousewheel&&this.$results.on(\"mousewheel\",function(a){var b=c.$results.scrollTop(),d=c.$results.get(0).scrollHeight-c.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&d<=c.$results.height();e?(c.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(c.$results.scrollTop(c.$results.get(0).scrollHeight-c.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option[aria-selected]\",function(b){var d=a(this),e=d.data(\"data\");return\"true\"===d.attr(\"aria-selected\")?void(c.options.get(\"multiple\")?c.trigger(\"unselect\",{originalEvent:b,data:e}):c.trigger(\"close\")):void c.trigger(\"select\",{originalEvent:b,data:e})}),this.$results.on(\"mouseenter\",\".select2-results__option[aria-selected]\",function(){var b=a(this).data(\"data\");c.getHighlightedResults().removeClass(\"select2-results__option--highlighted\"),c.trigger(\"results:focus\",{data:b,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(\".select2-results__option--highlighted\");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find(\"[aria-selected]\"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get(\"templateResult\"),e=this.options.get(\"escapeMarkup\"),f=d(b);null==f?c.style.display=\"none\":\"string\"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define(\"select2/keys\",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define(\"select2/selection/base\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data(\"old-tabindex\")?this._tabindex=this.$element.data(\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),b.attr(\"title\",this.$element.attr(\"title\")),b.attr(\"tabindex\",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a){var b=this,d=(a.id+\"-container\",a.id+\"-results\");this.container=a,this.$selection.on(\"focus\",function(a){b.trigger(\"focus\",a)}),this.$selection.on(\"blur\",function(a){b.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",function(a){b.trigger(\"keypress\",a),a.which===c.SPACE&&a.preventDefault()}),a.on(\"results:focus\",function(a){b.$selection.attr(\"aria-activedescendant\",a.data._resultId)}),a.on(\"selection:update\",function(a){b.update(a.data)}),a.on(\"open\",function(){b.$selection.attr(\"aria-expanded\",\"true\"),b.$selection.attr(\"aria-owns\",d),b._attachCloseHandler(a)}),a.on(\"close\",function(){b.$selection.attr(\"aria-expanded\",\"false\"),b.$selection.removeAttr(\"aria-activedescendant\"),b.$selection.removeAttr(\"aria-owns\"),b.$selection.focus(),b._detachCloseHandler(a)}),a.on(\"enable\",function(){b.$selection.attr(\"tabindex\",b._tabindex)}),a.on(\"disable\",function(){b.$selection.attr(\"tabindex\",\"-1\")})},d.prototype._attachCloseHandler=function(b){a(document.body).on(\"mousedown.select2.\"+b.id,function(b){var c=a(b.target),d=c.closest(\".select2\"),e=a(\".select2.select2-container--open\");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data(\"element\");c.select2(\"close\")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off(\"mousedown.select2.\"+b.id)},d.prototype.position=function(a,b){var c=b.find(\".selection\");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(){throw new Error(\"The `update` method must be defined in child classes.\")},d}),b.define(\"select2/selection/single\",[\"jquery\",\"./base\",\"../utils\",\"../keys\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--single\"),a.html(''),a},d.prototype.bind=function(a){var b=this;d.__super__.bind.apply(this,arguments);var c=a.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",c),this.$selection.attr(\"aria-labelledby\",c),this.$selection.on(\"mousedown\",function(a){1===a.which&&b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"focus\",function(){}),this.$selection.on(\"blur\",function(){}),a.on(\"selection:update\",function(a){b.update(a.data)})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){return a(\"\")},d.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.display(b),d=this.$selection.find(\".select2-selection__rendered\");d.empty().append(c),d.prop(\"title\",b.title||b.text)},d}),b.define(\"select2/selection/multiple\",[\"jquery\",\"./base\",\"../utils\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--multiple\"),a.html('
                '),a},d.prototype.bind=function(){var b=this;d.__super__.bind.apply(this,arguments),this.$selection.on(\"click\",function(a){b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(c){var d=a(this),e=d.parent(),f=e.data(\"data\");b.trigger(\"unselect\",{originalEvent:c,data:f})})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){var b=a('
              • ×
              • ');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(e)},a}),b.define(\"select2/selection/allowClear\",[\"jquery\",\"../keys\"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(a){d._handleClear(a)}),b.on(\"keypress\",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get(\"disabled\")){var c=this.$selection.find(\".select2-selection__clear\");if(0!==c.length){b.stopPropagation();for(var d=c.data(\"data\"),e=0;e0||0===c.length)){var d=a('×');d.data(\"data\",c),this.$selection.find(\".select2-selection__rendered\").prepend(d)}},c}),b.define(\"select2/selection/search\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find(\"input\");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus()}),b.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\"),e.$search.focus()}),b.on(\"enable\",function(){e.$search.prop(\"disabled\",!1)}),b.on(\"disable\",function(){e.$search.prop(\"disabled\",!0)}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(a){e.trigger(\"focus\",a)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(a){e.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(a){a.stopPropagation(),e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&\"\"===e.$search.val()){var d=e.$searchContainer.prev(\".select2-selection__choice\");if(d.length>0){var f=d.data(\"data\");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on(\"input\",\".select2-search--inline\",function(){e.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input\",\".select2-search--inline\",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr(\"placeholder\",b.text)},d.prototype.update=function(a,b){this.$search.attr(\"placeholder\",\"\"),a.call(this,b),this.$selection.find(\".select2-selection__rendered\").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger(\"unselect\",{data:b}),this.trigger(\"open\"),this.$search.val(b.text+\" \")},d.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var a=\"\";if(\"\"!==this.$search.attr(\"placeholder\"))a=this.$selection.find(\".select2-selection__rendered\").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+\"em\"}this.$search.css(\"width\",a)},d}),b.define(\"select2/selection/eventRelay\",[\"jquery\"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\"],g=[\"opening\",\"closing\",\"selecting\",\"unselecting\"];b.call(this,c,d),c.on(\"*\",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event(\"select2:\"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define(\"select2/translation\",[\"jquery\",\"require\"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define(\"select2/diacritics\",[],function(){var a={\"Ⓐ\":\"A\",\"A\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"B\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"C\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"D\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"DZ\":\"DZ\",\"DŽ\":\"DZ\",\"Dz\":\"Dz\",\"Dž\":\"Dz\",\"Ⓔ\":\"E\",\"E\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"F\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"G\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"H\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"I\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"J\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"K\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"L\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"LJ\":\"LJ\",\"Lj\":\"Lj\",\"Ⓜ\":\"M\",\"M\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"N\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"NJ\":\"NJ\",\"Nj\":\"Nj\",\"Ⓞ\":\"O\",\"O\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"P\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Q\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"R\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"S\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"T\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"U\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"V\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"W\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"X\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Y\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Z\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"a\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"b\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"c\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"d\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"dz\":\"dz\",\"dž\":\"dz\",\"ⓔ\":\"e\",\"e\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"f\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"g\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"h\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"i\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"j\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"k\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"l\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"lj\":\"lj\",\"ⓜ\":\"m\",\"m\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"n\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ʼn\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"nj\":\"nj\",\"ⓞ\":\"o\",\"o\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"p\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"q\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"r\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"s\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"t\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"u\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"v\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"w\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"x\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"y\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"z\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ω\":\"ω\",\"ς\":\"σ\"};return a}),b.define(\"select2/data/base\",[\"../utils\"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error(\"The `current` method must be defined in child classes.\")},b.prototype.query=function(){throw new Error(\"The `query` method must be defined in child classes.\")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+\"-result-\";return d+=a.generateChars(4),d+=null!=c.id?\"-\"+c.id.toString():\"-\"+a.generateChars(4)},b}),b.define(\"select2/data/select\",[\"./base\",\"../utils\",\"jquery\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(\":selected\").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is(\"option\"))return a.element.selected=!0,void this.$element.trigger(\"change\");if(this.$element.prop(\"multiple\"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define(\"select2/data/ajax\",[\"./array\",\"../utils\",\"jquery\"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get(\"debug\")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:\"GET\"},this.ajaxOptions);\"function\"==typeof f.url&&(f.url=f.url(a)),\"function\"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&\"\"!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define(\"select2/data/tags\",[\"jquery\"],function(a){function b(b,c,d){var e=d.get(\"tags\"),f=d.get(\"createTag\");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g0&&b.term.length>this.maximumInputLength?void this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define(\"select2/data/maximumSelectionLength\",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get(\"maximumSelectionLength\"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define(\"select2/dropdown\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define(\"select2/dropdown/search\",[\"jquery\",\"../utils\"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find(\"input\"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on(\"keydown\",function(a){e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on(\"input\",function(){a(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(a){e.handleSearch(a)}),c.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\")}),c.on(\"results:all\",function(a){if(null==a.query.term||\"\"===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass(\"select2-search--hide\"):e.$searchContainer.addClass(\"select2-search--hide\")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define(\"select2/dropdown/hidePlaceholder\",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get(\"placeholder\")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return\"string\"==typeof b&&(b={id:\"\",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define(\"select2/dropdown/infiniteScroll\",[\"jquery\"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on(\"query\",function(a){e.lastParams=a,e.loading=!0}),c.on(\"query:append\",function(a){e.lastParams=a,e.loading=!0}),this.$results.on(\"scroll\",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger(\"query:append\",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
              • '),c=this.options.get(\"translations\").get(\"loadingMore\");return b.html(c(this.lastParams)),b},b}),b.define(\"select2/dropdown/attachBody\",[\"jquery\",\"../utils\"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get(\"dropdownParent\")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on(\"open\",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on(\"results:all\",function(){d._positionDropdown(),d._resizeDropdown()}),b.on(\"results:append\",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on(\"close\",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on(\"mousedown\",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr(\"class\",c.attr(\"class\")),b.removeClass(\"select2\"),b.addClass(\"select2-container--open\"),b.css({position:\"absolute\",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(\"\"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c){var d=this,e=\"scroll.select2.\"+c.id,f=\"resize.select2.\"+c.id,g=\"orientationchange.select2.\"+c.id,h=this.$container.parents().filter(b.hasScroll);h.each(function(){a(this).data(\"select2-scroll-position\",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),h.on(e,function(){var b=a(this).data(\"select2-scroll-position\");a(this).scrollTop(b.y)}),a(window).on(e+\" \"+f+\" \"+g,function(){d._positionDropdown(),d._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c){var d=\"scroll.select2.\"+c.id,e=\"resize.select2.\"+c.id,f=\"orientationchange.select2.\"+c.id,g=this.$container.parents().filter(b.hasScroll);g.off(d),a(window).off(d+\" \"+e+\" \"+f)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass(\"select2-dropdown--above\"),d=this.$dropdown.hasClass(\"select2-dropdown--below\"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom};c||d||(e=\"below\"),k||!j||c?!j&&k&&c&&(e=\"below\"):e=\"above\",(\"above\"==e||c&&\"below\"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass(\"select2-dropdown--below select2-dropdown--above\").addClass(\"select2-dropdown--\"+e),this.$container.removeClass(\"select2-container--below select2-container--above\").addClass(\"select2-container--\"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){this.$dropdownContainer.width();var a={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(a.minWidth=a.width,a.width=\"auto\"),this.$dropdown.css(a)},c.prototype._showDropdown=function(){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define(\"select2/dropdown/minimumResultsForSearch\",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+\"compat/query\");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+\"compat/initSelection\");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+\"compat/dropdownCss\");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+\"compat/containerCss\");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if(\"string\"==typeof l.language)if(l.language.indexOf(\"-\")>0){var H=l.language.split(\"-\"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push(\"en\");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:\"./\",amdLanguageBase:\"./i18n/\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:\"default\",width:\"resolve\"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define(\"select2/options\",[\"require\",\"jquery\",\"./defaults\",\"./utils\"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is(\"input\")){var f=a(this.get(\"amdBase\")+\"compat/inputData\");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=[\"select2\"];null==this.options.multiple&&(this.options.multiple=a.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=a.prop(\"disabled\")),null==this.options.language&&(a.prop(\"lang\")?this.options.language=a.prop(\"lang\").toLowerCase():a.closest(\"[lang]\").prop(\"lang\")&&(this.options.language=a.closest(\"[lang]\").prop(\"lang\"))),null==this.options.dir&&(this.options.dir=a.prop(\"dir\")?a.prop(\"dir\"):a.closest(\"[dir]\").prop(\"dir\")?a.closest(\"[dir]\").prop(\"dir\"):\"ltr\"),a.prop(\"disabled\",this.options.disabled),a.prop(\"multiple\",this.options.multiple),a.data(\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),a.data(\"data\",a.data(\"select2Tags\")),a.data(\"tags\",!0)),a.data(\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),a.attr(\"ajax--url\",a.data(\"ajaxUrl\")),a.data(\"ajax--url\",a.data(\"ajaxUrl\")));var e={};e=b.fn.jquery&&\"1.\"==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define(\"select2/core\",[\"jquery\",\"./options\",\"./utils\",\"./keys\"],function(a,b,c,d){var e=function(a,c){null!=a.data(\"select2\")&&a.data(\"select2\").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr(\"tabindex\")||0;a.data(\"old-tabindex\",d),a.attr(\"tabindex\",\"-1\");var f=this.options.get(\"dataAdapter\");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get(\"selectionAdapter\");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get(\"dropdownAdapter\");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get(\"resultsAdapter\");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger(\"selection:update\",{data:a})}),a.addClass(\"select2-hidden-accessible\"),a.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),a.data(\"select2\",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b=\"\";return b=null!=a.attr(\"id\")?a.attr(\"id\"):null!=a.attr(\"name\")?a.attr(\"name\")+\"-\"+c.generateChars(2):c.generateChars(4),b=\"select2-\"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=b&&a.css(\"width\",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if(\"resolve\"==b){var d=this._resolveWidth(a,\"style\");return null!=d?d:this._resolveWidth(a,\"element\")}if(\"element\"==b){var e=a.outerWidth(!1);return 0>=e?\"auto\":e+\"px\"}if(\"style\"==b){var f=a.attr(\"style\");if(\"string\"!=typeof f)return null;for(var g=f.split(\";\"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\\s/g,\"\"),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on(\"change.select2\",function(){b.dataAdapter.current(function(a){b.trigger(\"selection:update\",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent(\"onpropertychange\",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener(\"DOMAttrModified\",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=[\"toggle\"];this.selection.on(\"toggle\",function(){b.toggleDropdown()}),this.selection.on(\"*\",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on(\"open\",function(){a.$container.addClass(\"select2-container--open\")}),this.on(\"close\",function(){a.$container.removeClass(\"select2-container--open\")}),this.on(\"enable\",function(){a.$container.removeClass(\"select2-container--disabled\")}),this.on(\"disable\",function(){a.$container.addClass(\"select2-container--disabled\")}),this.on(\"focus\",function(){a.$container.addClass(\"select2-container--focus\")}),this.on(\"blur\",function(){a.$container.removeClass(\"select2-container--focus\")}),this.on(\"query\",function(b){a.isOpen()||a.trigger(\"open\"),this.dataAdapter.query(b,function(c){a.trigger(\"results:all\",{data:c,query:b})})}),this.on(\"query:append\",function(b){this.dataAdapter.query(b,function(c){a.trigger(\"results:append\",{data:c,query:b})})}),this.on(\"keypress\",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger(\"results:select\"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger(\"results:toggle\"),b.preventDefault()):c===d.UP?(a.trigger(\"results:previous\"),b.preventDefault()):c===d.DOWN?(a.trigger(\"results:next\"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.options.get(\"disabled\")?(this.isOpen()&&this.close(),this.trigger(\"disable\")):this.trigger(\"enable\")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get(\"disabled\")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger(\"query\",{}),this.trigger(\"open\"))},e.prototype.close=function(){this.isOpen()&&this.trigger(\"close\")},e.prototype.isOpen=function(){return this.$container.hasClass(\"select2-container--open\")},e.prototype.enable=function(a){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop(\"disabled\",b)},e.prototype.data=function(){this.options.get(\"debug\")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger(\"change\")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent(\"onpropertychange\",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener(\"DOMAttrModified\",this._sync,!1),this._sync=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",this.$element.data(\"old-tabindex\")),this.$element.removeClass(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$container=b,this.$container.addClass(\"select2-container--\"+this.options.get(\"theme\")),b.data(\"element\",this.$element),b},e}),b.define(\"select2/compat/utils\",[\"jquery\"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0===this.indexOf(\"select2-\")&&g.push(this)})),e=a.trim(c.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0!==this.indexOf(\"select2-\")&&(f=d(this),null!=f&&g.push(f))})),b.attr(\"class\",g.join(\" \"))}return{syncCssClasses:b}}),b.define(\"select2/compat/containerCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"containerCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptContainerCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"containerCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/dropdownCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"dropdownCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptDropdownCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"dropdownCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/initSelection\",[\"jquery\"],function(a){function b(a,b,c){c.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2\"),this.initSelection=c.get(\"initSelection\"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;return this._isInitialized?void b.call(this,c):void this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define(\"select2/compat/inputData\",[\"jquery\"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get(\"valueSeparator\")||\",\",\"hidden\"===b.prop(\"type\")&&c.get(\"debug\")&&console&&console.warn&&console.warn(\"Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `';\n }\n that.header.stateField = column.field;\n }\n if (column.radio) {\n text = '';\n that.header.stateField = column.field;\n that.options.singleSelect = true;\n }\n\n html.push(text);\n html.push('
                ');\n html.push('
                ');\n html.push('');\n html.push('');\n });\n html.push('');\n });\n\n this.$header.html(html.join(''));\n this.$header.find('th[data-field]').each(function (i) {\n $(this).data(visibleColumns[$(this).data('field')]);\n });\n this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) {\n if (that.options.sortable && $(this).parent().data().sortable) {\n that.onSort(event);\n }\n });\n\n this.$header.children().children().off('keypress').on('keypress', function (event) {\n if (that.options.sortable && $(this).data().sortable) {\n var code = event.keyCode || event.which;\n if (code == 13) { //Enter keycode\n that.onSort(event);\n }\n }\n });\n\n if (!this.options.showHeader || this.options.cardView) {\n this.$header.hide();\n this.$tableHeader.hide();\n this.$tableLoading.css('top', 0);\n } else {\n this.$header.show();\n this.$tableHeader.show();\n this.$tableLoading.css('top', this.$header.outerHeight() + 1);\n // Assign the correct sortable arrow\n this.getCaret();\n }\n\n this.$selectAll = this.$header.find('[name=\"btSelectAll\"]');\n this.$container.off('click', '[name=\"btSelectAll\"]')\n .on('click', '[name=\"btSelectAll\"]', function () {\n var checked = $(this).prop('checked');\n that[checked ? 'checkAll' : 'uncheckAll']();\n that.updateSelected();\n });\n };\n\n BootstrapTable.prototype.initFooter = function () {\n if (!this.options.showFooter || this.options.cardView) {\n this.$tableFooter.hide();\n } else {\n this.$tableFooter.show();\n }\n };\n\n /**\n * @param data\n * @param type: append / prepend\n */\n BootstrapTable.prototype.initData = function (data, type) {\n if (type === 'append') {\n this.data = this.data.concat(data);\n } else if (type === 'prepend') {\n this.data = [].concat(data).concat(this.data);\n } else {\n this.data = data || this.options.data;\n }\n\n // Fix #839 Records deleted when adding new row on filtered table\n if (type === 'append') {\n this.options.data = this.options.data.concat(data);\n } else if (type === 'prepend') {\n this.options.data = [].concat(data).concat(this.options.data);\n } else {\n this.options.data = this.data;\n }\n\n if (this.options.sidePagination === 'server') {\n return;\n }\n this.initSort();\n };\n\n BootstrapTable.prototype.initSort = function () {\n var that = this,\n name = this.options.sortName,\n order = this.options.sortOrder === 'desc' ? -1 : 1,\n index = $.inArray(this.options.sortName, this.header.fields);\n\n if (index !== -1) {\n this.data.sort(function (a, b) {\n if (that.header.sortNames[index]) {\n name = that.header.sortNames[index];\n }\n var aa = getItemField(a, name),\n bb = getItemField(b, name),\n value = calculateObjectValue(that.header, that.header.sorters[index], [aa, bb]);\n\n if (value !== undefined) {\n return order * value;\n }\n\n // Fix #161: undefined or null string sort bug.\n if (aa === undefined || aa === null) {\n aa = '';\n }\n if (bb === undefined || bb === null) {\n bb = '';\n }\n\n // IF both values are numeric, do a numeric comparison\n if ($.isNumeric(aa) && $.isNumeric(bb)) {\n // Convert numerical values form string to float.\n aa = parseFloat(aa);\n bb = parseFloat(bb);\n if (aa < bb) {\n return order * -1;\n }\n return order;\n }\n\n if (aa === bb) {\n return 0;\n }\n\n // If value is not a string, convert to string\n if (typeof aa !== 'string') {\n aa = aa.toString();\n }\n\n if (aa.localeCompare(bb) === -1) {\n return order * -1;\n }\n\n return order;\n });\n }\n };\n\n BootstrapTable.prototype.onSort = function (event) {\n var $this = event.type === \"keypress\" ? $(event.currentTarget) : $(event.currentTarget).parent(),\n $this_ = this.$header.find('th').eq($this.index());\n\n this.$header.add(this.$header_).find('span.order').remove();\n\n if (this.options.sortName === $this.data('field')) {\n this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';\n } else {\n this.options.sortName = $this.data('field');\n this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';\n }\n this.trigger('sort', this.options.sortName, this.options.sortOrder);\n\n $this.add($this_).data('order', this.options.sortOrder);\n\n // Assign the correct sortable arrow\n this.getCaret();\n\n if (this.options.sidePagination === 'server') {\n this.initServer(this.options.silentSort);\n return;\n }\n\n this.initSort();\n this.initBody();\n };\n\n BootstrapTable.prototype.initToolbar = function () {\n var that = this,\n html = [],\n timeoutId = 0,\n $keepOpen,\n $search,\n switchableCount = 0;\n\n this.$toolbar.html('');\n\n if (typeof this.options.toolbar === 'string' || typeof this.options.toolbar === 'object') {\n $(sprintf('
                ', this.options.toolbarAlign))\n .appendTo(this.$toolbar)\n .append($(this.options.toolbar));\n }\n\n // showColumns, showToggle, showRefresh\n html = [sprintf('
                ',\n this.options.buttonsAlign, this.options.buttonsAlign)];\n\n if (typeof this.options.icons === 'string') {\n this.options.icons = calculateObjectValue(null, this.options.icons);\n }\n\n if (this.options.showPaginationSwitch) {\n html.push(sprintf('');\n }\n\n if (this.options.showRefresh) {\n html.push(sprintf('');\n }\n\n if (this.options.showToggle) {\n html.push(sprintf('');\n }\n\n if (this.options.showColumns) {\n html.push(sprintf('
                ',\n this.options.formatColumns()),\n '',\n '
                  ');\n\n $.each(this.columns, function (i, column) {\n if (column.radio || column.checkbox) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n var checked = column.visible ? ' checked=\"checked\"' : '';\n\n if (column.switchable) {\n html.push(sprintf('
                • ' +\n '' +\n '
                • ', column.field, i, checked, column.title));\n switchableCount++;\n }\n });\n html.push('
                ',\n '
                ');\n }\n\n html.push('
                ');\n\n // Fix #188: this.showToolbar is for extentions\n if (this.showToolbar || html.length > 2) {\n this.$toolbar.append(html.join(''));\n }\n\n if (this.options.showPaginationSwitch) {\n this.$toolbar.find('button[name=\"paginationSwitch\"]')\n .off('click').on('click', $.proxy(this.togglePagination, this));\n }\n\n if (this.options.showRefresh) {\n this.$toolbar.find('button[name=\"refresh\"]')\n .off('click').on('click', $.proxy(this.refresh, this));\n }\n\n if (this.options.showToggle) {\n this.$toolbar.find('button[name=\"toggle\"]')\n .off('click').on('click', function () {\n that.toggleView();\n });\n }\n\n if (this.options.showColumns) {\n $keepOpen = this.$toolbar.find('.keep-open');\n\n if (switchableCount <= this.options.minimumCountColumns) {\n $keepOpen.find('input').prop('disabled', true);\n }\n\n $keepOpen.find('li').off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n });\n $keepOpen.find('input').off('click').on('click', function () {\n var $this = $(this);\n\n that.toggleColumn(getFieldIndex(that.columns,\n $(this).data('field')), $this.prop('checked'), false);\n that.trigger('column-switch', $(this).data('field'), $this.prop('checked'));\n });\n }\n\n if (this.options.search) {\n html = [];\n html.push(\n '
                ',\n sprintf('',\n this.options.formatSearch()),\n '
                ');\n\n this.$toolbar.append(html.join(''));\n $search = this.$toolbar.find('.search input');\n $search.off('keyup drop').on('keyup drop', function (event) {\n clearTimeout(timeoutId); // doesn't matter if it's 0\n timeoutId = setTimeout(function () {\n that.onSearch(event);\n }, that.options.searchTimeOut);\n });\n }\n };\n\n BootstrapTable.prototype.onSearch = function (event) {\n var text = $.trim($(event.currentTarget).val());\n\n // trim search input\n if (this.options.trimOnSearch && $(event.currentTarget).val() !== text) {\n $(event.currentTarget).val(text);\n }\n\n if (text === this.searchText) {\n return;\n }\n this.searchText = text;\n\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n this.trigger('search', text);\n };\n\n BootstrapTable.prototype.initSearch = function () {\n var that = this;\n\n if (this.options.sidePagination !== 'server') {\n var s = this.searchText && this.searchText.toLowerCase();\n var f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns;\n\n // Check filter\n this.data = f ? $.grep(this.options.data, function (item, i) {\n for (var key in f) {\n if ($.isArray(f[key])) {\n if ($.inArray(item[key], f[key]) === -1) {\n return false;\n }\n } else if (item[key] !== f[key]) {\n return false;\n }\n }\n return true;\n }) : this.options.data;\n\n this.data = s ? $.grep(this.data, function (item, i) {\n for (var key in item) {\n key = $.isNumeric(key) ? parseInt(key, 10) : key;\n var value = item[key],\n column = that.columns[getFieldIndex(that.columns, key)],\n j = $.inArray(key, that.header.fields);\n\n // Fix #142: search use formated data\n if (column && column.searchFormatter) {\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n }\n\n var index = $.inArray(key, that.header.fields);\n if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {\n if (that.options.strictSearch) {\n if ((value + '').toLowerCase() === s) {\n return true;\n }\n } else {\n if ((value + '').toLowerCase().indexOf(s) !== -1) {\n return true;\n }\n }\n }\n }\n return false;\n }) : this.data;\n }\n };\n\n BootstrapTable.prototype.initPagination = function () {\n if (!this.options.pagination) {\n this.$pagination.hide();\n return;\n } else {\n this.$pagination.show();\n }\n\n var that = this,\n html = [],\n $allSelected = false,\n i, from, to,\n $pageList,\n $first, $pre,\n $next, $last,\n $number,\n data = this.getData();\n\n if (this.options.sidePagination !== 'server') {\n this.options.totalRows = data.length;\n }\n\n this.totalPages = 0;\n if (this.options.totalRows) {\n if (this.options.pageSize === this.options.formatAllRows()) {\n this.options.pageSize = this.options.totalRows;\n $allSelected = true;\n } else if (this.options.pageSize === this.options.totalRows) {\n // Fix #667 Table with pagination,\n // multiple pages and a search that matches to one page throws exception\n var pageLst = typeof this.options.pageList === 'string' ?\n this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').toLowerCase().split(',') : this.options.pageList;\n if ($.inArray(this.options.formatAllRows().toLowerCase(), pageLst) > -1) {\n $allSelected = true;\n }\n }\n\n this.totalPages = ~~((this.options.totalRows - 1) / this.options.pageSize) + 1;\n\n this.options.totalPages = this.totalPages;\n }\n if (this.totalPages > 0 && this.options.pageNumber > this.totalPages) {\n this.options.pageNumber = this.totalPages;\n }\n\n this.pageFrom = (this.options.pageNumber - 1) * this.options.pageSize + 1;\n this.pageTo = this.options.pageNumber * this.options.pageSize;\n if (this.pageTo > this.options.totalRows) {\n this.pageTo = this.options.totalRows;\n }\n\n html.push(\n '
                ',\n '',\n this.options.onlyInfoPagination ? this.options.formatDetailPagination(this.options.totalRows) :\n this.options.formatShowingRows(this.pageFrom, this.pageTo, this.options.totalRows),\n '');\n\n if (!this.options.onlyInfoPagination) {\n html.push('');\n\n var pageNumber = [\n sprintf('',\n this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?\n 'dropdown' : 'dropup'),\n '',\n '
                  '\n ],\n pageList = this.options.pageList;\n\n if (typeof this.options.pageList === 'string') {\n var list = this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').split(',');\n\n pageList = [];\n $.each(list, function (i, value) {\n pageList.push(value.toUpperCase() === that.options.formatAllRows().toUpperCase() ?\n that.options.formatAllRows() : +value);\n });\n }\n\n $.each(pageList, function (i, page) {\n if (!that.options.smartDisplay || i === 0 || pageList[i - 1] <= that.options.totalRows) {\n var active;\n if ($allSelected) {\n active = page === that.options.formatAllRows() ? ' class=\"active\"' : '';\n } else {\n active = page === that.options.pageSize ? ' class=\"active\"' : '';\n }\n pageNumber.push(sprintf('%s', active, page));\n }\n });\n pageNumber.push('
                ');\n\n html.push(this.options.formatRecordsPerPage(pageNumber.join('')));\n html.push('
                ');\n\n html.push('
                ',\n '
                ',\n '',\n '
                ');\n\n }\n this.$pagination.html(html.join(''));\n\n if (!this.options.onlyInfoPagination) {\n $pageList = this.$pagination.find('.page-list a');\n $first = this.$pagination.find('.page-first');\n $pre = this.$pagination.find('.page-pre');\n $next = this.$pagination.find('.page-next');\n $last = this.$pagination.find('.page-last');\n $number = this.$pagination.find('.page-number');\n\n if (this.options.pageNumber <= 1) {\n $first.addClass('disabled');\n $pre.addClass('disabled');\n }\n if (this.options.pageNumber >= this.totalPages) {\n $next.addClass('disabled');\n $last.addClass('disabled');\n }\n if (this.options.smartDisplay) {\n if (this.totalPages <= 1) {\n this.$pagination.find('div.pagination').hide();\n }\n if (pageList.length < 2 || this.options.totalRows <= pageList[0]) {\n this.$pagination.find('span.page-list').hide();\n }\n\n // when data is empty, hide the pagination\n this.$pagination[this.getData().length ? 'show' : 'hide']();\n }\n if ($allSelected) {\n this.options.pageSize = this.options.formatAllRows();\n }\n $pageList.off('click').on('click', $.proxy(this.onPageListChange, this));\n $first.off('click').on('click', $.proxy(this.onPageFirst, this));\n $pre.off('click').on('click', $.proxy(this.onPagePre, this));\n $next.off('click').on('click', $.proxy(this.onPageNext, this));\n $last.off('click').on('click', $.proxy(this.onPageLast, this));\n $number.off('click').on('click', $.proxy(this.onPageNumber, this));\n }\n };\n\n BootstrapTable.prototype.updatePagination = function (event) {\n // Fix #171: IE disabled button can be clicked bug.\n if (event && $(event.currentTarget).hasClass('disabled')) {\n return;\n }\n\n if (!this.options.maintainSelected) {\n this.resetRows();\n }\n\n this.initPagination();\n if (this.options.sidePagination === 'server') {\n this.initServer();\n } else {\n this.initBody();\n }\n\n this.trigger('page-change', this.options.pageNumber, this.options.pageSize);\n };\n\n BootstrapTable.prototype.onPageListChange = function (event) {\n var $this = $(event.currentTarget);\n\n $this.parent().addClass('active').siblings().removeClass('active');\n this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ?\n this.options.formatAllRows() : +$this.text();\n this.$toolbar.find('.page-size').text(this.options.pageSize);\n\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageFirst = function (event) {\n this.options.pageNumber = 1;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPagePre = function (event) {\n this.options.pageNumber--;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNext = function (event) {\n this.options.pageNumber++;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageLast = function (event) {\n this.options.pageNumber = this.totalPages;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNumber = function (event) {\n if (this.options.pageNumber === +$(event.currentTarget).text()) {\n return;\n }\n this.options.pageNumber = +$(event.currentTarget).text();\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.initBody = function (fixedScroll) {\n var that = this,\n html = [],\n data = this.getData();\n\n this.trigger('pre-body', data);\n\n this.$body = this.$el.find('>tbody');\n if (!this.$body.length) {\n this.$body = $('').appendTo(this.$el);\n }\n\n //Fix #389 Bootstrap-table-flatJSON is not working\n\n if (!this.options.pagination || this.options.sidePagination === 'server') {\n this.pageFrom = 1;\n this.pageTo = data.length;\n }\n\n for (var i = this.pageFrom - 1; i < this.pageTo; i++) {\n var key,\n item = data[i],\n style = {},\n csses = [],\n data_ = '',\n attributes = {},\n htmlAttributes = [];\n\n style = calculateObjectValue(this.options, this.options.rowStyle, [item, i], style);\n\n if (style && style.css) {\n for (key in style.css) {\n csses.push(key + ': ' + style.css[key]);\n }\n }\n\n attributes = calculateObjectValue(this.options,\n this.options.rowAttributes, [item, i], attributes);\n\n if (attributes) {\n for (key in attributes) {\n htmlAttributes.push(sprintf('%s=\"%s\"', key, escapeHTML(attributes[key])));\n }\n }\n\n if (item._data && !$.isEmptyObject(item._data)) {\n $.each(item._data, function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n html.push(''\n );\n\n if (this.options.cardView) {\n html.push(sprintf('', this.header.fields.length));\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('',\n '',\n sprintf('', this.options.iconsPrefix, this.options.icons.detailOpen),\n '',\n '');\n }\n\n $.each(this.header.fields, function (j, field) {\n var text = '',\n value = getItemField(item, field),\n type = '',\n cellStyle = {},\n id_ = '',\n class_ = that.header.classes[j],\n data_ = '',\n rowspan_ = '',\n title_ = '',\n column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n\n style = sprintf('style=\"%s\"', csses.concat(that.header.styles[j]).join('; '));\n\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n\n // handle td's id and class\n if (item['_' + field + '_id']) {\n id_ = sprintf(' id=\"%s\"', item['_' + field + '_id']);\n }\n if (item['_' + field + '_class']) {\n class_ = sprintf(' class=\"%s\"', item['_' + field + '_class']);\n }\n if (item['_' + field + '_rowspan']) {\n rowspan_ = sprintf(' rowspan=\"%s\"', item['_' + field + '_rowspan']);\n }\n if (item['_' + field + '_title']) {\n title_ = sprintf(' title=\"%s\"', item['_' + field + '_title']);\n }\n cellStyle = calculateObjectValue(that.header,\n that.header.cellStyles[j], [value, item, i], cellStyle);\n if (cellStyle.classes) {\n class_ = sprintf(' class=\"%s\"', cellStyle.classes);\n }\n if (cellStyle.css) {\n var csses_ = [];\n for (var key in cellStyle.css) {\n csses_.push(key + ': ' + cellStyle.css[key]);\n }\n style = sprintf('style=\"%s\"', csses_.concat(that.header.styles[j]).join('; '));\n }\n\n if (item['_' + field + '_data'] && !$.isEmptyObject(item['_' + field + '_data'])) {\n $.each(item['_' + field + '_data'], function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n if (column.checkbox || column.radio) {\n type = column.checkbox ? 'checkbox' : type;\n type = column.radio ? 'radio' : type;\n\n text = [that.options.cardView ?\n '
                ' : '',\n '',\n that.header.formatters[j] && typeof value === 'string' ? value : '',\n that.options.cardView ? '
                ' : ''\n ].join('');\n\n item[that.header.stateField] = value === true || (value && value.checked);\n } else {\n value = typeof value === 'undefined' || value === null ?\n that.options.undefinedText : value;\n\n text = that.options.cardView ? ['
                ',\n that.options.showHeader ? sprintf('%s', style,\n getPropertyFromOther(that.columns, 'field', 'title', field)) : '',\n sprintf('%s', value),\n '
                '\n ].join('') : [sprintf('', id_, class_, style, data_, rowspan_, title_),\n value,\n ''\n ].join('');\n\n // Hide empty data on Card view when smartDisplay is set to true.\n if (that.options.cardView && that.options.smartDisplay && value === '') {\n // Should set a placeholder for event binding correct fieldIndex\n text = '
                ';\n }\n }\n\n html.push(text);\n });\n\n if (this.options.cardView) {\n html.push('');\n }\n\n html.push('');\n }\n\n // show no records\n if (!html.length) {\n html.push('',\n sprintf('%s',\n this.$header.find('th').length, this.options.formatNoMatches()),\n '');\n }\n\n this.$body.html(html.join(''));\n\n if (!fixedScroll) {\n this.scrollTo(0);\n }\n\n // click to select by column\n this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {\n var $td = $(this),\n $tr = $td.parent(),\n item = that.data[$tr.data('index')],\n index = $td[0].cellIndex,\n field = that.header.fields[that.options.detailView && !that.options.cardView ? index - 1 : index],\n column = that.columns[getFieldIndex(that.columns, field)],\n value = getItemField(item, field);\n\n if ($td.find('.detail-icon').length) {\n return;\n }\n\n that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);\n that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr);\n\n // if click to select - then trigger the checkbox/radio click\n if (e.type === 'click' && that.options.clickToSelect && column.clickToSelect) {\n var $selectItem = $tr.find(sprintf('[name=\"%s\"]', that.options.selectItemName));\n if ($selectItem.length) {\n $selectItem[0].click(); // #144: .trigger('click') bug\n }\n }\n });\n\n this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function () {\n var $this = $(this),\n $tr = $this.parent().parent(),\n index = $tr.data('index'),\n row = data[index]; // Fix #980 Detail view, when searching, returns wrong row\n\n // remove and update\n if ($tr.next().is('tr.detail-view')) {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailOpen));\n $tr.next().remove();\n that.trigger('collapse-row', index, row);\n } else {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailClose));\n $tr.after(sprintf('%s',\n $tr.find('td').length, calculateObjectValue(that.options,\n that.options.detailFormatter, [index, row], '')));\n that.trigger('expand-row', index, row, $tr.next().find('td'));\n }\n that.resetView();\n });\n\n this.$selectItem = this.$body.find(sprintf('[name=\"%s\"]', this.options.selectItemName));\n this.$selectItem.off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n\n var $this = $(this),\n checked = $this.prop('checked'),\n row = that.data[$this.data('index')];\n\n if (that.options.maintainSelected && $(this).is(':radio')) {\n $.each(that.options.data, function (i, row) {\n row[that.header.stateField] = false;\n });\n }\n\n row[that.header.stateField] = checked;\n\n if (that.options.singleSelect) {\n that.$selectItem.not(this).each(function () {\n that.data[$(this).data('index')][that.header.stateField] = false;\n });\n that.$selectItem.filter(':checked').not(this).prop('checked', false);\n }\n\n that.updateSelected();\n that.trigger(checked ? 'check' : 'uncheck', row, $this);\n });\n\n $.each(this.header.events, function (i, events) {\n if (!events) {\n return;\n }\n // fix bug, if events is defined with namespace\n if (typeof events === 'string') {\n events = calculateObjectValue(null, events);\n }\n\n var field = that.header.fields[i],\n fieldIndex = $.inArray(field, that.getVisibleFields());\n\n if (that.options.detailView && !that.options.cardView) {\n fieldIndex += 1;\n }\n\n for (var key in events) {\n that.$body.find('>tr:not(.no-records-found)').each(function () {\n var $tr = $(this),\n $td = $tr.find(that.options.cardView ? '.card-view' : 'td').eq(fieldIndex),\n index = key.indexOf(' '),\n name = key.substring(0, index),\n el = key.substring(index + 1),\n func = events[key];\n\n $td.find(el).off(name).on(name, function (e) {\n var index = $tr.data('index'),\n row = that.data[index],\n value = row[field];\n\n func.apply(this, [e, value, row, index]);\n });\n });\n }\n });\n\n this.updateSelected();\n this.resetView();\n\n this.trigger('post-body');\n };\n\n BootstrapTable.prototype.initServer = function (silent, query) {\n var that = this,\n data = {},\n params = {\n pageSize: this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize,\n pageNumber: this.options.pageNumber,\n searchText: this.searchText,\n sortName: this.options.sortName,\n sortOrder: this.options.sortOrder\n },\n request;\n\n if (!this.options.url && !this.options.ajax) {\n return;\n }\n\n if (this.options.queryParamsType === 'limit') {\n params = {\n search: params.searchText,\n sort: params.sortName,\n order: params.sortOrder\n };\n if (this.options.pagination) {\n params.limit = this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize;\n params.offset = this.options.pageSize === this.options.formatAllRows() ?\n 0 : this.options.pageSize * (this.options.pageNumber - 1);\n }\n }\n\n if (!($.isEmptyObject(this.filterColumnsPartial))) {\n params['filter'] = JSON.stringify(this.filterColumnsPartial, null);\n }\n\n data = calculateObjectValue(this.options, this.options.queryParams, [params], data);\n\n $.extend(data, query || {});\n\n // false to stop request\n if (data === false) {\n return;\n }\n\n if (!silent) {\n this.$tableLoading.show();\n }\n request = $.extend({}, calculateObjectValue(null, this.options.ajaxOptions), {\n type: this.options.method,\n url: this.options.url,\n data: this.options.contentType === 'application/json' && this.options.method === 'post' ?\n JSON.stringify(data) : data,\n cache: this.options.cache,\n contentType: this.options.contentType,\n dataType: this.options.dataType,\n success: function (res) {\n res = calculateObjectValue(that.options, that.options.responseHandler, [res], res);\n\n that.load(res);\n that.trigger('load-success', res);\n },\n error: function (res) {\n that.trigger('load-error', res.status, res);\n },\n complete: function () {\n if (!silent) {\n that.$tableLoading.hide();\n }\n }\n });\n\n if (this.options.ajax) {\n calculateObjectValue(this, this.options.ajax, [request], null);\n } else {\n $.ajax(request);\n }\n };\n\n BootstrapTable.prototype.initSearchText = function () {\n if (this.options.search) {\n if (this.options.searchText !== '') {\n var $search = this.$toolbar.find('.search input');\n $search.val(this.options.searchText);\n this.onSearch({currentTarget: $search});\n }\n }\n };\n\n BootstrapTable.prototype.getCaret = function () {\n var that = this;\n\n $.each(this.$header.find('th'), function (i, th) {\n $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === that.options.sortName ? that.options.sortOrder : 'both');\n });\n };\n\n BootstrapTable.prototype.updateSelected = function () {\n var checkAll = this.$selectItem.filter(':enabled').length &&\n this.$selectItem.filter(':enabled').length ===\n this.$selectItem.filter(':enabled').filter(':checked').length;\n\n this.$selectAll.add(this.$selectAll_).prop('checked', checkAll);\n\n this.$selectItem.each(function () {\n $(this).closest('tr')[$(this).prop('checked') ? 'addClass' : 'removeClass']('selected');\n });\n };\n\n BootstrapTable.prototype.updateRows = function () {\n var that = this;\n\n this.$selectItem.each(function () {\n that.data[$(this).data('index')][that.header.stateField] = $(this).prop('checked');\n });\n };\n\n BootstrapTable.prototype.resetRows = function () {\n var that = this;\n\n $.each(this.data, function (i, row) {\n that.$selectAll.prop('checked', false);\n that.$selectItem.prop('checked', false);\n if (that.header.stateField) {\n row[that.header.stateField] = false;\n }\n });\n };\n\n BootstrapTable.prototype.trigger = function (name) {\n var args = Array.prototype.slice.call(arguments, 1);\n\n name += '.bs.table';\n this.options[BootstrapTable.EVENTS[name]].apply(this.options, args);\n this.$el.trigger($.Event(name), args);\n\n this.options.onAll(name, args);\n this.$el.trigger($.Event('all.bs.table'), [name, args]);\n };\n\n BootstrapTable.prototype.resetHeader = function () {\n // fix #61: the hidden table reset header bug.\n // fix bug: get $el.css('width') error sometime (height = 500)\n clearTimeout(this.timeoutId_);\n this.timeoutId_ = setTimeout($.proxy(this.fitHeader, this), this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitHeader = function () {\n var that = this,\n fixedBody,\n scrollWidth,\n focused,\n focusedTemp;\n\n if (that.$el.is(':hidden')) {\n that.timeoutId_ = setTimeout($.proxy(that.fitHeader, that), 100);\n return;\n }\n fixedBody = this.$tableBody.get(0);\n\n scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth &&\n fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ?\n getScrollBarWidth() : 0;\n\n this.$el.css('margin-top', -this.$header.outerHeight());\n\n focused = $(':focus');\n if (focused.length > 0) {\n var $th = focused.parents('th');\n if ($th.length > 0) {\n var dataField = $th.attr('data-field');\n if (dataField !== undefined) {\n var $headerTh = this.$header.find(\"[data-field='\" + dataField + \"']\");\n if ($headerTh.length > 0) {\n $headerTh.find(\":input\").addClass(\"focus-temp\");\n }\n }\n }\n }\n\n this.$header_ = this.$header.clone(true, true);\n this.$selectAll_ = this.$header_.find('[name=\"btSelectAll\"]');\n this.$tableHeader.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', this.$el.outerWidth())\n .html('').attr('class', this.$el.attr('class'))\n .append(this.$header_);\n\n\n focusedTemp = $('.focus-temp:visible:eq(0)');\n if (focusedTemp.length > 0) {\n focusedTemp.focus();\n this.$header.find('.focus-temp').removeClass('focus-temp');\n }\n\n // fix bug: $.data() is not working as expected after $.append()\n this.$header.find('th[data-field]').each(function (i) {\n that.$header_.find(sprintf('th[data-field=\"%s\"]', $(this).data('field'))).data($(this).data());\n });\n\n var visibleFields = this.getVisibleFields();\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this),\n index = i;\n\n if (that.options.detailView && !that.options.cardView) {\n if (i === 0) {\n that.$header_.find('th.detail').find('.fht-cell').width($this.innerWidth());\n }\n index = i - 1;\n }\n\n that.$header_.find(sprintf('th[data-field=\"%s\"]', visibleFields[index]))\n .find('.fht-cell').width($this.innerWidth());\n });\n // horizontal scroll event\n // TODO: it's probably better improving the layout than binding to scroll event\n this.$tableBody.off('scroll').on('scroll', function () {\n that.$tableHeader.scrollLeft($(this).scrollLeft());\n\n if (that.options.showFooter && !that.options.cardView) {\n that.$tableFooter.scrollLeft($(this).scrollLeft());\n }\n });\n that.trigger('post-header');\n };\n\n BootstrapTable.prototype.resetFooter = function () {\n var that = this,\n data = that.getData(),\n html = [];\n\n if (!this.options.showFooter || this.options.cardView) { //do nothing\n return;\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('
                 
                ');\n }\n\n $.each(this.columns, function (i, column) {\n var falign = '', // footer align style\n style = '',\n class_ = sprintf(' class=\"%s\"', column['class']);\n\n if (!column.visible) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n falign = sprintf('text-align: %s; ', column.falign ? column.falign : column.align);\n style = sprintf('vertical-align: %s; ', column.valign);\n\n html.push('');\n html.push('
                ');\n\n html.push(calculateObjectValue(column, column.footerFormatter, [data], ' ') || ' ');\n\n html.push('
                ');\n html.push('
                ');\n html.push('');\n html.push('');\n });\n\n this.$tableFooter.find('tr').html(html.join(''));\n clearTimeout(this.timeoutFooter_);\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this),\n this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitFooter = function () {\n var that = this,\n $footerTd,\n elWidth,\n scrollWidth;\n\n clearTimeout(this.timeoutFooter_);\n if (this.$el.is(':hidden')) {\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this), 100);\n return;\n }\n\n elWidth = this.$el.css('width');\n scrollWidth = elWidth > this.$tableBody.width() ? getScrollBarWidth() : 0;\n\n this.$tableFooter.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', elWidth)\n .attr('class', this.$el.attr('class'));\n\n $footerTd = this.$tableFooter.find('td');\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this);\n\n $footerTd.eq(i).find('.fht-cell').width($this.innerWidth());\n });\n };\n\n BootstrapTable.prototype.toggleColumn = function (index, checked, needUpdate) {\n if (index === -1) {\n return;\n }\n this.columns[index].visible = checked;\n this.initHeader();\n this.initSearch();\n this.initPagination();\n this.initBody();\n\n if (this.options.showColumns) {\n var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);\n\n if (needUpdate) {\n $items.filter(sprintf('[value=\"%s\"]', index)).prop('checked', checked);\n }\n\n if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n $items.filter(':checked').prop('disabled', true);\n }\n }\n };\n\n BootstrapTable.prototype.toggleRow = function (index, uniqueId, visible) {\n if (index === -1) {\n return;\n }\n\n this.$body.find(typeof index !== 'undefined' ?\n sprintf('tr[data-index=\"%s\"]', index) :\n sprintf('tr[data-uniqueid=\"%s\"]', uniqueId))\n [visible ? 'show' : 'hide']();\n };\n\n BootstrapTable.prototype.getVisibleFields = function () {\n var that = this,\n visibleFields = [];\n\n $.each(this.header.fields, function (j, field) {\n var column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n visibleFields.push(field);\n });\n return visibleFields;\n };\n\n // PUBLIC FUNCTION DEFINITION\n // =======================\n\n BootstrapTable.prototype.resetView = function (params) {\n var padding = 0;\n\n if (params && params.height) {\n this.options.height = params.height;\n }\n\n this.$selectAll.prop('checked', this.$selectItem.length > 0 &&\n this.$selectItem.length === this.$selectItem.filter(':checked').length);\n\n if (this.options.height) {\n var toolbarHeight = getRealHeight(this.$toolbar),\n paginationHeight = getRealHeight(this.$pagination),\n height = this.options.height - toolbarHeight - paginationHeight;\n\n this.$tableContainer.css('height', height + 'px');\n }\n\n if (this.options.cardView) {\n // remove the element css\n this.$el.css('margin-top', '0');\n this.$tableContainer.css('padding-bottom', '0');\n return;\n }\n\n if (this.options.showHeader && this.options.height) {\n this.$tableHeader.show();\n this.resetHeader();\n padding += this.$header.outerHeight();\n } else {\n this.$tableHeader.hide();\n this.trigger('post-header');\n }\n\n if (this.options.showFooter) {\n this.resetFooter();\n if (this.options.height) {\n padding += this.$tableFooter.outerHeight() + 1;\n }\n }\n\n // Assign the correct sortable arrow\n this.getCaret();\n this.$tableContainer.css('padding-bottom', padding + 'px');\n this.trigger('reset-view');\n };\n\n BootstrapTable.prototype.getData = function (useCurrentPage) {\n return (this.searchText || !$.isEmptyObject(this.filterColumns) || !$.isEmptyObject(this.filterColumnsPartial)) ?\n (useCurrentPage ? this.data.slice(this.pageFrom - 1, this.pageTo) : this.data) :\n (useCurrentPage ? this.options.data.slice(this.pageFrom - 1, this.pageTo) : this.options.data);\n };\n\n BootstrapTable.prototype.load = function (data) {\n var fixedScroll = false;\n\n // #431: support pagination\n if (this.options.sidePagination === 'server') {\n this.options.totalRows = data.total;\n fixedScroll = data.fixedScroll;\n data = data[this.options.dataField];\n } else if (!$.isArray(data)) { // support fixedScroll\n fixedScroll = data.fixedScroll;\n data = data.data;\n }\n\n this.initData(data);\n this.initSearch();\n this.initPagination();\n this.initBody(fixedScroll);\n };\n\n BootstrapTable.prototype.append = function (data) {\n this.initData(data, 'append');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.prepend = function (data) {\n this.initData(data, 'prepend');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.remove = function (params) {\n var len = this.options.data.length,\n i, row;\n\n if (!params.hasOwnProperty('field') || !params.hasOwnProperty('values')) {\n return;\n }\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (!row.hasOwnProperty(params.field)) {\n continue;\n }\n if ($.inArray(row[params.field], params.values) !== -1) {\n this.options.data.splice(i, 1);\n }\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.removeAll = function () {\n if (this.options.data.length > 0) {\n this.options.data.splice(0, this.options.data.length);\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n }\n };\n\n BootstrapTable.prototype.getRowByUniqueId = function (id) {\n var uniqueId = this.options.uniqueId,\n len = this.options.data.length,\n dataRow = null,\n i, row, rowUniqueId;\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (row.hasOwnProperty(uniqueId)) { // uniqueId is a column\n rowUniqueId = row[uniqueId];\n } else if(row._data.hasOwnProperty(uniqueId)) { // uniqueId is a row data property\n rowUniqueId = row._data[uniqueId];\n } else {\n continue;\n }\n\n if (typeof rowUniqueId === 'string') {\n id = id.toString();\n } else if (typeof rowUniqueId === 'number') {\n if ((Number(rowUniqueId) === rowUniqueId) && (rowUniqueId % 1 === 0)) {\n id = parseInt(id);\n } else if ((rowUniqueId === Number(rowUniqueId)) && (rowUniqueId !== 0)) {\n id = parseFloat(id);\n }\n }\n\n if (rowUniqueId === id) {\n dataRow = row;\n break;\n }\n }\n\n return dataRow;\n };\n\n BootstrapTable.prototype.removeByUniqueId = function (id) {\n var len = this.options.data.length,\n row = this.getRowByUniqueId(id);\n\n if (row) {\n this.options.data.splice(this.options.data.indexOf(row), 1);\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateByUniqueId = function (params) {\n var rowId;\n\n if (!params.hasOwnProperty('id') || !params.hasOwnProperty('row')) {\n return;\n }\n\n rowId = $.inArray(this.getRowByUniqueId(params.id), this.options.data);\n\n if (rowId === -1) {\n return;\n }\n\n $.extend(this.data[rowId], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.insertRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n this.data.splice(params.index, 0, params.row);\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n $.extend(this.data[params.index], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.showRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, true);\n };\n\n BootstrapTable.prototype.hideRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, false);\n };\n\n BootstrapTable.prototype.getRowsHidden = function (show) {\n var rows = $(this.$body[0]).children().filter(':hidden'),\n i = 0;\n if (show) {\n for (; i < rows.length; i++) {\n $(rows[i]).show();\n }\n }\n return rows;\n };\n\n BootstrapTable.prototype.mergeCells = function (options) {\n var row = options.index,\n col = $.inArray(options.field, this.getVisibleFields()),\n rowspan = options.rowspan || 1,\n colspan = options.colspan || 1,\n i, j,\n $tr = this.$body.find('>tr'),\n $td;\n\n if (this.options.detailView && !this.options.cardView) {\n col += 1;\n }\n\n $td = $tr.eq(row).find('>td').eq(col);\n\n if (row < 0 || col < 0 || row >= this.data.length) {\n return;\n }\n\n for (i = row; i < row + rowspan; i++) {\n for (j = col; j < col + colspan; j++) {\n $tr.eq(i).find('>td').eq(j).hide();\n }\n }\n\n $td.attr('rowspan', rowspan).attr('colspan', colspan).show();\n };\n\n BootstrapTable.prototype.updateCell = function (params) {\n if (!params.hasOwnProperty('index') ||\n !params.hasOwnProperty('field') ||\n !params.hasOwnProperty('value')) {\n return;\n }\n this.data[params.index][params.field] = params.value;\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.getOptions = function () {\n return this.options;\n };\n\n BootstrapTable.prototype.getSelections = function () {\n var that = this;\n\n return $.grep(this.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.getAllSelections = function () {\n var that = this;\n\n return $.grep(this.options.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.checkAll = function () {\n this.checkAll_(true);\n };\n\n BootstrapTable.prototype.uncheckAll = function () {\n this.checkAll_(false);\n };\n\n BootstrapTable.prototype.checkAll_ = function (checked) {\n var rows;\n if (!checked) {\n rows = this.getSelections();\n }\n this.$selectAll.add(this.$selectAll_).prop('checked', checked);\n this.$selectItem.filter(':enabled').prop('checked', checked);\n this.updateRows();\n if (checked) {\n rows = this.getSelections();\n }\n this.trigger(checked ? 'check-all' : 'uncheck-all', rows);\n };\n\n BootstrapTable.prototype.check = function (index) {\n this.check_(true, index);\n };\n\n BootstrapTable.prototype.uncheck = function (index) {\n this.check_(false, index);\n };\n\n BootstrapTable.prototype.check_ = function (checked, index) {\n var $el = this.$selectItem.filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n this.data[index][this.header.stateField] = checked;\n this.updateSelected();\n this.trigger(checked ? 'check' : 'uncheck', this.data[index], $el);\n };\n\n BootstrapTable.prototype.checkBy = function (obj) {\n this.checkBy_(true, obj);\n };\n\n BootstrapTable.prototype.uncheckBy = function (obj) {\n this.checkBy_(false, obj);\n };\n\n BootstrapTable.prototype.checkBy_ = function (checked, obj) {\n if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {\n return;\n }\n\n var that = this,\n rows = [];\n $.each(this.options.data, function (index, row) {\n if (!row.hasOwnProperty(obj.field)) {\n return false;\n }\n if ($.inArray(row[obj.field], obj.values) !== -1) {\n var $el = that.$selectItem.filter(':enabled')\n .filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n row[that.header.stateField] = checked;\n rows.push(row);\n that.trigger(checked ? 'check' : 'uncheck', row, $el);\n }\n });\n this.updateSelected();\n this.trigger(checked ? 'check-some' : 'uncheck-some', rows);\n };\n\n BootstrapTable.prototype.destroy = function () {\n this.$el.insertBefore(this.$container);\n $(this.options.toolbar).insertBefore(this.$el);\n this.$container.next().remove();\n this.$container.remove();\n this.$el.html(this.$el_.html())\n .css('margin-top', '0')\n .attr('class', this.$el_.attr('class') || ''); // reset the class\n };\n\n BootstrapTable.prototype.showLoading = function () {\n this.$tableLoading.show();\n };\n\n BootstrapTable.prototype.hideLoading = function () {\n this.$tableLoading.hide();\n };\n\n BootstrapTable.prototype.togglePagination = function () {\n this.options.pagination = !this.options.pagination;\n var button = this.$toolbar.find('button[name=\"paginationSwitch\"] i');\n if (this.options.pagination) {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchDown);\n } else {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchUp);\n }\n this.updatePagination();\n };\n\n BootstrapTable.prototype.refresh = function (params) {\n if (params && params.url) {\n this.options.url = params.url;\n this.options.pageNumber = 1;\n }\n this.initServer(params && params.silent, params && params.query);\n };\n\n BootstrapTable.prototype.resetWidth = function () {\n if (this.options.showHeader && this.options.height) {\n this.fitHeader();\n }\n if (this.options.showFooter) {\n this.fitFooter();\n }\n };\n\n BootstrapTable.prototype.showColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), true, true);\n };\n\n BootstrapTable.prototype.hideColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), false, true);\n };\n\n BootstrapTable.prototype.getHiddenColumns = function () {\n return $.grep(this.columns, function (column) {\n return !column.visible;\n });\n };\n\n BootstrapTable.prototype.filterBy = function (columns) {\n this.filterColumns = $.isEmptyObject(columns) ? {} : columns;\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n };\n\n BootstrapTable.prototype.scrollTo = function (value) {\n if (typeof value === 'string') {\n value = value === 'bottom' ? this.$tableBody[0].scrollHeight : 0;\n }\n if (typeof value === 'number') {\n this.$tableBody.scrollTop(value);\n }\n if (typeof value === 'undefined') {\n return this.$tableBody.scrollTop();\n }\n };\n\n BootstrapTable.prototype.getScrollPosition = function () {\n return this.scrollTo();\n };\n\n BootstrapTable.prototype.selectPage = function (page) {\n if (page > 0 && page <= this.options.totalPages) {\n this.options.pageNumber = page;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.prevPage = function () {\n if (this.options.pageNumber > 1) {\n this.options.pageNumber--;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.nextPage = function () {\n if (this.options.pageNumber < this.options.totalPages) {\n this.options.pageNumber++;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.toggleView = function () {\n this.options.cardView = !this.options.cardView;\n this.initHeader();\n // Fixed remove toolbar when click cardView button.\n //that.initToolbar();\n this.initBody();\n this.trigger('toggle', this.options.cardView);\n };\n\n BootstrapTable.prototype.refreshOptions = function (options) {\n //If the objects are equivalent then avoid the call of destroy / init methods\n if (compareObjects(this.options, options, false)) {\n return;\n }\n this.options = $.extend(this.options, options);\n this.trigger('refresh-options', this.options);\n this.destroy();\n this.init();\n };\n\n BootstrapTable.prototype.resetSearch = function (text) {\n var $search = this.$toolbar.find('.search input');\n $search.val(text || '');\n this.onSearch({currentTarget: $search});\n };\n\n BootstrapTable.prototype.expandRow_ = function (expand, index) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', index));\n if ($tr.next().is('tr.detail-view') === (expand ? false : true)) {\n $tr.find('> td > .detail-icon').click();\n }\n };\n\n BootstrapTable.prototype.expandRow = function (index) {\n this.expandRow_(true, index);\n };\n\n BootstrapTable.prototype.collapseRow = function (index) {\n this.expandRow_(false, index);\n };\n\n BootstrapTable.prototype.expandAllRows = function (isSubTable) {\n if (isSubTable) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', 0)),\n that = this,\n detailIcon = null,\n executeInterval = false,\n idInterval = -1;\n\n if (!$tr.next().is('tr.detail-view')) {\n $tr.find('> td > .detail-icon').click();\n executeInterval = true;\n } else if (!$tr.next().next().is('tr.detail-view')) {\n $tr.next().find(\".detail-icon\").click();\n executeInterval = true;\n }\n\n if (executeInterval) {\n try {\n idInterval = setInterval(function () {\n detailIcon = that.$body.find(\"tr.detail-view\").last().find(\".detail-icon\");\n if (detailIcon.length > 0) {\n detailIcon.click();\n } else {\n clearInterval(idInterval);\n }\n }, 1);\n } catch (ex) {\n clearInterval(idInterval);\n }\n }\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(true, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n BootstrapTable.prototype.collapseAllRows = function (isSubTable) {\n if (isSubTable) {\n this.expandRow_(false, 0);\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(false, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n // BOOTSTRAP TABLE PLUGIN DEFINITION\n // =======================\n\n var allowedMethods = [\n 'getOptions',\n 'getSelections', 'getAllSelections', 'getData',\n 'load', 'append', 'prepend', 'remove', 'removeAll',\n 'insertRow', 'updateRow', 'updateCell', 'updateByUniqueId', 'removeByUniqueId',\n 'getRowByUniqueId', 'showRow', 'hideRow', 'getRowsHidden',\n 'mergeCells',\n 'checkAll', 'uncheckAll',\n 'check', 'uncheck',\n 'checkBy', 'uncheckBy',\n 'refresh',\n 'resetView',\n 'resetWidth',\n 'destroy',\n 'showLoading', 'hideLoading',\n 'showColumn', 'hideColumn', 'getHiddenColumns',\n 'filterBy',\n 'scrollTo',\n 'getScrollPosition',\n 'selectPage', 'prevPage', 'nextPage',\n 'togglePagination',\n 'toggleView',\n 'refreshOptions',\n 'resetSearch',\n 'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows'\n ];\n\n $.fn.bootstrapTable = function (option) {\n var value,\n args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var $this = $(this),\n data = $this.data('bootstrap.table'),\n options = $.extend({}, BootstrapTable.DEFAULTS, $this.data(),\n typeof option === 'object' && option);\n\n if (typeof option === 'string') {\n if ($.inArray(option, allowedMethods) < 0) {\n throw new Error(\"Unknown method: \" + option);\n }\n\n if (!data) {\n return;\n }\n\n value = data[option].apply(data, args);\n\n if (option === 'destroy') {\n $this.removeData('bootstrap.table');\n }\n }\n\n if (!data) {\n $this.data('bootstrap.table', (data = new BootstrapTable(this, options)));\n }\n });\n\n return typeof value === 'undefined' ? this : value;\n };\n\n $.fn.bootstrapTable.Constructor = BootstrapTable;\n $.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS;\n $.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS;\n $.fn.bootstrapTable.locales = BootstrapTable.LOCALES;\n $.fn.bootstrapTable.methods = allowedMethods;\n $.fn.bootstrapTable.utils = {\n sprintf: sprintf,\n getFieldIndex: getFieldIndex,\n compareObjects: compareObjects,\n calculateObjectValue: calculateObjectValue\n };\n\n // BOOTSTRAP TABLE INIT\n // =======================\n\n $(function () {\n $('[data-toggle=\"table\"]').bootstrapTable();\n });\n\n}(jQuery);\n","/* =========================================================\n * bootstrap-datepicker.js\n * Repo: https://github.com/eternicode/bootstrap-datepicker/\n * Demo: http://eternicode.github.io/bootstrap-datepicker/\n * Docs: http://bootstrap-datepicker.readthedocs.org/\n * Forked from http://www.eyecon.ro/bootstrap-datepicker\n * =========================================================\n * Started by Stefan Petre; improvements by Andrew Rowls + contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n\n(function($, undefined){\n\n\tvar $window = $(window);\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction alias(method){\n\t\treturn function(){\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n\t\t\t\t\tif (this[i].valueOf() === val)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.splice(0);\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = UTCToday();\n\t\tthis.focusDate = null;\n\n\t\tthis._process_options(options);\n\n\t\tthis.element = $(element);\n\t\tthis.isInline = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.is('.date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\n\t\tthis.picker = $(DPGlobal.template);\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tthis.viewMode = this.o.startView;\n\n\t\tif (this.o.calendarWeeks)\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t\t});\n\n\t\tthis._allow_update = false;\n\n\t\tthis.setStartDate(this._o.startDate);\n\t\tthis.setEndDate(this._o.endDate);\n\t\tthis.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis._allow_update = true;\n\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\tswitch (o.startView){\n\t\t\t\tcase 2:\n\t\t\t\tcase 'decade':\n\t\t\t\t\to.startView = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'year':\n\t\t\t\t\to.startView = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.startView = 0;\n\t\t\t}\n\n\t\t\tswitch (o.minViewMode){\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.minViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'years':\n\t\t\t\t\to.minViewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.minViewMode = 0;\n\t\t\t}\n\n\t\t\to.startView = Math.max(o.startView, o.minViewMode);\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t\telse\n\t\t\t\t\to.multidate = 1;\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = ((o.weekStart + 6) % 7);\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled||[];\n\t\t\tif (!$.isArray(o.daysOfWeekDisabled))\n\t\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\\s]*/);\n\t\t\to.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn (/^auto|left|right|top|bottom$/).test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^left|right$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^top|bottom$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t},\n\t\t_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n\t\t\tif (this.isInput){ // single input\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.component && this.hasInput){ // component: input + button\n\t\t\t\tthis._events = [\n\t\t\t\t\t// For components that are not readonly, allow keyboard nav\n\t\t\t\t\t[this.element.find('input'), {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}],\n\t\t\t\t\t[this.component, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.element.is('div')){ // inline datepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\t'mousedown touchstart': $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo('body');\n\t\t\tthis.picker.show();\n\t\t\tthis.place();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tif (!this.picker.is(':visible'))\n\t\t\t\treturn;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.viewMode = this.o.startView;\n\t\t\tthis.showMode();\n\n\t\t\tif (\n\t\t\t\tthis.o.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val() ||\n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t},\n\n\t\tremove: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\treturn utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\treturn new Date(this.dates.get(-1));\n\t\t},\n\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, $.map(args, this._utc_to_local));\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput){\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted).change();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.element.val(formatted).change();\n\t\t\t}\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\twindowWidth = $window.width(),\n\t\t\t\twindowHeight = $window.height(),\n\t\t\t\tscrollTop = $window.scrollTop();\n\n\t\t\tvar zIndex = parseInt(this.element.parents().filter(function(){\n\t\t\t\t\treturn $(this).css('z-index') !== 'auto';\n\t\t\t\t}).first().css('z-index'))+10;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left,\n\t\t\t\ttop = offset.top;\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\t// Default to left\n\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\tif (offset.left < 0)\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\telse if (offset.left + calendarWidth > windowWidth)\n\t\t\t\t\tleft = windowWidth - calendarWidth - visualPadding;\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow, bottom_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + offset.top - calendarHeight;\n\t\t\t\tbottom_overflow = scrollTop + windowHeight - (offset.top + height + calendarHeight);\n\t\t\t\tif (Math.max(top_overflow, bottom_overflow) === bottom_overflow)\n\t\t\t\t\tyorient = 'top';\n\t\t\t\telse\n\t\t\t\t\tyorient = 'bottom';\n\t\t\t}\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop += height;\n\t\t\telse\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\n\t\t\tthis.picker.css({\n\t\t\t\ttop: top,\n\t\t\t\tleft: left,\n\t\t\t\tzIndex: zIndex\n\t\t\t});\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.element.find('input').val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\tdate < this.o.startDate ||\n\t\t\t\t\tdate > this.o.endDate ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.dates.length)\n\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t}\n\t\t\telse if (dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates))\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length)\n\t\t\t\tthis._trigger('clearDate');\n\n\t\t\tthis.fill();\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\tvar cell = ' ';\n\t\t\t\thtml += cell;\n\t\t\t\tthis.picker.find('.datepicker-days thead tr:first-child').prepend(cell);\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += ''+dates[this.o.language].daysMin[(dowCnt++)%7]+'';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12){\n\t\t\t\thtml += ''+dates[this.o.language].monthsShort[i++]+'';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = new Date();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t}\n\t\t\telse if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\tif (this.o.todayHighlight &&\n\t\t\t\tdate.getUTCFullYear() === today.getFullYear() &&\n\t\t\t\tdate.getUTCMonth() === today.getMonth() &&\n\t\t\t\tdate.getUTCDate() === today.getDate()){\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (date.valueOf() < this.o.startDate || date.valueOf() > this.o.endDate ||\n\t\t\t\t$.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n\t\t\t\ttooltip;\n\t\t\tthis.picker.find('.datepicker-days thead th.datepicker-switch')\n\t\t\t\t\t\t.text(dates[this.o.language].months[month]+' '+year);\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.text(todaytxt)\n\t\t\t\t\t\t.toggle(this.o.todayBtn !== false);\n\t\t\tthis.picker.find('tfoot th.clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.toggle(this.o.clearBtn !== false);\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28),\n\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\tprevMonth.setUTCDate(day);\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekStart){\n\t\t\t\t\thtml.push('');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek = (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push(''+ calWeek +'');\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tvar before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t}\n\n\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\thtml.push(''+prevMonth.getUTCDate() + '');\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekEnd){\n\t\t\t\t\thtml.push('');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').empty().append(html.join(''));\n\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t.text(year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datepicker-years')\n\t\t\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tvar years = $.map(this.dates, function(d){\n\t\t\t\t\treturn d.getUTCFullYear();\n\t\t\t\t}),\n\t\t\t\tclasses;\n\t\t\tfor (var i = -1; i < 11; i++){\n\t\t\t\tclasses = ['year'];\n\t\t\t\tif (i === -1)\n\t\t\t\t\tclasses.push('old');\n\t\t\t\telse if (i === 10)\n\t\t\t\t\tclasses.push('new');\n\t\t\t\tif ($.inArray(year, years) !== -1)\n\t\t\t\t\tclasses.push('active');\n\t\t\t\tif (year < startYear || year > endYear)\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\thtml += ''+year+'';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth();\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\tvar target = $(e.target).closest('span, td, th'),\n\t\t\t\tyear, month, day;\n\t\t\tif (target.length === 1){\n\t\t\t\tswitch (target[0].nodeName.toLowerCase()){\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch (target[0].className){\n\t\t\t\t\t\t\tcase 'datepicker-switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch (this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode === 1)\n\t\t\t\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tvar date = new Date();\n\t\t\t\t\t\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\n\t\t\t\t\t\t\t\tthis.showMode(-2);\n\t\t\t\t\t\t\t\tvar which = this.o.todayBtn === 'linked' ? null : 'view';\n\t\t\t\t\t\t\t\tthis._setDate(date, which);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clear':\n\t\t\t\t\t\t\t\tvar element;\n\t\t\t\t\t\t\t\tif (this.isInput)\n\t\t\t\t\t\t\t\t\telement = this.element;\n\t\t\t\t\t\t\t\telse if (this.component)\n\t\t\t\t\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t\t\t\t\tif (element)\n\t\t\t\t\t\t\t\t\telement.val(\"\").change();\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.is('.disabled')){\n\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\tif (target.is('.month')){\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 1){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10)||0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 2){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.is('.day') && !target.is('.disabled')){\n\t\t\t\t\t\t\tday = parseInt(target.text(), 10)||1;\n\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth();\n\t\t\t\t\t\t\tif (target.is('.old')){\n\t\t\t\t\t\t\t\tif (month === 0){\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (target.is('.new')){\n\t\t\t\t\t\t\t\tif (month === 11){\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\t$(this._focused_from).focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\t\t\telse if (ix !== -1){\n\t\t\t\tthis.dates.remove(ix);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif (!which || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tthis._trigger('changeDate');\n\t\t\tvar element;\n\t\t\tif (this.isInput){\n\t\t\t\telement = this.element;\n\t\t\t}\n\t\t\telse if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element){\n\t\t\t\telement.change();\n\t\t\t}\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (this.picker.is(':not(:visible)')){\n\t\t\t\tif (e.keyCode === 27) // allow escape to hide and re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newDate, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 39: // right\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 38 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir * 7);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir * 7);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 32: // spacebar\n\t\t\t\t\t// Spacebar is used in manually typing dates in some formats.\n\t\t\t\t\t// As such, its behavior should not be hijacked.\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\tdateChanged = true;\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput){\n\t\t\t\t\telement = this.element;\n\t\t\t\t}\n\t\t\t\telse if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element){\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir){\n\t\t\tif (dir){\n\t\t\t\tthis.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + dir));\n\t\t\t}\n\t\t\tthis.picker\n\t\t\t\t.find('>div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName)\n\t\t\t\t\t.css('display', 'block');\n\t\t\tthis.updateNavArrows();\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\t$(this.inputs)\n\t\t\t.datepicker(options)\n\t\t\t.bind('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $(i).data('datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling. Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $(e.target).data('datepicker'),\n\t\t\t\tnew_date = dp.getUTCDate(),\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate())\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[i]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (i >= 0 && new_date < this.dates[i]){\n\t\t\t\t\tthis.pickers[i--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (new_date > this.dates[i]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (i < l && new_date > this.dates[i]){\n\t\t\t\t\tthis.pickers[i++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tremove: function(){\n\t\t\t$.map(this.pickers, function(p){ p.remove(); });\n\t\t\tdelete this.element.data().datepicker;\n\t\t}\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\t$.fn.datepicker = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.is('.input-daterange') || opts.inputs){\n\t\t\t\t\tvar ropts = {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t};\n\t\t\t\t\t$this.data('datepicker', (data = new DateRangePicker(this, $.extend(opts, ropts))));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$this.data('datepicker', (data = new Datepicker(this, opts)));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t\tif (internal_return !== undefined)\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif (internal_return !== undefined)\n\t\t\treturn internal_return;\n\t\telse\n\t\t\treturn this;\n\t};\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tweekStart: 0\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function(year){\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\t\t},\n\t\tgetDaysInMonth: function(year, month){\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\t\t},\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\[\\u3400-\\u9fff-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\t// IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar part_re = /([\\-+]\\d+)([dmwy])/,\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g),\n\t\t\t\tpart, dir, i;\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tswitch (part[2]){\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'm':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveMonth.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'w':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir * 7);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'y':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveYear.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0);\n\t\t\t}\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\t\t\tdate = new Date();\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(v);\n\t\t\t\t\t},\n\t\t\t\t\tyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(2000+v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m === p;\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'«'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'»'+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t'',\n\t\tcontTemplate: '',\n\t\tfootTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t''\n\t};\n\tDPGlobal.template = '
                '+\n\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t\t'
                '+\n\t\t\t\t\t\t'
                ';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\t$this.datepicker('show');\n\t\t}\n\t);\n\t$(function(){\n\t\t$('[data-provide=\"datepicker-inline\"]').datepicker();\n\t});\n\n}(window.jQuery));\n","/*!\n * Select2 4.0.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n factory(require('jquery'));\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =\n(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that \"directory\" and not name of the baseName's\n //module. For instance, baseName of \"one/two/three\", maps to\n //\"one/two/three.js\", but we want the directory, \"one/two\" for\n //this normalization.\n baseParts = baseParts.slice(0, baseParts.length - 1);\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n name = baseParts.concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '
                  '\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
                • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n this.$results.append($message);\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = $.data(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'treeitem',\n 'aria-selected': 'false'\n };\n\n if (data.disabled) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('
                    ', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n $.data(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = $highlighted.data('data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close');\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at te top, don't move further\n if (currentIndex === 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = (\n self.$results.get(0).scrollHeight -\n self.$results.scrollTop() +\n e.deltaY\n );\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = $this.data('data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close');\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = $(this).data('data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (this.$element.data('old-tabindex') != null) {\n this._tabindex = this.$element.data('old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-container';\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.focus();\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n });\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n var self = this;\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n var $this = $(this);\n\n if (this == $select[0]) {\n return;\n }\n\n var $element = $this.data('element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n };\n\n SingleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n SingleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var formatted = this.display(selection);\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty().append(formatted);\n $rendered.prop('title', selection.title || selection.text);\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n '
                      '\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('click', '.select2-selection__choice__remove',\n function (evt) {\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = $selection.data('data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n MultipleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
                    • ' +\n '' +\n '×' +\n '' +\n '
                    • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var formatted = this.display(selection);\n var $selection = this.selectionContainer();\n\n $selection.append(formatted);\n $selection.prop('title', selection.title || selection.text);\n\n $selection.data('data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys'\n], function ($, KEYS) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.options.get('disabled')) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = $clear.data('data');\n\n for (var d = 0; d < data.length; d++) {\n var unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n return;\n }\n }\n\n this.$element.val(this.placeholder.id).trigger('change');\n\n this.trigger('toggle');\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var $remove = $(\n '' +\n '×' +\n ''\n );\n $remove.data('data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n self.$search.focus();\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = $previousChoice.data('data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on('input', '.select2-search--inline', function (evt) {\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n });\n\n this.$selection.on('keyup.search input', '.select2-search--inline',\n function (evt) {\n self.handleSearch(evt);\n });\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.trigger('open');\n\n this.$search.val(item.text + ' ');\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').innerWidth();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting'\n ];\n\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n $.removeData(this, 'data');\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n $.data(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = $.data($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n $.data($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (!$.isPlainObject(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n var data = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n\n this.addOptions(this.convertToOptions(data));\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, existingData, item);\n\n var $newOption = this.option(existingData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return {\n q: params.term\n };\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url(params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data(params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // TODO: Handle AJAX errors\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term !== '') {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var checkText = option.text === params.term;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var tag = this._lastTag;\n\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function select (data) {\n self.select(data);\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, select);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.focus();\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n decorated.call(self, params, callback);\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implmented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n\n window.setTimeout(function () {\n self.$search.focus();\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n self.$loadingMore[0]\n );\n\n if (self.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var loadingMoreOffset = self.$loadingMore.offset().top +\n self.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n self.loadMore();\n }\n });\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
                    • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = options.get('dropdownParent') || document.body;\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var setupResultsEvents = false;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n if (!setupResultsEvents) {\n setupResultsEvents = true;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n }\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._attachPositioningHandler = function (container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n $(this).data('select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = $(this).data('select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = function (container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var position = this.$container.position();\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n this.$dropdownContainer.width();\n\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n\n], function () {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function () {\n self._handleSelectOnClose();\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function () {\n var $highlightedResults = this.getHighlightedResults();\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n this.trigger('select', {\n data: $highlightedResults.data('data')\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && originalEvent.ctrlKey) {\n return;\n }\n\n this.trigger('close');\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend({}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n if (typeof options.language === 'string') {\n // Check if the language is specified with a region\n if (options.language.indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = options.language.split('-');\n var baseLanguage = languageParts[0];\n\n options.language = [options.language, baseLanguage];\n } else {\n options.language = [options.language];\n }\n }\n\n if ($.isArray(options.language)) {\n var languages = new Translation();\n options.language.push('en');\n\n var languageNames = options.language;\n\n for (var l = 0; l < languageNames.length; l++) {\n var name = languageNames[l];\n var language = {};\n\n try {\n // Try to load it with the original name\n language = Translation.loadPath(name);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n name = this.defaults.amdLanguageBase + name;\n language = Translation.loadPath(name);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files.\n if (options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + name + '\" could not be ' +\n 'automatically loaded. A fallback will be used instead.'\n );\n }\n\n continue;\n }\n }\n\n languages.extend(language);\n }\n\n options.translations = languages;\n } else {\n var baseTranslation = Translation.loadPath(\n this.defaults.amdLanguageBase + 'en'\n );\n var customTranslation = new Translation(options.language);\n\n customTranslation.extend(baseTranslation);\n\n options.translations = customTranslation;\n }\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: EnglishTranslation,\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.language == null) {\n if ($e.prop('lang')) {\n this.options.language = $e.prop('lang').toLowerCase();\n } else if ($e.closest('[lang]').prop('lang')) {\n this.options.language = $e.closest('[lang]').prop('lang');\n }\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if ($e.data('select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n $e.data('data', $e.data('select2Tags'));\n $e.data('tags', true);\n }\n\n if ($e.data('ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', $e.data('ajaxUrl'));\n $e.data('ajax--url', $e.data('ajaxUrl'));\n }\n\n var dataset = {};\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, $e.data());\n } else {\n dataset = $e.data();\n }\n\n var data = $.extend(true, {}, dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if ($element.data('select2') != null) {\n $element.data('select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n $element.data('old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n\t$element.attr('aria-hidden', 'true');\n\t\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this._sync = Utils.bind(this._syncAttributes, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._sync);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n $.each(mutations, self._sync);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener('DOMAttrModified', self._sync, false);\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('focus', function () {\n self.$container.addClass('select2-container--focus');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open');\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ENTER) {\n self.trigger('results:select');\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle');\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous');\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next');\n\n evt.preventDefault();\n } else if (key === KEYS.ESC || key === KEYS.TAB) {\n self.close();\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n ((key === KEYS.DOWN || key === KEYS.UP) && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.options.get('disabled')) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable');\n } else {\n this.trigger('enable');\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting'\n };\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.options.get('disabled')) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n this.trigger('query', {});\n\n this.trigger('open');\n };\n\n Select2.prototype.close = function () {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._sync);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._sync, false);\n }\n\n this._sync = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex', this.$element.data('old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n\tthis.$element.attr('aria-hidden', 'false');\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n $container.data('element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'require',\n\n './select2/core',\n './select2/defaults'\n], function ($, require, Select2, Defaults) {\n // Force jQuery.mousewheel to be loaded if it hasn't already\n require('jquery.mousewheel');\n\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend({}, options, true);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var instance = this.data('select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n var args = Array.prototype.slice.call(arguments, 1);\n\n var ret = instance[options](args);\n\n // Check if we should be returning `this`\n if ($.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\nS2.define('jquery.mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","/*!\n * iCheck v1.0.1, http://git.io/arlzeA\n * =================================\n * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization\n *\n * (c) 2013 Damir Sultanov, http://fronteed.com\n * MIT Licensed\n */\n\n(function($) {\n\n // Cached vars\n var _iCheck = 'iCheck',\n _iCheckHelper = _iCheck + '-helper',\n _checkbox = 'checkbox',\n _radio = 'radio',\n _checked = 'checked',\n _unchecked = 'un' + _checked,\n _disabled = 'disabled',\n _determinate = 'determinate',\n _indeterminate = 'in' + _determinate,\n _update = 'update',\n _type = 'type',\n _click = 'click',\n _touch = 'touchbegin.i touchend.i',\n _add = 'addClass',\n _remove = 'removeClass',\n _callback = 'trigger',\n _label = 'label',\n _cursor = 'cursor',\n _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);\n\n // Plugin init\n $.fn[_iCheck] = function(options, fire) {\n\n // Walker\n var handle = 'input[type=\"' + _checkbox + '\"], input[type=\"' + _radio + '\"]',\n stack = $(),\n walker = function(object) {\n object.each(function() {\n var self = $(this);\n\n if (self.is(handle)) {\n stack = stack.add(self);\n } else {\n stack = stack.add(self.find(handle));\n }\n });\n };\n\n // Check if we should operate with some method\n if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {\n\n // Normalize method's name\n options = options.toLowerCase();\n\n // Find checkboxes and radio buttons\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n if (options == 'destroy') {\n tidy(self, 'ifDestroyed');\n } else {\n operate(self, true, options);\n }\n // Fire method's callback\n if ($.isFunction(fire)) {\n fire();\n }\n });\n\n // Customization\n } else if (typeof options == 'object' || !options) {\n\n // Check if any options were passed\n var settings = $.extend({\n checkedClass: _checked,\n disabledClass: _disabled,\n indeterminateClass: _indeterminate,\n labelHover: true,\n aria: false\n }, options),\n\n selector = settings.handle,\n hoverClass = settings.hoverClass || 'hover',\n focusClass = settings.focusClass || 'focus',\n activeClass = settings.activeClass || 'active',\n labelHover = !!settings.labelHover,\n labelHoverClass = settings.labelHoverClass || 'hover',\n\n // Setup clickable area\n area = ('' + settings.increaseArea).replace('%', '') | 0;\n\n // Selector limit\n if (selector == _checkbox || selector == _radio) {\n handle = 'input[type=\"' + selector + '\"]';\n }\n // Clickable area limit\n if (area < -50) {\n area = -50;\n }\n // Walk around the selector\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n // If already customized\n tidy(self);\n\n var node = this,\n id = node.id,\n\n // Layer styles\n offset = -area + '%',\n size = 100 + (area * 2) + '%',\n layer = {\n position: 'absolute',\n top: offset,\n left: offset,\n display: 'block',\n width: size,\n height: size,\n margin: 0,\n padding: 0,\n background: '#fff',\n border: 0,\n opacity: 0\n },\n\n // Choose how to hide input\n hide = _mobile ? {\n position: 'absolute',\n visibility: 'hidden'\n } : area ? layer : {\n position: 'absolute',\n opacity: 0\n },\n\n // Get proper class\n className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,\n\n // Find assigned labels\n label = $(_label + '[for=\"' + id + '\"]').add(self.closest(_label)),\n\n // Check ARIA option\n aria = !!settings.aria,\n\n // Set ARIA placeholder\n ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),\n\n // Parent & helper\n parent = '
                      ')[_callback]('ifCreated').parent().append(settings.insert);\n\n // Layer addition\n helper = $('').css(layer).appendTo(parent);\n\n // Finalize customization\n self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);\n !!settings.inheritClass && parent[_add](node.className || '');\n !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);\n parent.css('position') == 'static' && parent.css('position', 'relative');\n operate(self, true, _update);\n\n // Label events\n if (label.length) {\n label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {\n var type = event[_type],\n item = $(this);\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n if ($(event.target).is('a')) {\n return;\n }\n operate(self, false, true);\n\n // Hover state\n } else if (labelHover) {\n\n // mouseout|touchend\n if (/ut|nd/.test(type)) {\n parent[_remove](hoverClass);\n item[_remove](labelHoverClass);\n } else {\n parent[_add](hoverClass);\n item[_add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n }\n // Input events\n self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {\n var type = event[_type],\n key = event.keyCode;\n\n // Click\n if (type == _click) {\n return false;\n\n // Keydown\n } else if (type == 'keydown' && key == 32) {\n if (!(node[_type] == _radio && node[_checked])) {\n if (node[_checked]) {\n off(self, _checked);\n } else {\n on(self, _checked);\n }\n }\n return false;\n\n // Keyup\n } else if (type == 'keyup' && node[_type] == _radio) {\n !node[_checked] && on(self, _checked);\n\n // Focus/blur\n } else if (/us|ur/.test(type)) {\n parent[type == 'blur' ? _remove : _add](focusClass);\n }\n });\n\n // Helper events\n helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {\n var type = event[_type],\n\n // mousedown|mouseup\n toggle = /wn|up/.test(type) ? activeClass : hoverClass;\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n operate(self, false, true);\n\n // Active and hover states\n } else {\n\n // State is on\n if (/wn|er|in/.test(type)) {\n\n // mousedown|mouseover|touchbegin\n parent[_add](toggle);\n\n // State is off\n } else {\n parent[_remove](toggle + ' ' + activeClass);\n }\n // Label hover\n if (label.length && labelHover && toggle == hoverClass) {\n\n // mouseout|touchend\n label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n });\n } else {\n return this;\n }\n };\n\n // Do something with inputs\n function operate(input, direct, method) {\n var node = input[0],\n state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,\n active = method == _update ? {\n checked: node[_checked],\n disabled: node[_disabled],\n indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'\n } : node[state];\n\n // Check, disable or indeterminate\n if (/^(ch|di|in)/.test(method) && !active) {\n on(input, state);\n\n // Uncheck, enable or determinate\n } else if (/^(un|en|de)/.test(method) && active) {\n off(input, state);\n\n // Update\n } else if (method == _update) {\n\n // Handle states\n for (var state in active) {\n if (active[state]) {\n on(input, state, true);\n } else {\n off(input, state, true);\n }\n }\n } else if (!direct || method == 'toggle') {\n\n // Helper or label was clicked\n if (!direct) {\n input[_callback]('ifClicked');\n }\n // Toggle checked state\n if (active) {\n if (node[_type] !== _radio) {\n off(input, state);\n }\n } else {\n on(input, state);\n }\n }\n }\n // Add checked, disabled or indeterminate state\n function on(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== true) {\n\n // Toggle assigned radio buttons\n if (!keep && state == _checked && node[_type] == _radio && node.name) {\n var form = input.closest('form'),\n inputs = 'input[name=\"' + node.name + '\"]';\n\n inputs = form.length ? form.find(inputs) : $(inputs);\n\n inputs.each(function() {\n if (this !== node && $(this).data(_iCheck)) {\n off($(this), state);\n }\n });\n }\n // Indeterminate state\n if (indeterminate) {\n\n // Add indeterminate state\n node[state] = true;\n\n // Remove checked state\n if (node[_checked]) {\n off(input, _checked, 'force');\n }\n // Checked or disabled state\n } else {\n\n // Add checked or disabled state\n if (!keep) {\n node[state] = true;\n }\n // Remove indeterminate state\n if (checked && node[_indeterminate]) {\n off(input, _indeterminate, false);\n }\n }\n // Trigger callbacks\n callbacks(input, checked, state, keep);\n }\n // Add proper cursor\n if (node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'default');\n }\n // Add state class\n parent[_add](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');\n\n // Remove regular state class\n parent[_remove](regular || option(input, callback) || '');\n }\n // Remove checked, disabled or indeterminate state\n function off(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== false) {\n\n // Toggle state\n if (indeterminate || !keep || keep == 'force') {\n node[state] = false;\n }\n // Trigger callbacks\n callbacks(input, checked, callback, keep);\n }\n // Add proper cursor\n if (!node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');\n }\n // Remove state class\n parent[_remove](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');\n\n // Add regular state class\n parent[_add](regular || option(input, callback) || '');\n }\n // Remove all traces\n function tidy(input, callback) {\n if (input.data(_iCheck)) {\n\n // Remove everything except input\n input.parent().html(input.attr('style', input.data(_iCheck).s || ''));\n\n // Callback\n if (callback) {\n input[_callback](callback);\n }\n // Unbind events\n input.off('.i').unwrap();\n $(_label + '[for=\"' + input[0].id + '\"]').add(input.closest(_label)).off('.i');\n }\n }\n // Get some option\n function option(input, state, regular) {\n if (input.data(_iCheck)) {\n return input.data(_iCheck).o[state + (regular ? '' : 'Class')];\n }\n }\n // Capitalize some string\n function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n // Executable handlers\n function callbacks(input, checked, callback, keep) {\n if (!keep) {\n if (checked) {\n input[_callback]('ifToggled');\n }\n input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));\n }\n }\n})(window.jQuery || window.Zepto);\n","\n/*\nLightbox for Bootstrap 3 by @ashleydw\nhttps://github.com/ashleydw/lightbox\n\nLicense: https://github.com/ashleydw/lightbox/blob/master/LICENSE\n */\n\n(function() {\n \"use strict\";\n var $, EkkoLightbox;\n\n $ = jQuery;\n\n EkkoLightbox = function(element, options) {\n var content, footer, header;\n this.options = $.extend({\n title: null,\n footer: null,\n remote: null\n }, $.fn.ekkoLightbox.defaults, options || {});\n this.$element = $(element);\n content = '';\n this.modal_id = this.options.modal_id ? this.options.modal_id : 'ekkoLightbox-' + Math.floor((Math.random() * 1000) + 1);\n header = '

                      ' + (this.options.title || \" \") + '

                      ';\n footer = '
                      ' + this.options.footer + '
                      ';\n $(document.body).append('
                      ' + header + '
                      ' + footer + '
                      ');\n this.modal = $('#' + this.modal_id);\n this.modal_dialog = this.modal.find('.modal-dialog').first();\n this.modal_content = this.modal.find('.modal-content').first();\n this.modal_body = this.modal.find('.modal-body').first();\n this.modal_header = this.modal.find('.modal-header').first();\n this.modal_footer = this.modal.find('.modal-footer').first();\n this.lightbox_container = this.modal_body.find('.ekko-lightbox-container').first();\n this.lightbox_body = this.lightbox_container.find('> div:first-child').first();\n this.showLoading();\n this.modal_arrows = null;\n this.border = {\n top: parseFloat(this.modal_dialog.css('border-top-width')) + parseFloat(this.modal_content.css('border-top-width')) + parseFloat(this.modal_body.css('border-top-width')),\n right: parseFloat(this.modal_dialog.css('border-right-width')) + parseFloat(this.modal_content.css('border-right-width')) + parseFloat(this.modal_body.css('border-right-width')),\n bottom: parseFloat(this.modal_dialog.css('border-bottom-width')) + parseFloat(this.modal_content.css('border-bottom-width')) + parseFloat(this.modal_body.css('border-bottom-width')),\n left: parseFloat(this.modal_dialog.css('border-left-width')) + parseFloat(this.modal_content.css('border-left-width')) + parseFloat(this.modal_body.css('border-left-width'))\n };\n this.padding = {\n top: parseFloat(this.modal_dialog.css('padding-top')) + parseFloat(this.modal_content.css('padding-top')) + parseFloat(this.modal_body.css('padding-top')),\n right: parseFloat(this.modal_dialog.css('padding-right')) + parseFloat(this.modal_content.css('padding-right')) + parseFloat(this.modal_body.css('padding-right')),\n bottom: parseFloat(this.modal_dialog.css('padding-bottom')) + parseFloat(this.modal_content.css('padding-bottom')) + parseFloat(this.modal_body.css('padding-bottom')),\n left: parseFloat(this.modal_dialog.css('padding-left')) + parseFloat(this.modal_content.css('padding-left')) + parseFloat(this.modal_body.css('padding-left'))\n };\n this.modal.on('show.bs.modal', this.options.onShow.bind(this)).on('shown.bs.modal', (function(_this) {\n return function() {\n _this.modal_shown();\n return _this.options.onShown.call(_this);\n };\n })(this)).on('hide.bs.modal', this.options.onHide.bind(this)).on('hidden.bs.modal', (function(_this) {\n return function() {\n if (_this.gallery) {\n $(document).off('keydown.ekkoLightbox');\n }\n _this.modal.remove();\n return _this.options.onHidden.call(_this);\n };\n })(this)).modal('show', options);\n return this.modal;\n };\n\n EkkoLightbox.prototype = {\n modal_shown: function() {\n var video_id;\n if (!this.options.remote) {\n return this.error('No remote target given');\n } else {\n this.gallery = this.$element.data('gallery');\n if (this.gallery) {\n if (this.options.gallery_parent_selector === 'document.body' || this.options.gallery_parent_selector === '') {\n this.gallery_items = $(document.body).find('*[data-gallery=\"' + this.gallery + '\"]');\n } else {\n this.gallery_items = this.$element.parents(this.options.gallery_parent_selector).first().find('*[data-gallery=\"' + this.gallery + '\"]');\n }\n this.gallery_index = this.gallery_items.index(this.$element);\n $(document).on('keydown.ekkoLightbox', this.navigate.bind(this));\n if (this.options.directional_arrows && this.gallery_items.length > 1) {\n this.lightbox_container.append('
                      ');\n this.modal_arrows = this.lightbox_container.find('div.ekko-lightbox-nav-overlay').first();\n this.lightbox_container.find('a' + this.strip_spaces(this.options.left_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_left();\n };\n })(this));\n this.lightbox_container.find('a' + this.strip_spaces(this.options.right_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_right();\n };\n })(this));\n }\n }\n if (this.options.type) {\n if (this.options.type === 'image') {\n return this.preloadImage(this.options.remote, true);\n } else if (this.options.type === 'youtube' && (video_id = this.getYoutubeId(this.options.remote))) {\n return this.showYoutubeVideo(video_id);\n } else if (this.options.type === 'vimeo') {\n return this.showVimeoVideo(this.options.remote);\n } else if (this.options.type === 'instagram') {\n return this.showInstagramVideo(this.options.remote);\n } else if (this.options.type === 'url') {\n return this.loadRemoteContent(this.options.remote);\n } else if (this.options.type === 'video') {\n return this.showVideoIframe(this.options.remote);\n } else {\n return this.error(\"Could not detect remote target type. Force the type using data-type=\\\"image|youtube|vimeo|instagram|url|video\\\"\");\n }\n } else {\n return this.detectRemoteType(this.options.remote);\n }\n }\n },\n strip_stops: function(str) {\n return str.replace(/\\./g, '');\n },\n strip_spaces: function(str) {\n return str.replace(/\\s/g, '');\n },\n isImage: function(str) {\n return str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n },\n isSwf: function(str) {\n return str.match(/\\.(swf)((\\?|#).*)?$/i);\n },\n getYoutubeId: function(str) {\n var match;\n match = str.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/);\n if (match && match[2].length === 11) {\n return match[2];\n } else {\n return false;\n }\n },\n getVimeoId: function(str) {\n if (str.indexOf('vimeo') > 0) {\n return str;\n } else {\n return false;\n }\n },\n getInstagramId: function(str) {\n if (str.indexOf('instagram') > 0) {\n return str;\n } else {\n return false;\n }\n },\n navigate: function(event) {\n event = event || window.event;\n if (event.keyCode === 39 || event.keyCode === 37) {\n if (event.keyCode === 39) {\n return this.navigate_right();\n } else if (event.keyCode === 37) {\n return this.navigate_left();\n }\n }\n },\n navigateTo: function(index) {\n var next, src;\n if (index < 0 || index > this.gallery_items.length - 1) {\n return this;\n }\n this.showLoading();\n this.gallery_index = index;\n this.$element = $(this.gallery_items.get(this.gallery_index));\n this.updateTitleAndFooter();\n src = this.$element.attr('data-remote') || this.$element.attr('href');\n this.detectRemoteType(src, this.$element.attr('data-type') || false);\n if (this.gallery_index + 1 < this.gallery_items.length) {\n next = $(this.gallery_items.get(this.gallery_index + 1), false);\n src = next.attr('data-remote') || next.attr('href');\n if (next.attr('data-type') === 'image' || this.isImage(src)) {\n return this.preloadImage(src, false);\n }\n }\n },\n navigate_left: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === 0) {\n this.gallery_index = this.gallery_items.length - 1;\n } else {\n this.gallery_index--;\n }\n this.options.onNavigate.call(this, 'left', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n navigate_right: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === this.gallery_items.length - 1) {\n this.gallery_index = 0;\n } else {\n this.gallery_index++;\n }\n this.options.onNavigate.call(this, 'right', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n detectRemoteType: function(src, type) {\n var video_id;\n type = type || false;\n if (type === 'image' || this.isImage(src)) {\n this.options.type = 'image';\n return this.preloadImage(src, true);\n } else if (type === 'youtube' || (video_id = this.getYoutubeId(src))) {\n this.options.type = 'youtube';\n return this.showYoutubeVideo(video_id);\n } else if (type === 'vimeo' || (video_id = this.getVimeoId(src))) {\n this.options.type = 'vimeo';\n return this.showVimeoVideo(video_id);\n } else if (type === 'instagram' || (video_id = this.getInstagramId(src))) {\n this.options.type = 'instagram';\n return this.showInstagramVideo(video_id);\n } else if (type === 'video') {\n this.options.type = 'video';\n return this.showVideoIframe(video_id);\n } else {\n this.options.type = 'url';\n return this.loadRemoteContent(src);\n }\n },\n updateTitleAndFooter: function() {\n var caption, footer, header, title;\n header = this.modal_content.find('.modal-header');\n footer = this.modal_content.find('.modal-footer');\n title = this.$element.data('title') || \"\";\n caption = this.$element.data('footer') || \"\";\n if (title || this.options.always_show_close) {\n header.css('display', '').find('.modal-title').html(title || \" \");\n } else {\n header.css('display', 'none');\n }\n if (caption) {\n footer.css('display', '').html(caption);\n } else {\n footer.css('display', 'none');\n }\n return this;\n },\n showLoading: function() {\n this.lightbox_body.html('
                      ' + this.options.loadingMessage + '
                      ');\n return this;\n },\n showYoutubeVideo: function(id) {\n var height, rel, width;\n if ((this.$element.attr('data-norelated') != null) || this.options.no_related) {\n rel = \"&rel=0\";\n } else {\n rel = \"\";\n }\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (560 / 315);\n return this.showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + rel, width, height);\n },\n showVimeoVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (500 / 281);\n return this.showVideoIframe(id + '?autoplay=1', width, height);\n },\n showInstagramVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 612);\n this.resize(width);\n height = width + 80;\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n return this.modal_arrows.css('display', 'none');\n }\n },\n showVideoIframe: function(url, width, height) {\n height = height || width;\n this.resize(width);\n this.lightbox_body.html('
                      ');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n loadRemoteContent: function(url) {\n var disableExternalCheck, width;\n width = this.$element.data('width') || 560;\n this.resize(width);\n disableExternalCheck = this.$element.data('disableExternalCheck') || false;\n if (!disableExternalCheck && !this.isExternal(url)) {\n this.lightbox_body.load(url, $.proxy((function(_this) {\n return function() {\n return _this.$element.trigger('loaded.bs.modal');\n };\n })(this)));\n } else {\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n }\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n isExternal: function(url) {\n var match;\n match = url.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\n if (typeof match[1] === \"string\" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) {\n return true;\n }\n if (typeof match[2] === \"string\" && match[2].length > 0 && match[2].replace(new RegExp(\":(\" + {\n \"http:\": 80,\n \"https:\": 443\n }[location.protocol] + \")?$\"), \"\") !== location.host) {\n return true;\n }\n return false;\n },\n error: function(message) {\n this.lightbox_body.html(message);\n return this;\n },\n preloadImage: function(src, onLoadShowImage) {\n var img;\n img = new Image();\n if ((onLoadShowImage == null) || onLoadShowImage === true) {\n img.onload = (function(_this) {\n return function() {\n var image;\n image = $('');\n image.attr('src', img.src);\n image.addClass('img-responsive');\n _this.lightbox_body.html(image);\n if (_this.modal_arrows) {\n _this.modal_arrows.css('display', 'block');\n }\n return image.load(function() {\n if (_this.options.scale_height) {\n _this.scaleHeight(img.height, img.width);\n } else {\n _this.resize(img.width);\n }\n return _this.options.onContentLoaded.call(_this);\n });\n };\n })(this);\n img.onerror = (function(_this) {\n return function() {\n return _this.error('Failed to load image: ' + src);\n };\n })(this);\n }\n img.src = src;\n return img;\n },\n scaleHeight: function(height, width) {\n var border_padding, factor, footer_height, header_height, margins, max_height;\n header_height = this.modal_header.outerHeight(true) || 0;\n footer_height = this.modal_footer.outerHeight(true) || 0;\n if (!this.modal_footer.is(':visible')) {\n footer_height = 0;\n }\n if (!this.modal_header.is(':visible')) {\n header_height = 0;\n }\n border_padding = this.border.top + this.border.bottom + this.padding.top + this.padding.bottom;\n margins = parseFloat(this.modal_dialog.css('margin-top')) + parseFloat(this.modal_dialog.css('margin-bottom'));\n max_height = $(window).height() - border_padding - margins - header_height - footer_height;\n factor = Math.min(max_height / height, 1);\n this.modal_dialog.css('height', 'auto').css('max-height', max_height);\n return this.resize(factor * width);\n },\n resize: function(width) {\n var width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n this.modal_dialog.css('width', 'auto').css('max-width', width_total);\n this.lightbox_container.find('a').css('line-height', function() {\n return $(this).parent().height() + 'px';\n });\n return this;\n },\n checkDimensions: function(width) {\n var body_width, width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n body_width = document.body.clientWidth;\n if (width_total > body_width) {\n width = this.modal_body.width();\n }\n return width;\n },\n close: function() {\n return this.modal.modal('hide');\n },\n addTrailingSlash: function(url) {\n if (url.substr(-1) !== '/') {\n url += '/';\n }\n return url;\n }\n };\n\n $.fn.ekkoLightbox = function(options) {\n return this.each(function() {\n var $this;\n $this = $(this);\n options = $.extend({\n remote: $this.attr('data-remote') || $this.attr('href'),\n gallery_parent_selector: $this.attr('data-parent'),\n type: $this.attr('data-type')\n }, options, $this.data());\n new EkkoLightbox(this, options);\n return this;\n });\n };\n\n $.fn.ekkoLightbox.defaults = {\n gallery_parent_selector: 'document.body',\n left_arrow_class: '.glyphicon .glyphicon-chevron-left',\n right_arrow_class: '.glyphicon .glyphicon-chevron-right',\n directional_arrows: true,\n type: null,\n always_show_close: true,\n no_related: false,\n scale_height: true,\n loadingMessage: 'Loading...',\n onShow: function() {},\n onShown: function() {},\n onHide: function() {},\n onHidden: function() {},\n onNavigate: function() {},\n onContentLoaded: function() {}\n };\n\n}).call(this);\n","/**\n * Module containing core application logic.\n * @param {jQuery} $ Insulated jQuery object\n * @param {JSON} settings Insulated `window.snipeit.settings` object.\n * @return {IIFE} Immediately invoked. Returns self.\n */\n\n\nvar pieOptions = {\n //Boolean - Whether we should show a stroke on each segment\n segmentShowStroke: true,\n //String - The colour of each segment stroke\n segmentStrokeColor: \"#fff\",\n //Number - The width of each segment stroke\n segmentStrokeWidth: 1,\n //Number - The percentage of the chart that we cut out of the middle\n percentageInnerCutout: 50, // This is 0 for Pie charts\n //Number - Amount of animation steps\n animationSteps: 100,\n //String - Animation easing effect\n animationEasing: \"easeOutBounce\",\n //Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n //Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false,\n //Boolean - whether to make the chart responsive to window resizing\n responsive: true,\n // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container\n maintainAspectRatio: false,\n\n //String - A legend template\n legendTemplate: \"
                        -legend\\\"><% for (var i=0; i
                      • \" +\n \"\" +\n \"<%if(segments[i].label){%><%=segments[i].label%><%}%> foo
                      • <%}%>
                      \",\n //String - A tooltip template\n tooltipTemplate: \"<%=value %> <%=label%> \"\n};\n//console.dir(pieOptions);\n//Create pie or douhnut chart\n// You can switch between pie and douhnut using the method below.\n//pieChart.Doughnut(PieData, pieOptions);\n//-----------------\n//- END PIE CHART -\n//-----------------\n\n\n\n(function($, settings) {\n var Components = {};\n Components.modals = {};\n\n // confirm delete modal\n Components.modals.confirmDelete = function() {\n var $el = $('table');\n\n var events = {\n 'click': function(evnt) {\n var $context = $(this);\n var $dataConfirmModal = $('#dataConfirmModal');\n var href = $context.attr('href');\n var message = $context.attr('data-content');\n var title = $context.attr('data-title');\n\n $('#myModalLabel').text(title);\n $dataConfirmModal.find('.modal-body').text(message);\n $('#deleteForm').attr('action', href);\n $dataConfirmModal.modal({\n show: true\n });\n return false;\n }\n };\n\n var render = function() {\n $el.on('click', '.delete-asset', events['click']);\n };\n\n return {\n render: render\n };\n };\n\n\n /**\n * Application start point\n * Component definition stays out of load event, execution only happens.\n */\n $(function() {\n new Components.modals.confirmDelete().render();\n });\n}(jQuery, window.snipeit.settings));\n\n\n// Vue.component(\n// 'passport-clients',\n// require('./components/passport/Clients.vue')\n// );\n//\n// Vue.component(\n// 'passport-authorized-clients',\n// require('./components/passport/AuthorizedClients.vue')\n// );\n//\n// Vue.component(\n// 'passport-personal-access-tokens',\n// require('./components/passport/PersonalAccessTokens.vue')\n// );\n"]} \ No newline at end of file diff --git a/public/build/assets/js/all-7289d0f397.js b/public/build/assets/js/all-badb120e11.js old mode 100755 new mode 100644 similarity index 98% rename from public/build/assets/js/all-7289d0f397.js rename to public/build/assets/js/all-badb120e11.js index 9e12af3e62..f3761db656 --- a/public/build/assets/js/all-7289d0f397.js +++ b/public/build/assets/js/all-badb120e11.js @@ -34319,757 +34319,4 @@ var pieOptions = { // require('./components/passport/PersonalAccessTokens.vue') // ); -/*! AdminLTE app.js - * ================ - * Main JS application file for AdminLTE v2. This file - * should be included in all pages. It controls some layout - * options and implements exclusive AdminLTE plugins. - * - * @Author Almsaeed Studio - * @Support - * @Email - * @version 2.3.0 - * @license MIT - */ - -//Make sure jQuery has been loaded before app.js -if (typeof jQuery === "undefined") { - throw new Error("AdminLTE requires jQuery"); -} - - -/* AdminLTE - * - * @type Object - * @description $.AdminLTE is the main object for the template's app. - * It's used for implementing functions and options related - * to the template. Keeping everything wrapped in an object - * prevents conflict with other plugins and is a better - * way to organize our code. - */ -$.AdminLTE = {}; - -/* -------------------- - * - AdminLTE Options - - * -------------------- - * Modify these options to suit your implementation - */ -$.AdminLTE.options = { - //Add slimscroll to navbar menus - //This requires you to load the slimscroll plugin - //in every page before app.js - navbarMenuSlimscroll: true, - navbarMenuSlimscrollWidth: "3px", //The width of the scroll bar - navbarMenuHeight: "200px", //The height of the inner menu - //General animation speed for JS animated elements such as box collapse/expand and - //sidebar treeview slide up/down. This options accepts an integer as milliseconds, - //'fast', 'normal', or 'slow' - animationSpeed: 500, - //Sidebar push menu toggle button selector - sidebarToggleSelector: "[data-toggle='offcanvas']", - //Activate sidebar push menu - sidebarPushMenu: true, - //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin) - sidebarSlimScroll: true, - //Enable sidebar expand on hover effect for sidebar mini - //This option is forced to true if both the fixed layout and sidebar mini - //are used together - sidebarExpandOnHover: false, - //BoxRefresh Plugin - enableBoxRefresh: true, - //Bootstrap.js tooltip - enableBSToppltip: true, - BSTooltipSelector: "[data-toggle='tooltip']", - //Enable Fast Click. Fastclick.js creates a more - //native touch experience with touch devices. If you - //choose to enable the plugin, make sure you load the script - //before AdminLTE's app.js - enableFastclick: true, - //Control Sidebar Options - enableControlSidebar: true, - controlSidebarOptions: { - //Which button should trigger the open/close event - toggleBtnSelector: "[data-toggle='control-sidebar']", - //The sidebar selector - selector: ".control-sidebar", - //Enable slide over content - slide: true - }, - //Box Widget Plugin. Enable this plugin - //to allow boxes to be collapsed and/or removed - enableBoxWidget: true, - //Box Widget plugin options - boxWidgetOptions: { - boxWidgetIcons: { - //Collapse icon - collapse: 'fa-minus', - //Open icon - open: 'fa-plus', - //Remove icon - remove: 'fa-times' - }, - boxWidgetSelectors: { - //Remove button selector - remove: '[data-widget="remove"]', - //Collapse button selector - collapse: '[data-widget="collapse"]' - } - }, - //Direct Chat plugin options - directChat: { - //Enable direct chat by default - enable: true, - //The button to open and close the chat contacts pane - contactToggleSelector: '[data-widget="chat-pane-toggle"]' - }, - //Define the set of colors to use globally around the website - colors: { - lightBlue: "#3c8dbc", - red: "#f56954", - green: "#00a65a", - aqua: "#00c0ef", - yellow: "#f39c12", - blue: "#0073b7", - navy: "#001F3F", - teal: "#39CCCC", - olive: "#3D9970", - lime: "#01FF70", - orange: "#FF851B", - fuchsia: "#F012BE", - purple: "#8E24AA", - maroon: "#D81B60", - black: "#222222", - gray: "#d2d6de" - }, - //The standard screen sizes that bootstrap uses. - //If you change these in the variables.less file, change - //them here too. - screenSizes: { - xs: 480, - sm: 768, - md: 992, - lg: 1200 - } -}; - -/* ------------------ - * - Implementation - - * ------------------ - * The next block of code implements AdminLTE's - * functions and plugins as specified by the - * options above. - */ -$(function () { - "use strict"; - - //Fix for IE page transitions - $("body").removeClass("hold-transition"); - - //Extend options if external options exist - if (typeof AdminLTEOptions !== "undefined") { - $.extend(true, - $.AdminLTE.options, - AdminLTEOptions); - } - - //Easy access to options - var o = $.AdminLTE.options; - - //Set up the object - _init(); - - //Activate the layout maker - $.AdminLTE.layout.activate(); - - //Enable sidebar tree view controls - $.AdminLTE.tree('.sidebar'); - - //Enable control sidebar - if (o.enableControlSidebar) { - $.AdminLTE.controlSidebar.activate(); - } - - //Add slimscroll to navbar dropdown - if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') { - $(".navbar .menu").slimscroll({ - height: o.navbarMenuHeight, - alwaysVisible: false, - size: o.navbarMenuSlimscrollWidth - }).css("width", "100%"); - } - - //Activate sidebar push menu - if (o.sidebarPushMenu) { - $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector); - } - - //Activate Bootstrap tooltip - if (o.enableBSToppltip) { - $('body').tooltip({ - selector: o.BSTooltipSelector - }); - } - - //Activate box widget - if (o.enableBoxWidget) { - $.AdminLTE.boxWidget.activate(); - } - - //Activate fast click - if (o.enableFastclick && typeof FastClick != 'undefined') { - FastClick.attach(document.body); - } - - //Activate direct chat widget - if (o.directChat.enable) { - $(document).on('click', o.directChat.contactToggleSelector, function () { - var box = $(this).parents('.direct-chat').first(); - box.toggleClass('direct-chat-contacts-open'); - }); - } - - /* - * INITIALIZE BUTTON TOGGLE - * ------------------------ - */ - $('.btn-group[data-toggle="btn-toggle"]').each(function () { - var group = $(this); - $(this).find(".btn").on('click', function (e) { - group.find(".btn.active").removeClass("active"); - $(this).addClass("active"); - e.preventDefault(); - }); - - }); -}); - -/* ---------------------------------- - * - Initialize the AdminLTE Object - - * ---------------------------------- - * All AdminLTE functions are implemented below. - */ -function _init() { - 'use strict'; - /* Layout - * ====== - * Fixes the layout height in case min-height fails. - * - * @type Object - * @usage $.AdminLTE.layout.activate() - * $.AdminLTE.layout.fix() - * $.AdminLTE.layout.fixSidebar() - */ - $.AdminLTE.layout = { - activate: function () { - var _this = this; - _this.fix(); - _this.fixSidebar(); - $(window, ".wrapper").resize(function () { - _this.fix(); - _this.fixSidebar(); - }); - }, - fix: function () { - //Get window height and the wrapper height - var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight(); - var window_height = $(window).height(); - var sidebar_height = $(".sidebar").height(); - //Set the min-height of the content and sidebar based on the - //the height of the document. - if ($("body").hasClass("fixed")) { - $(".content-wrapper, .right-side").css('min-height', window_height - $('.main-footer').outerHeight()); - } else { - var postSetWidth; - if (window_height >= sidebar_height) { - $(".content-wrapper, .right-side").css('min-height', window_height - neg); - postSetWidth = window_height - neg; - } else { - $(".content-wrapper, .right-side").css('min-height', sidebar_height); - postSetWidth = sidebar_height; - } - - //Fix for the control sidebar height - var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector); - if (typeof controlSidebar !== "undefined") { - if (controlSidebar.height() > postSetWidth) - $(".content-wrapper, .right-side").css('min-height', controlSidebar.height()); - } - - } - }, - fixSidebar: function () { - //Make sure the body tag has the .fixed class - if (!$("body").hasClass("fixed")) { - if (typeof $.fn.slimScroll != 'undefined') { - $(".sidebar").slimScroll({destroy: true}).height("auto"); - } - return; - } else if (typeof $.fn.slimScroll == 'undefined' && window.console) { - window.console.error("Error: the fixed layout requires the slimscroll plugin!"); - } - //Enable slimscroll for fixed layout - if ($.AdminLTE.options.sidebarSlimScroll) { - if (typeof $.fn.slimScroll != 'undefined') { - //Destroy if it exists - $(".sidebar").slimScroll({destroy: true}).height("auto"); - //Add slimscroll - $(".sidebar").slimscroll({ - height: ($(window).height() - $(".main-header").height()) + "px", - color: "rgba(0,0,0,0.2)", - size: "3px" - }); - } - } - } - }; - - /* PushMenu() - * ========== - * Adds the push menu functionality to the sidebar. - * - * @type Function - * @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']") - */ - $.AdminLTE.pushMenu = { - activate: function (toggleBtn) { - //Get the screen sizes - var screenSizes = $.AdminLTE.options.screenSizes; - - //Enable sidebar toggle - $(toggleBtn).on('click', function (e) { - e.preventDefault(); - - //Enable sidebar push menu - if ($(window).width() > (screenSizes.sm - 1)) { - if ($("body").hasClass('sidebar-collapse')) { - $("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu'); - } else { - $("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu'); - } - } - //Handle sidebar push menu for small screens - else { - if ($("body").hasClass('sidebar-open')) { - $("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu'); - } else { - $("body").addClass('sidebar-open').trigger('expanded.pushMenu'); - } - } - }); - - $(".content-wrapper").click(function () { - //Enable hide menu when clicking on the content-wrapper on small screens - if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) { - $("body").removeClass('sidebar-open'); - } - }); - - //Enable expand on hover for sidebar mini - if ($.AdminLTE.options.sidebarExpandOnHover - || ($('body').hasClass('fixed') - && $('body').hasClass('sidebar-mini'))) { - this.expandOnHover(); - } - }, - expandOnHover: function () { - var _this = this; - var screenWidth = $.AdminLTE.options.screenSizes.sm - 1; - //Expand sidebar on hover - $('.main-sidebar').hover(function () { - if ($('body').hasClass('sidebar-mini') - && $("body").hasClass('sidebar-collapse') - && $(window).width() > screenWidth) { - _this.expand(); - } - }, function () { - if ($('body').hasClass('sidebar-mini') - && $('body').hasClass('sidebar-expanded-on-hover') - && $(window).width() > screenWidth) { - _this.collapse(); - } - }); - }, - expand: function () { - $("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover'); - }, - collapse: function () { - if ($('body').hasClass('sidebar-expanded-on-hover')) { - $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse'); - } - } - }; - - /* Tree() - * ====== - * Converts the sidebar into a multilevel - * tree view menu. - * - * @type Function - * @Usage: $.AdminLTE.tree('.sidebar') - */ - $.AdminLTE.tree = function (menu) { - var _this = this; - var animationSpeed = $.AdminLTE.options.animationSpeed; - $(document).on('click', menu + ' li a', function (e) { - //Get the clicked link and the next element - var $this = $(this); - var checkElement = $this.next(); - - //Check if the next element is a menu and is visible - if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible'))) { - //Close the menu - checkElement.slideUp(animationSpeed, function () { - checkElement.removeClass('menu-open'); - //Fix the layout in case the sidebar stretches over the height of the window - //_this.layout.fix(); - }); - checkElement.parent("li").removeClass("active"); - } - //If the menu is not visible - else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) { - //Get the parent menu - var parent = $this.parents('ul').first(); - //Close all open menus within the parent - var ul = parent.find('ul:visible').slideUp(animationSpeed); - //Remove the menu-open class from the parent - ul.removeClass('menu-open'); - //Get the parent li - var parent_li = $this.parent("li"); - - //Open the target menu and add the menu-open class - checkElement.slideDown(animationSpeed, function () { - //Add the class active to the parent li - checkElement.addClass('menu-open'); - parent.find('li.active').removeClass('active'); - parent_li.addClass('active'); - //Fix the layout in case the sidebar stretches over the height of the window - _this.layout.fix(); - }); - } - //if this isn't a link, prevent the page from being redirected - if (checkElement.is('.treeview-menu')) { - e.preventDefault(); - } - }); - }; - - /* ControlSidebar - * ============== - * Adds functionality to the right sidebar - * - * @type Object - * @usage $.AdminLTE.controlSidebar.activate(options) - */ - $.AdminLTE.controlSidebar = { - //instantiate the object - activate: function () { - //Get the object - var _this = this; - //Update options - var o = $.AdminLTE.options.controlSidebarOptions; - //Get the sidebar - var sidebar = $(o.selector); - //The toggle button - var btn = $(o.toggleBtnSelector); - - //Listen to the click event - btn.on('click', function (e) { - e.preventDefault(); - //If the sidebar is not open - if (!sidebar.hasClass('control-sidebar-open') - && !$('body').hasClass('control-sidebar-open')) { - //Open the sidebar - _this.open(sidebar, o.slide); - } else { - _this.close(sidebar, o.slide); - } - }); - - //If the body has a boxed layout, fix the sidebar bg position - var bg = $(".control-sidebar-bg"); - _this._fix(bg); - - //If the body has a fixed layout, make the control sidebar fixed - if ($('body').hasClass('fixed')) { - _this._fixForFixed(sidebar); - } else { - //If the content height is less than the sidebar's height, force max height - if ($('.content-wrapper, .right-side').height() < sidebar.height()) { - _this._fixForContent(sidebar); - } - } - }, - //Open the control sidebar - open: function (sidebar, slide) { - //Slide over content - if (slide) { - sidebar.addClass('control-sidebar-open'); - } else { - //Push the content by adding the open class to the body instead - //of the sidebar itself - $('body').addClass('control-sidebar-open'); - } - }, - //Close the control sidebar - close: function (sidebar, slide) { - if (slide) { - sidebar.removeClass('control-sidebar-open'); - } else { - $('body').removeClass('control-sidebar-open'); - } - }, - _fix: function (sidebar) { - var _this = this; - if ($("body").hasClass('layout-boxed')) { - sidebar.css('position', 'absolute'); - sidebar.height($(".wrapper").height()); - $(window).resize(function () { - _this._fix(sidebar); - }); - } else { - sidebar.css({ - 'position': 'fixed', - 'height': 'auto' - }); - } - }, - _fixForFixed: function (sidebar) { - sidebar.css({ - 'position': 'fixed', - 'max-height': '100%', - 'overflow': 'auto', - 'padding-bottom': '50px' - }); - }, - _fixForContent: function (sidebar) { - $(".content-wrapper, .right-side").css('min-height', sidebar.height()); - } - }; - - /* BoxWidget - * ========= - * BoxWidget is a plugin to handle collapsing and - * removing boxes from the screen. - * - * @type Object - * @usage $.AdminLTE.boxWidget.activate() - * Set all your options in the main $.AdminLTE.options object - */ - $.AdminLTE.boxWidget = { - selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors, - icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons, - animationSpeed: $.AdminLTE.options.animationSpeed, - activate: function (_box) { - var _this = this; - if (!_box) { - _box = document; // activate all boxes per default - } - //Listen for collapse event triggers - $(_box).on('click', _this.selectors.collapse, function (e) { - e.preventDefault(); - _this.collapse($(this)); - }); - - //Listen for remove event triggers - $(_box).on('click', _this.selectors.remove, function (e) { - e.preventDefault(); - _this.remove($(this)); - }); - }, - collapse: function (element) { - var _this = this; - //Find the box parent - var box = element.parents(".box").first(); - //Find the body and the footer - var box_content = box.find("> .box-body, > .box-footer, > form >.box-body, > form > .box-footer"); - if (!box.hasClass("collapsed-box")) { - //Convert minus into plus - element.children(":first") - .removeClass(_this.icons.collapse) - .addClass(_this.icons.open); - //Hide the content - box_content.slideUp(_this.animationSpeed, function () { - box.addClass("collapsed-box"); - }); - } else { - //Convert plus into minus - element.children(":first") - .removeClass(_this.icons.open) - .addClass(_this.icons.collapse); - //Show the content - box_content.slideDown(_this.animationSpeed, function () { - box.removeClass("collapsed-box"); - }); - } - }, - remove: function (element) { - //Find the box parent - var box = element.parents(".box").first(); - box.slideUp(this.animationSpeed); - } - }; -} - -/* ------------------ - * - Custom Plugins - - * ------------------ - * All custom plugins are defined below. - */ - -/* - * BOX REFRESH BUTTON - * ------------------ - * This is a custom plugin to use with the component BOX. It allows you to add - * a refresh button to the box. It converts the box's state to a loading state. - * - * @type plugin - * @usage $("#box-widget").boxRefresh( options ); - */ -(function ($) { - - "use strict"; - - $.fn.boxRefresh = function (options) { - - // Render options - var settings = $.extend({ - //Refresh button selector - trigger: ".refresh-btn", - //File source to be loaded (e.g: ajax/src.php) - source: "", - //Callbacks - onLoadStart: function (box) { - return box; - }, //Right after the button has been clicked - onLoadDone: function (box) { - return box; - } //When the source has been loaded - - }, options); - - //The overlay - var overlay = $('
                      '); - - return this.each(function () { - //if a source is specified - if (settings.source === "") { - if (window.console) { - window.console.log("Please specify a source first - boxRefresh()"); - } - return; - } - //the box - var box = $(this); - //the button - var rBtn = box.find(settings.trigger).first(); - - //On trigger click - rBtn.on('click', function (e) { - e.preventDefault(); - //Add loading overlay - start(box); - - //Perform ajax call - box.find(".box-body").load(settings.source, function () { - done(box); - }); - }); - }); - - function start(box) { - //Add overlay and loading img - box.append(overlay); - - settings.onLoadStart.call(box); - } - - function done(box) { - //Remove overlay and loading img - box.find(overlay).remove(); - - settings.onLoadDone.call(box); - } - - }; - -})(jQuery); - -/* - * EXPLICIT BOX ACTIVATION - * ----------------------- - * This is a custom plugin to use with the component BOX. It allows you to activate - * a box inserted in the DOM after the app.js was loaded. - * - * @type plugin - * @usage $("#box-widget").activateBox(); - */ -(function ($) { - - 'use strict'; - - $.fn.activateBox = function () { - $.AdminLTE.boxWidget.activate(this); - }; - -})(jQuery); - -/* - * TODO LIST CUSTOM PLUGIN - * ----------------------- - * This plugin depends on iCheck plugin for checkbox and radio inputs - * - * @type plugin - * @usage $("#todo-widget").todolist( options ); - */ -(function ($) { - - 'use strict'; - - $.fn.todolist = function (options) { - // Render options - var settings = $.extend({ - //When the user checks the input - onCheck: function (ele) { - return ele; - }, - //When the user unchecks the input - onUncheck: function (ele) { - return ele; - } - }, options); - - return this.each(function () { - - if (typeof $.fn.iCheck != 'undefined') { - $('input', this).on('ifChecked', function () { - var ele = $(this).parents("li").first(); - ele.toggleClass("done"); - settings.onCheck.call(ele); - }); - - $('input', this).on('ifUnchecked', function () { - var ele = $(this).parents("li").first(); - ele.toggleClass("done"); - settings.onUncheck.call(ele); - }); - } else { - $('input', this).on('change', function () { - var ele = $(this).parents("li").first(); - ele.toggleClass("done"); - if ($('input', ele).is(":checked")) { - settings.onCheck.call(ele); - } else { - settings.onUncheck.call(ele); - } - }); - } - }); - }; -}(jQuery)); - -//------------- -//- PIE CHART - -//------------- -// Get context with jQuery - using jQuery's .get() method. - //# sourceMappingURL=all.js.map diff --git a/public/build/assets/js/all.js.map b/public/build/assets/js/all.js.map index 26197017a3..da898dfaaa 100644 --- a/public/build/assets/js/all.js.map +++ b/public/build/assets/js/all.js.map @@ -1 +1 @@ -{"version":3,"sources":["jQuery-2.1.4.min.js","jquery-ui.js","jquery.ui.widget.js","jquery.iframe-transport.js","jquery.fileupload.js","bootstrap.js","fastclick.js","jquery.slimscroll.js","select2.full.min.js","bootstrap-colorpicker.js","bootstrap-table.js","bootstrap-datepicker.js","select2.js","icheck.js","ekko-lightbox.js","snipeit.js","app.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxugBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3zEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1eA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACr7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACloFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvoDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3xKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"all.js","sourcesContent":["/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */\n!function(a,b){\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m=\"2.1.4\",n=function(a,b){return new n.fn.init(a,b)},o=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,p=/^-ms-/,q=/-([\\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:\"\",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:\"jQuery\"+(m+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return\"object\"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,\"isPrototypeOf\")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?h[i.call(a)]||\"object\":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf(\"use strict\")?(b=l.createElement(\"script\"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,\"ms-\").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(o,\"\")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,\"string\"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return\"string\"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){h[\"[object \"+b+\"]\"]=b.toLowerCase()});function s(a){var b=\"length\"in a&&a.length,c=n.type(a);return\"function\"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=\"sizzle\"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",L=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",M=\"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",N=M.replace(\"w\",\"w#\"),O=\"\\\\[\"+L+\"*(\"+M+\")(?:\"+L+\"*([*^$|!~]?=)\"+L+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+N+\"))|)\"+L+\"*\\\\]\",P=\":(\"+M+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+O+\")*)|.*)\\\\)|)\",Q=new RegExp(L+\"+\",\"g\"),R=new RegExp(\"^\"+L+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+L+\"+$\",\"g\"),S=new RegExp(\"^\"+L+\"*,\"+L+\"*\"),T=new RegExp(\"^\"+L+\"*([>+~]|\"+L+\")\"+L+\"*\"),U=new RegExp(\"=\"+L+\"*([^\\\\]'\\\"]*?)\"+L+\"*\\\\]\",\"g\"),V=new RegExp(P),W=new RegExp(\"^\"+N+\"$\"),X={ID:new RegExp(\"^#(\"+M+\")\"),CLASS:new RegExp(\"^\\\\.(\"+M+\")\"),TAG:new RegExp(\"^(\"+M.replace(\"w\",\"w*\")+\")\"),ATTR:new RegExp(\"^\"+O),PSEUDO:new RegExp(\"^\"+P),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+L+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+L+\"*(?:([+-]|)\"+L+\"*(\\\\d+)|))\"+L+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+K+\")$\",\"i\"),needsContext:new RegExp(\"^\"+L+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+L+\"*((?:-\\\\d)?\\\\d*)\"+L+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,$=/^[^{]+\\{\\s*\\[native \\w/,_=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,aa=/[+~]/,ba=/'|\\\\/g,ca=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+L+\"?|(\"+L+\")|.)\",\"ig\"),da=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,\"string\"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&\"object\"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(\"id\"))?s=r.replace(ba,\"\\\\$&\"):b.setAttribute(\"id\",s),s=\"[id='\"+s+\"'] \",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(\",\")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(\"id\")}}}return i(a.replace(R,\"$1\"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+\" \")>d.cacheLength&&delete b[a.shift()],b[c+\" \"]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(\"div\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(\"|\"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&\"undefined\"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener(\"unload\",ea,!1):e.attachEvent&&e.attachEvent(\"onunload\",ea)),p=!f(g),c.attributes=ja(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(\"undefined\"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute(\"id\")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c=\"undefined\"!=typeof a.getAttributeNode&&a.getAttributeNode(\"id\");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return\"undefined\"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=\"\",a.querySelectorAll(\"[msallowcapture^='']\").length&&q.push(\"[*^$]=\"+L+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\"[selected]\").length||q.push(\"\\\\[\"+L+\"*(?:value|\"+K+\")\"),a.querySelectorAll(\"[id~=\"+u+\"-]\").length||q.push(\"~=\"),a.querySelectorAll(\":checked\").length||q.push(\":checked\"),a.querySelectorAll(\"a#\"+u+\"+*\").length||q.push(\".#.+[+~]\")}),ja(function(a){var b=g.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"name\",\"D\"),a.querySelectorAll(\"[name=d]\").length&&q.push(\"name\"+L+\"*[*^$|!~]?=\"),a.querySelectorAll(\":enabled\").length||q.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),q.push(\",.*:\")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,\"div\"),s.call(a,\"[s!='']:x\"),r.push(\"!=\",P)}),q=q.length&&new RegExp(q.join(\"|\")),r=r.length&&new RegExp(r.join(\"|\")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,\"='$1']\"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=\"\",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||\"\").replace(ca,da),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||\"\":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(\")\",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+\" \"];return b||(b=new RegExp(\"(^|\"+L+\")\"+a+\"(\"+L+\"|$)\"))&&y(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||\"undefined\"!=typeof a.getAttribute&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?\"!=\"===b:b?(e+=\"\",\"=\"===b?e===c:\"!=\"===b?e!==c:\"^=\"===b?c&&0===e.indexOf(c):\"*=\"===b?c&&e.indexOf(c)>-1:\"$=\"===b?c&&e.slice(-c.length)===c:\"~=\"===b?(\" \"+e.replace(Q,\" \")+\" \").indexOf(c)>-1:\"|=\"===b?e===c||e.slice(0,c.length+1)===c+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(\"unsupported pseudo: \"+a);return e[u]?e(b):e.length>1?(c=[a,a,\"\",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,\"$1\"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||\"\")||ga.error(\"unsupported lang: \"+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||\"text\"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&\"parentNode\"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||\"*\",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[\" \"],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:\" \"===a[i-2].type?\"*\":\"\"})).replace(R,\"$1\"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q=\"0\",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(\"*\",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+\" \"];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=\"function\"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&\"ID\"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split(\"\").sort(B).join(\"\")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement(\"div\"))}),ja(function(a){return a.innerHTML=\"\",\"#\"===a.firstChild.getAttribute(\"href\")})||ka(\"type|href|height|width\",function(a,b,c){return c?void 0:a.getAttribute(b,\"type\"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=\"\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||ka(\"value\",function(a,b,c){return c||\"input\"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(\"disabled\")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[\":\"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,w=/^.[^:#\\[\\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if(\"string\"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+\" \"+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,\"string\"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if(\"string\"==typeof a){if(c=\"<\"===a[0]&&\">\"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?\"undefined\"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||\"string\"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?\"string\"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,\"parentNode\")},parentsUntil:function(a,b,c){return n.dir(a,\"parentNode\",c)},next:function(a){return D(a,\"nextSibling\")},prev:function(a){return D(a,\"previousSibling\")},nextAll:function(a){return n.dir(a,\"nextSibling\")},prevAll:function(a){return n.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return n.dir(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return n.dir(a,\"previousSibling\",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a=\"string\"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);\"function\"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&\"string\"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[[\"resolve\",\"done\",n.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",n.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",n.Callbacks(\"memory\")]],c=\"pending\",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+\"With\"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+\"With\"](this===e?d:this,arguments),this},e[f[0]+\"With\"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(\"ready\"),n(l).off(\"ready\"))))}});function I(){l.removeEventListener(\"DOMContentLoaded\",I,!1),a.removeEventListener(\"load\",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),\"complete\"===l.readyState?setTimeout(n.ready):(l.addEventListener(\"DOMContentLoaded\",I,!1),a.addEventListener(\"load\",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(\"object\"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if(\"string\"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&\"string\"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(O,\"-$1\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){\nreturn M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,\"hasDataAttrs\"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf(\"data-\")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,\"hasDataAttrs\",!0)}return e}return\"object\"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf(\"-\")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||\"fx\")+\"queue\",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||\"fx\";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(\"once memory\").add(function(){L.remove(a,[b+\"queue\",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return\"string\"!=typeof a&&(b=a,a=\"fx\",c--),arguments.lengthx\",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U=\"undefined\";k.focusinBubbles=\"onfocusin\"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(\".\")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,\"events\"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,\"type\")?b.type:b,r=j.call(b,\"namespace\")?b.namespace.split(\".\"):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(\".\")>=0&&(r=q.split(\".\"),q=r.shift(),r.sort()),k=q.indexOf(\":\")<0&&\"on\"+q,b=b[n.expando]?b:new n.Event(q,\"object\"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join(\".\"),b.namespace_re=b.namespace?new RegExp(\"(^|\\\\.)\"+r.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,\"events\")||{})[b.type]&&L.get(g,\"handle\"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,\"events\")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||\"click\"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||\"click\"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\\/>/gi,ba=/<([\\w:]+)/,ca=/<|&#?\\w+;/,da=/<(?:script|style|link)/i,ea=/checked\\s*(?:[^=]|=\\s*.checked.)/i,fa=/^$|\\/(?:java|ecma)script/i,ga=/^true\\/(.*)/,ha=/^\\s*\\s*$/g,ia={option:[1,\"\"],thead:[1,\"\",\"
                      \"],col:[2,\"\",\"
                      \"],tr:[2,\"\",\"
                      \"],td:[3,\"\",\"
                      \"],_default:[0,\"\",\"\"]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,\"table\")&&n.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\")):a}function ka(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],\"globalEval\",!b||L.get(b[c],\"globalEval\"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&T.test(a.type)?b.checked=a.checked:(\"input\"===c||\"textarea\"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,\"script\"),g.length>0&&ma(g,!i&&oa(a,\"script\")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if(\"object\"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement(\"div\")),g=(ba.exec(e)||[\"\",\"\"])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,\"<$1>\")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=\"\"}else l.push(b.createTextNode(e));k.textContent=\"\",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),\"script\"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||\"\")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,\"script\")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(aa,\"<$1>\");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&\"string\"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,\"script\"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,\"script\"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||\"\")&&!L.access(h,\"globalEval\")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,\"\")))}return this}}),n.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],\"display\");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),\"none\"!==c&&c||(qa=(qa||n(\"'\n ).bind('load', function () {\n var fileInputClones,\n paramNames = $.isArray(options.paramName) ?\n options.paramName : [options.paramName];\n iframe\n .unbind('load')\n .bind('load', function () {\n var response;\n // Wrap in a try/catch block to catch exceptions thrown\n // when trying to access cross-domain iframe contents:\n try {\n response = iframe.contents();\n // Google Chrome and Firefox do not throw an\n // exception when calling iframe.contents() on\n // cross-domain requests, so we unify the response:\n if (!response.length || !response[0].firstChild) {\n throw new Error();\n }\n } catch (e) {\n response = undefined;\n }\n // The complete callback returns the\n // iframe content document as response object:\n completeCallback(\n 200,\n 'success',\n {'iframe': response}\n );\n // Fix for IE endless progress bar activity bug\n // (happens on form submits to iframe targets):\n $('')\n .appendTo(form);\n window.setTimeout(function () {\n // Removing the form in a setTimeout call\n // allows Chrome's developer tools to display\n // the response result\n form.remove();\n }, 0);\n });\n form\n .prop('target', iframe.prop('name'))\n .prop('action', options.url)\n .prop('method', options.type);\n if (options.formData) {\n $.each(options.formData, function (index, field) {\n $('')\n .prop('name', field.name)\n .val(field.value)\n .appendTo(form);\n });\n }\n if (options.fileInput && options.fileInput.length &&\n options.type === 'POST') {\n fileInputClones = options.fileInput.clone();\n // Insert a clone for each file input field:\n options.fileInput.after(function (index) {\n return fileInputClones[index];\n });\n if (options.paramName) {\n options.fileInput.each(function (index) {\n $(this).prop(\n 'name',\n paramNames[index] || options.paramName\n );\n });\n }\n // Appending the file input fields to the hidden form\n // removes them from their original location:\n form\n .append(options.fileInput)\n .prop('enctype', 'multipart/form-data')\n // enctype must be set as encoding for IE:\n .prop('encoding', 'multipart/form-data');\n // Remove the HTML5 form attribute from the input(s):\n options.fileInput.removeAttr('form');\n }\n form.submit();\n // Insert the file input fields at their original location\n // by replacing the clones with the originals:\n if (fileInputClones && fileInputClones.length) {\n options.fileInput.each(function (index, input) {\n var clone = $(fileInputClones[index]);\n // Restore the original name and form properties:\n $(input)\n .prop('name', clone.prop('name'))\n .attr('form', clone.attr('form'));\n clone.replaceWith(input);\n });\n }\n });\n form.append(iframe).appendTo(document.body);\n },\n abort: function () {\n if (iframe) {\n // javascript:false as iframe src aborts the request\n // and prevents warning popups on HTTPS in IE6.\n // concat is used to avoid the \"Script URL\" JSLint error:\n iframe\n .unbind('load')\n .prop('src', initialIframeSrc);\n }\n if (form) {\n form.remove();\n }\n }\n };\n }\n });\n\n // The iframe transport returns the iframe content document as response.\n // The following adds converters from iframe to text, json, html, xml\n // and script.\n // Please note that the Content-Type for JSON responses has to be text/plain\n // or text/html, if the browser doesn't include application/json in the\n // Accept header, else IE will show a download dialog.\n // The Content-Type for XML responses on the other hand has to be always\n // application/xml or text/xml, so IE properly parses the XML response.\n // See also\n // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\n $.ajaxSetup({\n converters: {\n 'iframe text': function (iframe) {\n return iframe && $(iframe[0].body).text();\n },\n 'iframe json': function (iframe) {\n return iframe && $.parseJSON($(iframe[0].body).text());\n },\n 'iframe html': function (iframe) {\n return iframe && $(iframe[0].body).html();\n },\n 'iframe xml': function (iframe) {\n var xmlDoc = iframe && iframe[0];\n return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\n $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\n $(xmlDoc.body).html());\n },\n 'iframe script': function (iframe) {\n return iframe && $.globalEval($(iframe[0].body).text());\n }\n }\n });\n\n}));\n","/*\n * jQuery File Upload Plugin 5.42.3\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document, location, Blob, FormData */\n\n(function (factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define([\n 'jquery',\n 'jquery.ui.widget'\n ], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS:\n factory(\n require('jquery'),\n require('./vendor/jquery.ui.widget')\n );\n } else {\n // Browser globals:\n factory(window.jQuery);\n }\n}(function ($) {\n 'use strict';\n\n // Detect file input support, based on\n // http://viljamis.com/blog/2012/file-upload-support-on-mobile/\n $.support.fileInput = !(new RegExp(\n // Handle devices which give false positives for the feature detection:\n '(Android (1\\\\.[0156]|2\\\\.[01]))' +\n '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\n '|(w(eb)?OSBrowser)|(webOS)' +\n '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))'\n ).test(window.navigator.userAgent) ||\n // Feature detection for all other devices:\n $('').prop('disabled'));\n\n // The FileReader API is not actually used, but works as feature detection,\n // as some Safari versions (5?) support XHR file uploads via the FormData API,\n // but not non-multipart XHR file uploads.\n // window.XMLHttpRequestUpload is not available on IE10, so we check for\n // window.ProgressEvent instead to detect XHR2 file upload capability:\n $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\n $.support.xhrFormDataFileUpload = !!window.FormData;\n\n // Detect support for Blob slicing (required for chunked uploads):\n $.support.blobSlice = window.Blob && (Blob.prototype.slice ||\n Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n\n // Helper function to create drag handlers for dragover/dragenter/dragleave:\n function getDragHandler(type) {\n var isDragOver = type === 'dragover';\n return function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var dataTransfer = e.dataTransfer;\n if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&\n this._trigger(\n type,\n $.Event(type, {delegatedEvent: e})\n ) !== false) {\n e.preventDefault();\n if (isDragOver) {\n dataTransfer.dropEffect = 'copy';\n }\n }\n };\n }\n\n // The fileupload widget listens for change events on file input fields defined\n // via fileInput setting and paste or drop events of the given dropZone.\n // In addition to the default jQuery Widget methods, the fileupload widget\n // exposes the \"add\" and \"send\" methods, to add or directly send files using\n // the fileupload API.\n // By default, files added via file input selection, paste, drag & drop or\n // \"add\" method are uploaded immediately, but it is possible to override\n // the \"add\" callback option to queue file uploads.\n $.widget('blueimp.fileupload', {\n\n options: {\n // The drop target element(s), by the default the complete document.\n // Set to null to disable drag & drop support:\n dropZone: $(document),\n // The paste target element(s), by the default undefined.\n // Set to a DOM node or jQuery object to enable file pasting:\n pasteZone: undefined,\n // The file input field(s), that are listened to for change events.\n // If undefined, it is set to the file input fields inside\n // of the widget element on plugin initialization.\n // Set to null to disable the change listener.\n fileInput: undefined,\n // By default, the file input field is replaced with a clone after\n // each input field change event. This is required for iframe transport\n // queues and allows change events to be fired for the same file\n // selection, but can be disabled by setting the following option to false:\n replaceFileInput: true,\n // The parameter name for the file form data (the request argument name).\n // If undefined or empty, the name property of the file input field is\n // used, or \"files[]\" if the file input name property is also empty,\n // can be a string or an array of strings:\n paramName: undefined,\n // By default, each file of a selection is uploaded using an individual\n // request for XHR type uploads. Set to false to upload file\n // selections in one request each:\n singleFileUploads: true,\n // To limit the number of files uploaded with one XHR request,\n // set the following option to an integer greater than 0:\n limitMultiFileUploads: undefined,\n // The following option limits the number of files uploaded with one\n // XHR request to keep the request size under or equal to the defined\n // limit in bytes:\n limitMultiFileUploadSize: undefined,\n // Multipart file uploads add a number of bytes to each uploaded file,\n // therefore the following option adds an overhead for each file used\n // in the limitMultiFileUploadSize configuration:\n limitMultiFileUploadSizeOverhead: 512,\n // Set the following option to true to issue all file upload requests\n // in a sequential order:\n sequentialUploads: false,\n // To limit the number of concurrent uploads,\n // set the following option to an integer greater than 0:\n limitConcurrentUploads: undefined,\n // Set the following option to true to force iframe transport uploads:\n forceIframeTransport: false,\n // Set the following option to the location of a redirect url on the\n // origin server, for cross-domain iframe transport uploads:\n redirect: undefined,\n // The parameter name for the redirect url, sent as part of the form\n // data and set to 'redirect' if this option is empty:\n redirectParamName: undefined,\n // Set the following option to the location of a postMessage window,\n // to enable postMessage transport uploads:\n postMessage: undefined,\n // By default, XHR file uploads are sent as multipart/form-data.\n // The iframe transport is always using multipart/form-data.\n // Set to false to enable non-multipart XHR uploads:\n multipart: true,\n // To upload large files in smaller chunks, set the following option\n // to a preferred maximum chunk size. If set to 0, null or undefined,\n // or the browser does not support the required Blob API, files will\n // be uploaded as a whole.\n maxChunkSize: undefined,\n // When a non-multipart upload or a chunked multipart upload has been\n // aborted, this option can be used to resume the upload by setting\n // it to the size of the already uploaded bytes. This option is most\n // useful when modifying the options object inside of the \"add\" or\n // \"send\" callbacks, as the options are cloned for each file upload.\n uploadedBytes: undefined,\n // By default, failed (abort or error) file uploads are removed from the\n // global progress calculation. Set the following option to false to\n // prevent recalculating the global progress data:\n recalculateProgress: true,\n // Interval in milliseconds to calculate and trigger progress events:\n progressInterval: 100,\n // Interval in milliseconds to calculate progress bitrate:\n bitrateInterval: 500,\n // By default, uploads are started automatically when adding files:\n autoUpload: true,\n\n // Error and info messages:\n messages: {\n uploadedBytes: 'Uploaded bytes exceed file size'\n },\n\n // Translation function, gets the message key to be translated\n // and an object with context specific data as arguments:\n i18n: function (message, context) {\n message = this.messages[message] || message.toString();\n if (context) {\n $.each(context, function (key, value) {\n message = message.replace('{' + key + '}', value);\n });\n }\n return message;\n },\n\n // Additional form data to be sent along with the file uploads can be set\n // using this option, which accepts an array of objects with name and\n // value properties, a function returning such an array, a FormData\n // object (for XHR file uploads), or a simple object.\n // The form of the first fileInput is given as parameter to the function:\n formData: function (form) {\n return form.serializeArray();\n },\n\n // The add callback is invoked as soon as files are added to the fileupload\n // widget (via file input selection, drag & drop, paste or add API call).\n // If the singleFileUploads option is enabled, this callback will be\n // called once for each file in the selection for XHR file uploads, else\n // once for each file selection.\n //\n // The upload starts when the submit method is invoked on the data parameter.\n // The data object contains a files property holding the added files\n // and allows you to override plugin options as well as define ajax settings.\n //\n // Listeners for this callback can also be bound the following way:\n // .bind('fileuploadadd', func);\n //\n // data.submit() returns a Promise object and allows to attach additional\n // handlers using jQuery's Deferred callbacks:\n // data.submit().done(func).fail(func).always(func);\n add: function (e, data) {\n if (e.isDefaultPrevented()) {\n return false;\n }\n if (data.autoUpload || (data.autoUpload !== false &&\n $(this).fileupload('option', 'autoUpload'))) {\n data.process().done(function () {\n data.submit();\n });\n }\n },\n\n // Other callbacks:\n\n // Callback for the submit event of each file upload:\n // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n // Callback for the start of each file upload request:\n // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n // Callback for successful uploads:\n // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n // Callback for failed (abort or error) uploads:\n // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n // Callback for completed (success, abort or error) requests:\n // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n // Callback for upload progress events:\n // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n // Callback for global upload progress events:\n // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n // Callback for uploads start, equivalent to the global ajaxStart event:\n // start: function (e) {}, // .bind('fileuploadstart', func);\n\n // Callback for uploads stop, equivalent to the global ajaxStop event:\n // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n // Callback for change events of the fileInput(s):\n // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n // Callback for paste events to the pasteZone(s):\n // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n // Callback for drop events of the dropZone(s):\n // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n // Callback for dragover events of the dropZone(s):\n // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n // Callback for the start of each chunk upload request:\n // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n // Callback for successful chunk uploads:\n // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n // Callback for failed (abort or error) chunk uploads:\n // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n // Callback for completed (success, abort or error) chunk upload requests:\n // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n // The plugin options are used as settings object for the ajax calls.\n // The following are jQuery ajax settings required for the file uploads:\n processData: false,\n contentType: false,\n cache: false,\n timeout: 0\n },\n\n // A list of options that require reinitializing event listeners and/or\n // special initialization code:\n _specialOptions: [\n 'fileInput',\n 'dropZone',\n 'pasteZone',\n 'multipart',\n 'forceIframeTransport'\n ],\n\n _blobSlice: $.support.blobSlice && function () {\n var slice = this.slice || this.webkitSlice || this.mozSlice;\n return slice.apply(this, arguments);\n },\n\n _BitrateTimer: function () {\n this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n this.loaded = 0;\n this.bitrate = 0;\n this.getBitrate = function (now, loaded, interval) {\n var timeDiff = now - this.timestamp;\n if (!this.bitrate || !interval || timeDiff > interval) {\n this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n this.loaded = loaded;\n this.timestamp = now;\n }\n return this.bitrate;\n };\n },\n\n _isXHRUpload: function (options) {\n return !options.forceIframeTransport &&\n ((!options.multipart && $.support.xhrFileUpload) ||\n $.support.xhrFormDataFileUpload);\n },\n\n _getFormData: function (options) {\n var formData;\n if ($.type(options.formData) === 'function') {\n return options.formData(options.form);\n }\n if ($.isArray(options.formData)) {\n return options.formData;\n }\n if ($.type(options.formData) === 'object') {\n formData = [];\n $.each(options.formData, function (name, value) {\n formData.push({name: name, value: value});\n });\n return formData;\n }\n return [];\n },\n\n _getTotal: function (files) {\n var total = 0;\n $.each(files, function (index, file) {\n total += file.size || 1;\n });\n return total;\n },\n\n _initProgressObject: function (obj) {\n var progress = {\n loaded: 0,\n total: 0,\n bitrate: 0\n };\n if (obj._progress) {\n $.extend(obj._progress, progress);\n } else {\n obj._progress = progress;\n }\n },\n\n _initResponseObject: function (obj) {\n var prop;\n if (obj._response) {\n for (prop in obj._response) {\n if (obj._response.hasOwnProperty(prop)) {\n delete obj._response[prop];\n }\n }\n } else {\n obj._response = {};\n }\n },\n\n _onProgress: function (e, data) {\n if (e.lengthComputable) {\n var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n loaded;\n if (data._time && data.progressInterval &&\n (now - data._time < data.progressInterval) &&\n e.loaded !== e.total) {\n return;\n }\n data._time = now;\n loaded = Math.floor(\n e.loaded / e.total * (data.chunkSize || data._progress.total)\n ) + (data.uploadedBytes || 0);\n // Add the difference from the previously loaded state\n // to the global loaded counter:\n this._progress.loaded += (loaded - data._progress.loaded);\n this._progress.bitrate = this._bitrateTimer.getBitrate(\n now,\n this._progress.loaded,\n data.bitrateInterval\n );\n data._progress.loaded = data.loaded = loaded;\n data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n now,\n loaded,\n data.bitrateInterval\n );\n // Trigger a custom progress event with a total data property set\n // to the file size(s) of the current upload and a loaded data\n // property calculated accordingly:\n this._trigger(\n 'progress',\n $.Event('progress', {delegatedEvent: e}),\n data\n );\n // Trigger a global progress event for all current file uploads,\n // including ajax calls queued for sequential file uploads:\n this._trigger(\n 'progressall',\n $.Event('progressall', {delegatedEvent: e}),\n this._progress\n );\n }\n },\n\n _initProgressListener: function (options) {\n var that = this,\n xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n // Accesss to the native XHR object is required to add event listeners\n // for the upload progress event:\n if (xhr.upload) {\n $(xhr.upload).bind('progress', function (e) {\n var oe = e.originalEvent;\n // Make sure the progress event properties get copied over:\n e.lengthComputable = oe.lengthComputable;\n e.loaded = oe.loaded;\n e.total = oe.total;\n that._onProgress(e, options);\n });\n options.xhr = function () {\n return xhr;\n };\n }\n },\n\n _isInstanceOf: function (type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n _initXHRData: function (options) {\n var that = this,\n formData,\n file = options.files[0],\n // Ignore non-multipart setting if not supported:\n multipart = options.multipart || !$.support.xhrFileUpload,\n paramName = $.type(options.paramName) === 'array' ?\n options.paramName[0] : options.paramName;\n options.headers = $.extend({}, options.headers);\n if (options.contentRange) {\n options.headers['Content-Range'] = options.contentRange;\n }\n if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\n options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n encodeURI(file.name) + '\"';\n }\n if (!multipart) {\n options.contentType = file.type || 'application/octet-stream';\n options.data = options.blob || file;\n } else if ($.support.xhrFormDataFileUpload) {\n if (options.postMessage) {\n // window.postMessage does not allow sending FormData\n // objects, so we just add the File/Blob objects to\n // the formData array and let the postMessage window\n // create the FormData object out of this array:\n formData = this._getFormData(options);\n if (options.blob) {\n formData.push({\n name: paramName,\n value: options.blob\n });\n } else {\n $.each(options.files, function (index, file) {\n formData.push({\n name: ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n value: file\n });\n });\n }\n } else {\n if (that._isInstanceOf('FormData', options.formData)) {\n formData = options.formData;\n } else {\n formData = new FormData();\n $.each(this._getFormData(options), function (index, field) {\n formData.append(field.name, field.value);\n });\n }\n if (options.blob) {\n formData.append(paramName, options.blob, file.name);\n } else {\n $.each(options.files, function (index, file) {\n // This check allows the tests to run with\n // dummy objects:\n if (that._isInstanceOf('File', file) ||\n that._isInstanceOf('Blob', file)) {\n formData.append(\n ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n file,\n file.uploadName || file.name\n );\n }\n });\n }\n }\n options.data = formData;\n }\n // Blob reference is not needed anymore, free memory:\n options.blob = null;\n },\n\n _initIframeSettings: function (options) {\n var targetHost = $('').prop('href', options.url).prop('host');\n // Setting the dataType to iframe enables the iframe transport:\n options.dataType = 'iframe ' + (options.dataType || '');\n // The iframe transport accepts a serialized array as form data:\n options.formData = this._getFormData(options);\n // Add redirect url to form data on cross-domain uploads:\n if (options.redirect && targetHost && targetHost !== location.host) {\n options.formData.push({\n name: options.redirectParamName || 'redirect',\n value: options.redirect\n });\n }\n },\n\n _initDataSettings: function (options) {\n if (this._isXHRUpload(options)) {\n if (!this._chunkedUpload(options, true)) {\n if (!options.data) {\n this._initXHRData(options);\n }\n this._initProgressListener(options);\n }\n if (options.postMessage) {\n // Setting the dataType to postmessage enables the\n // postMessage transport:\n options.dataType = 'postmessage ' + (options.dataType || '');\n }\n } else {\n this._initIframeSettings(options);\n }\n },\n\n _getParamName: function (options) {\n var fileInput = $(options.fileInput),\n paramName = options.paramName;\n if (!paramName) {\n paramName = [];\n fileInput.each(function () {\n var input = $(this),\n name = input.prop('name') || 'files[]',\n i = (input.prop('files') || [1]).length;\n while (i) {\n paramName.push(name);\n i -= 1;\n }\n });\n if (!paramName.length) {\n paramName = [fileInput.prop('name') || 'files[]'];\n }\n } else if (!$.isArray(paramName)) {\n paramName = [paramName];\n }\n return paramName;\n },\n\n _initFormSettings: function (options) {\n // Retrieve missing options from the input field and the\n // associated form, if available:\n if (!options.form || !options.form.length) {\n options.form = $(options.fileInput.prop('form'));\n // If the given file input doesn't have an associated form,\n // use the default widget file input's form:\n if (!options.form.length) {\n options.form = $(this.options.fileInput.prop('form'));\n }\n }\n options.paramName = this._getParamName(options);\n if (!options.url) {\n options.url = options.form.prop('action') || location.href;\n }\n // The HTTP request method must be \"POST\" or \"PUT\":\n options.type = (options.type ||\n ($.type(options.form.prop('method')) === 'string' &&\n options.form.prop('method')) || ''\n ).toUpperCase();\n if (options.type !== 'POST' && options.type !== 'PUT' &&\n options.type !== 'PATCH') {\n options.type = 'POST';\n }\n if (!options.formAcceptCharset) {\n options.formAcceptCharset = options.form.attr('accept-charset');\n }\n },\n\n _getAJAXSettings: function (data) {\n var options = $.extend({}, this.options, data);\n this._initFormSettings(options);\n this._initDataSettings(options);\n return options;\n },\n\n // jQuery 1.6 doesn't provide .state(),\n // while jQuery 1.8+ removed .isRejected() and .isResolved():\n _getDeferredState: function (deferred) {\n if (deferred.state) {\n return deferred.state();\n }\n if (deferred.isResolved()) {\n return 'resolved';\n }\n if (deferred.isRejected()) {\n return 'rejected';\n }\n return 'pending';\n },\n\n // Maps jqXHR callbacks to the equivalent\n // methods of the given Promise object:\n _enhancePromise: function (promise) {\n promise.success = promise.done;\n promise.error = promise.fail;\n promise.complete = promise.always;\n return promise;\n },\n\n // Creates and returns a Promise object enhanced with\n // the jqXHR methods abort, success, error and complete:\n _getXHRPromise: function (resolveOrReject, context, args) {\n var dfd = $.Deferred(),\n promise = dfd.promise();\n context = context || this.options.context || promise;\n if (resolveOrReject === true) {\n dfd.resolveWith(context, args);\n } else if (resolveOrReject === false) {\n dfd.rejectWith(context, args);\n }\n promise.abort = dfd.promise;\n return this._enhancePromise(promise);\n },\n\n // Adds convenience methods to the data callback argument:\n _addConvenienceMethods: function (e, data) {\n var that = this,\n getPromise = function (args) {\n return $.Deferred().resolveWith(that, args).promise();\n };\n data.process = function (resolveFunc, rejectFunc) {\n if (resolveFunc || rejectFunc) {\n data._processQueue = this._processQueue =\n (this._processQueue || getPromise([this])).pipe(\n function () {\n if (data.errorThrown) {\n return $.Deferred()\n .rejectWith(that, [data]).promise();\n }\n return getPromise(arguments);\n }\n ).pipe(resolveFunc, rejectFunc);\n }\n return this._processQueue || getPromise([this]);\n };\n data.submit = function () {\n if (this.state() !== 'pending') {\n data.jqXHR = this.jqXHR =\n (that._trigger(\n 'submit',\n $.Event('submit', {delegatedEvent: e}),\n this\n ) !== false) && that._onSend(e, this);\n }\n return this.jqXHR || that._getXHRPromise();\n };\n data.abort = function () {\n if (this.jqXHR) {\n return this.jqXHR.abort();\n }\n this.errorThrown = 'abort';\n that._trigger('fail', null, this);\n return that._getXHRPromise(false);\n };\n data.state = function () {\n if (this.jqXHR) {\n return that._getDeferredState(this.jqXHR);\n }\n if (this._processQueue) {\n return that._getDeferredState(this._processQueue);\n }\n };\n data.processing = function () {\n return !this.jqXHR && this._processQueue && that\n ._getDeferredState(this._processQueue) === 'pending';\n };\n data.progress = function () {\n return this._progress;\n };\n data.response = function () {\n return this._response;\n };\n },\n\n // Parses the Range header from the server response\n // and returns the uploaded bytes:\n _getUploadedBytes: function (jqXHR) {\n var range = jqXHR.getResponseHeader('Range'),\n parts = range && range.split('-'),\n upperBytesPos = parts && parts.length > 1 &&\n parseInt(parts[1], 10);\n return upperBytesPos && upperBytesPos + 1;\n },\n\n // Uploads a file in multiple, sequential requests\n // by splitting the file up in multiple blob chunks.\n // If the second parameter is true, only tests if the file\n // should be uploaded in chunks, but does not invoke any\n // upload requests:\n _chunkedUpload: function (options, testOnly) {\n options.uploadedBytes = options.uploadedBytes || 0;\n var that = this,\n file = options.files[0],\n fs = file.size,\n ub = options.uploadedBytes,\n mcs = options.maxChunkSize || fs,\n slice = this._blobSlice,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n upload;\n if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n options.data) {\n return false;\n }\n if (testOnly) {\n return true;\n }\n if (ub >= fs) {\n file.error = options.i18n('uploadedBytes');\n return this._getXHRPromise(\n false,\n options.context,\n [null, 'error', file.error]\n );\n }\n // The chunk upload method:\n upload = function () {\n // Clone the options object for each chunk upload:\n var o = $.extend({}, options),\n currentLoaded = o._progress.loaded;\n o.blob = slice.call(\n file,\n ub,\n ub + mcs,\n file.type\n );\n // Store the current chunk size, as the blob itself\n // will be dereferenced after data processing:\n o.chunkSize = o.blob.size;\n // Expose the chunk bytes position range:\n o.contentRange = 'bytes ' + ub + '-' +\n (ub + o.chunkSize - 1) + '/' + fs;\n // Process the upload data (the blob and potential form data):\n that._initXHRData(o);\n // Add progress listeners for this chunk upload:\n that._initProgressListener(o);\n jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n that._getXHRPromise(false, o.context))\n .done(function (result, textStatus, jqXHR) {\n ub = that._getUploadedBytes(jqXHR) ||\n (ub + o.chunkSize);\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered\n // for this chunk:\n if (currentLoaded + o.chunkSize - o._progress.loaded) {\n that._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: ub - o.uploadedBytes,\n total: ub - o.uploadedBytes\n }), o);\n }\n options.uploadedBytes = o.uploadedBytes = ub;\n o.result = result;\n o.textStatus = textStatus;\n o.jqXHR = jqXHR;\n that._trigger('chunkdone', null, o);\n that._trigger('chunkalways', null, o);\n if (ub < fs) {\n // File upload not yet complete,\n // continue with the next chunk:\n upload();\n } else {\n dfd.resolveWith(\n o.context,\n [result, textStatus, jqXHR]\n );\n }\n })\n .fail(function (jqXHR, textStatus, errorThrown) {\n o.jqXHR = jqXHR;\n o.textStatus = textStatus;\n o.errorThrown = errorThrown;\n that._trigger('chunkfail', null, o);\n that._trigger('chunkalways', null, o);\n dfd.rejectWith(\n o.context,\n [jqXHR, textStatus, errorThrown]\n );\n });\n };\n this._enhancePromise(promise);\n promise.abort = function () {\n return jqXHR.abort();\n };\n upload();\n return promise;\n },\n\n _beforeSend: function (e, data) {\n if (this._active === 0) {\n // the start callback is triggered when an upload starts\n // and no other uploads are currently running,\n // equivalent to the global ajaxStart event:\n this._trigger('start');\n // Set timer for global bitrate progress calculation:\n this._bitrateTimer = new this._BitrateTimer();\n // Reset the global progress values:\n this._progress.loaded = this._progress.total = 0;\n this._progress.bitrate = 0;\n }\n // Make sure the container objects for the .response() and\n // .progress() methods on the data object are available\n // and reset to their initial state:\n this._initResponseObject(data);\n this._initProgressObject(data);\n data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n data._progress.total = data.total = this._getTotal(data.files) || 1;\n data._progress.bitrate = data.bitrate = 0;\n this._active += 1;\n // Initialize the global progress values:\n this._progress.loaded += data.loaded;\n this._progress.total += data.total;\n },\n\n _onDone: function (result, textStatus, jqXHR, options) {\n var total = options._progress.total,\n response = options._response;\n if (options._progress.loaded < total) {\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered:\n this._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: total,\n total: total\n }), options);\n }\n response.result = options.result = result;\n response.textStatus = options.textStatus = textStatus;\n response.jqXHR = options.jqXHR = jqXHR;\n this._trigger('done', null, options);\n },\n\n _onFail: function (jqXHR, textStatus, errorThrown, options) {\n var response = options._response;\n if (options.recalculateProgress) {\n // Remove the failed (error or abort) file upload from\n // the global progress calculation:\n this._progress.loaded -= options._progress.loaded;\n this._progress.total -= options._progress.total;\n }\n response.jqXHR = options.jqXHR = jqXHR;\n response.textStatus = options.textStatus = textStatus;\n response.errorThrown = options.errorThrown = errorThrown;\n this._trigger('fail', null, options);\n },\n\n _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n // jqXHRorResult, textStatus and jqXHRorError are added to the\n // options object via done and fail callbacks\n this._trigger('always', null, options);\n },\n\n _onSend: function (e, data) {\n if (!data.submit) {\n this._addConvenienceMethods(e, data);\n }\n var that = this,\n jqXHR,\n aborted,\n slot,\n pipe,\n options = that._getAJAXSettings(data),\n send = function () {\n that._sending += 1;\n // Set timer for bitrate progress calculation:\n options._bitrateTimer = new that._BitrateTimer();\n jqXHR = jqXHR || (\n ((aborted || that._trigger(\n 'send',\n $.Event('send', {delegatedEvent: e}),\n options\n ) === false) &&\n that._getXHRPromise(false, options.context, aborted)) ||\n that._chunkedUpload(options) || $.ajax(options)\n ).done(function (result, textStatus, jqXHR) {\n that._onDone(result, textStatus, jqXHR, options);\n }).fail(function (jqXHR, textStatus, errorThrown) {\n that._onFail(jqXHR, textStatus, errorThrown, options);\n }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n that._onAlways(\n jqXHRorResult,\n textStatus,\n jqXHRorError,\n options\n );\n that._sending -= 1;\n that._active -= 1;\n if (options.limitConcurrentUploads &&\n options.limitConcurrentUploads > that._sending) {\n // Start the next queued upload,\n // that has not been aborted:\n var nextSlot = that._slots.shift();\n while (nextSlot) {\n if (that._getDeferredState(nextSlot) === 'pending') {\n nextSlot.resolve();\n break;\n }\n nextSlot = that._slots.shift();\n }\n }\n if (that._active === 0) {\n // The stop callback is triggered when all uploads have\n // been completed, equivalent to the global ajaxStop event:\n that._trigger('stop');\n }\n });\n return jqXHR;\n };\n this._beforeSend(e, options);\n if (this.options.sequentialUploads ||\n (this.options.limitConcurrentUploads &&\n this.options.limitConcurrentUploads <= this._sending)) {\n if (this.options.limitConcurrentUploads > 1) {\n slot = $.Deferred();\n this._slots.push(slot);\n pipe = slot.pipe(send);\n } else {\n this._sequence = this._sequence.pipe(send, send);\n pipe = this._sequence;\n }\n // Return the piped Promise object, enhanced with an abort method,\n // which is delegated to the jqXHR object of the current upload,\n // and jqXHR callbacks mapped to the equivalent Promise methods:\n pipe.abort = function () {\n aborted = [undefined, 'abort', 'abort'];\n if (!jqXHR) {\n if (slot) {\n slot.rejectWith(options.context, aborted);\n }\n return send();\n }\n return jqXHR.abort();\n };\n return this._enhancePromise(pipe);\n }\n return send();\n },\n\n _onAdd: function (e, data) {\n var that = this,\n result = true,\n options = $.extend({}, this.options, data),\n files = data.files,\n filesLength = files.length,\n limit = options.limitMultiFileUploads,\n limitSize = options.limitMultiFileUploadSize,\n overhead = options.limitMultiFileUploadSizeOverhead,\n batchSize = 0,\n paramName = this._getParamName(options),\n paramNameSet,\n paramNameSlice,\n fileSet,\n i,\n j = 0;\n if (!filesLength) {\n return false;\n }\n if (limitSize && files[0].size === undefined) {\n limitSize = undefined;\n }\n if (!(options.singleFileUploads || limit || limitSize) ||\n !this._isXHRUpload(options)) {\n fileSet = [files];\n paramNameSet = [paramName];\n } else if (!(options.singleFileUploads || limitSize) && limit) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i += limit) {\n fileSet.push(files.slice(i, i + limit));\n paramNameSlice = paramName.slice(i, i + limit);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n }\n } else if (!options.singleFileUploads && limitSize) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i = i + 1) {\n batchSize += files[i].size + overhead;\n if (i + 1 === filesLength ||\n ((batchSize + files[i + 1].size + overhead) > limitSize) ||\n (limit && i + 1 - j >= limit)) {\n fileSet.push(files.slice(j, i + 1));\n paramNameSlice = paramName.slice(j, i + 1);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n j = i + 1;\n batchSize = 0;\n }\n }\n } else {\n paramNameSet = paramName;\n }\n data.originalFiles = files;\n $.each(fileSet || files, function (index, element) {\n var newData = $.extend({}, data);\n newData.files = fileSet ? element : [element];\n newData.paramName = paramNameSet[index];\n that._initResponseObject(newData);\n that._initProgressObject(newData);\n that._addConvenienceMethods(e, newData);\n result = that._trigger(\n 'add',\n $.Event('add', {delegatedEvent: e}),\n newData\n );\n return result;\n });\n return result;\n },\n\n _replaceFileInput: function (data) {\n var input = data.fileInput,\n inputClone = input.clone(true);\n // Add a reference for the new cloned file input to the data argument:\n data.fileInputClone = inputClone;\n $('
                      ').append(inputClone)[0].reset();\n // Detaching allows to insert the fileInput on another form\n // without loosing the file input value:\n input.after(inputClone).detach();\n // Avoid memory leaks with the detached file input:\n $.cleanData(input.unbind('remove'));\n // Replace the original file input element in the fileInput\n // elements set with the clone, which has been copied including\n // event handlers:\n this.options.fileInput = this.options.fileInput.map(function (i, el) {\n if (el === input[0]) {\n return inputClone[0];\n }\n return el;\n });\n // If the widget has been initialized on the file input itself,\n // override this.element with the file input clone:\n if (input[0] === this.element[0]) {\n this.element = inputClone;\n }\n },\n\n _handleFileTreeEntry: function (entry, path) {\n var that = this,\n dfd = $.Deferred(),\n errorHandler = function (e) {\n if (e && !e.entry) {\n e.entry = entry;\n }\n // Since $.when returns immediately if one\n // Deferred is rejected, we use resolve instead.\n // This allows valid files and invalid items\n // to be returned together in one set:\n dfd.resolve([e]);\n },\n successHandler = function (entries) {\n that._handleFileTreeEntries(\n entries,\n path + entry.name + '/'\n ).done(function (files) {\n dfd.resolve(files);\n }).fail(errorHandler);\n },\n readEntries = function () {\n dirReader.readEntries(function (results) {\n if (!results.length) {\n successHandler(entries);\n } else {\n entries = entries.concat(results);\n readEntries();\n }\n }, errorHandler);\n },\n dirReader, entries = [];\n path = path || '';\n if (entry.isFile) {\n if (entry._file) {\n // Workaround for Chrome bug #149735\n entry._file.relativePath = path;\n dfd.resolve(entry._file);\n } else {\n entry.file(function (file) {\n file.relativePath = path;\n dfd.resolve(file);\n }, errorHandler);\n }\n } else if (entry.isDirectory) {\n dirReader = entry.createReader();\n readEntries();\n } else {\n // Return an empy list for file system items\n // other than files or directories:\n dfd.resolve([]);\n }\n return dfd.promise();\n },\n\n _handleFileTreeEntries: function (entries, path) {\n var that = this;\n return $.when.apply(\n $,\n $.map(entries, function (entry) {\n return that._handleFileTreeEntry(entry, path);\n })\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _getDroppedFiles: function (dataTransfer) {\n dataTransfer = dataTransfer || {};\n var items = dataTransfer.items;\n if (items && items.length && (items[0].webkitGetAsEntry ||\n items[0].getAsEntry)) {\n return this._handleFileTreeEntries(\n $.map(items, function (item) {\n var entry;\n if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n if (entry) {\n // Workaround for Chrome bug #149735:\n entry._file = item.getAsFile();\n }\n return entry;\n }\n return item.getAsEntry();\n })\n );\n }\n return $.Deferred().resolve(\n $.makeArray(dataTransfer.files)\n ).promise();\n },\n\n _getSingleFileInputFiles: function (fileInput) {\n fileInput = $(fileInput);\n var entries = fileInput.prop('webkitEntries') ||\n fileInput.prop('entries'),\n files,\n value;\n if (entries && entries.length) {\n return this._handleFileTreeEntries(entries);\n }\n files = $.makeArray(fileInput.prop('files'));\n if (!files.length) {\n value = fileInput.prop('value');\n if (!value) {\n return $.Deferred().resolve([]).promise();\n }\n // If the files property is not available, the browser does not\n // support the File API and we add a pseudo File object with\n // the input value as name with path information removed:\n files = [{name: value.replace(/^.*\\\\/, '')}];\n } else if (files[0].name === undefined && files[0].fileName) {\n // File normalization for Safari 4 and Firefox 3:\n $.each(files, function (index, file) {\n file.name = file.fileName;\n file.size = file.fileSize;\n });\n }\n return $.Deferred().resolve(files).promise();\n },\n\n _getFileInputFiles: function (fileInput) {\n if (!(fileInput instanceof $) || fileInput.length === 1) {\n return this._getSingleFileInputFiles(fileInput);\n }\n return $.when.apply(\n $,\n $.map(fileInput, this._getSingleFileInputFiles)\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _onChange: function (e) {\n var that = this,\n data = {\n fileInput: $(e.target),\n form: $(e.target.form)\n };\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n if (that.options.replaceFileInput) {\n that._replaceFileInput(data);\n }\n if (that._trigger(\n 'change',\n $.Event('change', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n },\n\n _onPaste: function (e) {\n var items = e.originalEvent && e.originalEvent.clipboardData &&\n e.originalEvent.clipboardData.items,\n data = {files: []};\n if (items && items.length) {\n $.each(items, function (index, item) {\n var file = item.getAsFile && item.getAsFile();\n if (file) {\n data.files.push(file);\n }\n });\n if (this._trigger(\n 'paste',\n $.Event('paste', {delegatedEvent: e}),\n data\n ) !== false) {\n this._onAdd(e, data);\n }\n }\n },\n\n _onDrop: function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var that = this,\n dataTransfer = e.dataTransfer,\n data = {};\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n e.preventDefault();\n this._getDroppedFiles(dataTransfer).always(function (files) {\n data.files = files;\n if (that._trigger(\n 'drop',\n $.Event('drop', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n }\n },\n\n _onDragOver: getDragHandler('dragover'),\n\n _onDragEnter: getDragHandler('dragenter'),\n\n _onDragLeave: getDragHandler('dragleave'),\n\n _initEventHandlers: function () {\n if (this._isXHRUpload(this.options)) {\n this._on(this.options.dropZone, {\n dragover: this._onDragOver,\n drop: this._onDrop,\n // event.preventDefault() on dragenter is required for IE10+:\n dragenter: this._onDragEnter,\n // dragleave is not required, but added for completeness:\n dragleave: this._onDragLeave\n });\n this._on(this.options.pasteZone, {\n paste: this._onPaste\n });\n }\n if ($.support.fileInput) {\n this._on(this.options.fileInput, {\n change: this._onChange\n });\n }\n },\n\n _destroyEventHandlers: function () {\n this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\n this._off(this.options.pasteZone, 'paste');\n this._off(this.options.fileInput, 'change');\n },\n\n _setOption: function (key, value) {\n var reinit = $.inArray(key, this._specialOptions) !== -1;\n if (reinit) {\n this._destroyEventHandlers();\n }\n this._super(key, value);\n if (reinit) {\n this._initSpecialOptions();\n this._initEventHandlers();\n }\n },\n\n _initSpecialOptions: function () {\n var options = this.options;\n if (options.fileInput === undefined) {\n options.fileInput = this.element.is('input[type=\"file\"]') ?\n this.element : this.element.find('input[type=\"file\"]');\n } else if (!(options.fileInput instanceof $)) {\n options.fileInput = $(options.fileInput);\n }\n if (!(options.dropZone instanceof $)) {\n options.dropZone = $(options.dropZone);\n }\n if (!(options.pasteZone instanceof $)) {\n options.pasteZone = $(options.pasteZone);\n }\n },\n\n _getRegExp: function (str) {\n var parts = str.split('/'),\n modifiers = parts.pop();\n parts.shift();\n return new RegExp(parts.join('/'), modifiers);\n },\n\n _isRegExpOption: function (key, value) {\n return key !== 'url' && $.type(value) === 'string' &&\n /^\\/.*\\/[igm]{0,3}$/.test(value);\n },\n\n _initDataAttributes: function () {\n var that = this,\n options = this.options,\n data = this.element.data();\n // Initialize options set via HTML5 data-attributes:\n $.each(\n this.element[0].attributes,\n function (index, attr) {\n var key = attr.name.toLowerCase(),\n value;\n if (/^data-/.test(key)) {\n // Convert hyphen-ated key to camelCase:\n key = key.slice(5).replace(/-[a-z]/g, function (str) {\n return str.charAt(1).toUpperCase();\n });\n value = data[key];\n if (that._isRegExpOption(key, value)) {\n value = that._getRegExp(value);\n }\n options[key] = value;\n }\n }\n );\n },\n\n _create: function () {\n this._initDataAttributes();\n this._initSpecialOptions();\n this._slots = [];\n this._sequence = this._getXHRPromise(true);\n this._sending = this._active = 0;\n this._initProgressObject(this);\n this._initEventHandlers();\n },\n\n // This method is exposed to the widget API and allows to query\n // the number of active uploads:\n active: function () {\n return this._active;\n },\n\n // This method is exposed to the widget API and allows to query\n // the widget upload progress.\n // It returns an object with loaded, total and bitrate properties\n // for the running uploads:\n progress: function () {\n return this._progress;\n },\n\n // This method is exposed to the widget API and allows adding files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files property and can contain additional options:\n // .fileupload('add', {files: filesList});\n add: function (data) {\n var that = this;\n if (!data || this.options.disabled) {\n return;\n }\n if (data.fileInput && !data.files) {\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n that._onAdd(null, data);\n });\n } else {\n data.files = $.makeArray(data.files);\n this._onAdd(null, data);\n }\n },\n\n // This method is exposed to the widget API and allows sending files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files or fileInput property and can contain additional options:\n // .fileupload('send', {files: filesList});\n // The method returns a Promise object for the file upload call.\n send: function (data) {\n if (data && !this.options.disabled) {\n if (data.fileInput && !data.files) {\n var that = this,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n aborted;\n promise.abort = function () {\n aborted = true;\n if (jqXHR) {\n return jqXHR.abort();\n }\n dfd.reject(null, 'abort', 'abort');\n return promise;\n };\n this._getFileInputFiles(data.fileInput).always(\n function (files) {\n if (aborted) {\n return;\n }\n if (!files.length) {\n dfd.reject();\n return;\n }\n data.files = files;\n jqXHR = that._onSend(null, data);\n jqXHR.then(\n function (result, textStatus, jqXHR) {\n dfd.resolve(result, textStatus, jqXHR);\n },\n function (jqXHR, textStatus, errorThrown) {\n dfd.reject(jqXHR, textStatus, errorThrown);\n }\n );\n }\n );\n return this._enhancePromise(promise);\n }\n data.files = $.makeArray(data.files);\n if (data.files.length) {\n return this._onSend(null, data);\n }\n }\n return this._getXHRPromise(false, data && data.context);\n }\n\n });\n\n}));\n","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.6\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.6\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.6'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.6\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.6'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.6\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.6'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.6\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.6'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.6\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.6'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.6\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.6'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.6\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.6'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
                      ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.6\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.6'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

                      '\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.6\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.6'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.6\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.6'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.6\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.6'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n",";(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.\n\t *\n\t * @codingstandard ftlabs-jsv2\n\t * @copyright The Financial Times Limited [All Rights Reserved]\n\t * @license MIT License (see LICENSE.txt)\n\t */\n\n\t/*jslint browser:true, node:true*/\n\t/*global define, Event, Node*/\n\n\n\t/**\n\t * Instantiate fast-clicking listeners on the specified layer.\n\t *\n\t * @constructor\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tfunction FastClick(layer, options) {\n\t\tvar oldOnClick;\n\n\t\toptions = options || {};\n\n\t\t/**\n\t\t * Whether a click is currently being tracked.\n\t\t *\n\t\t * @type boolean\n\t\t */\n\t\tthis.trackingClick = false;\n\n\n\t\t/**\n\t\t * Timestamp for when click tracking started.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.trackingClickStart = 0;\n\n\n\t\t/**\n\t\t * The element being tracked for a click.\n\t\t *\n\t\t * @type EventTarget\n\t\t */\n\t\tthis.targetElement = null;\n\n\n\t\t/**\n\t\t * X-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartX = 0;\n\n\n\t\t/**\n\t\t * Y-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartY = 0;\n\n\n\t\t/**\n\t\t * ID of the last touch, retrieved from Touch.identifier.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.lastTouchIdentifier = 0;\n\n\n\t\t/**\n\t\t * Touchmove boundary, beyond which a click will be cancelled.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchBoundary = options.touchBoundary || 10;\n\n\n\t\t/**\n\t\t * The FastClick layer.\n\t\t *\n\t\t * @type Element\n\t\t */\n\t\tthis.layer = layer;\n\n\t\t/**\n\t\t * The minimum time between tap(touchstart and touchend) events\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapDelay = options.tapDelay || 200;\n\n\t\t/**\n\t\t * The maximum time for a tap\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapTimeout = options.tapTimeout || 700;\n\n\t\tif (FastClick.notNeeded(layer)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Some old versions of Android don't have Function.prototype.bind\n\t\tfunction bind(method, context) {\n\t\t\treturn function() { return method.apply(context, arguments); };\n\t\t}\n\n\n\t\tvar methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];\n\t\tvar context = this;\n\t\tfor (var i = 0, l = methods.length; i < l; i++) {\n\t\t\tcontext[methods[i]] = bind(context[methods[i]], context);\n\t\t}\n\n\t\t// Set up event handlers as required\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.addEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.addEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.addEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.addEventListener('click', this.onClick, true);\n\t\tlayer.addEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.addEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.addEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.addEventListener('touchcancel', this.onTouchCancel, false);\n\n\t\t// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick\n\t\t// layer when they are cancelled.\n\t\tif (!Event.prototype.stopImmediatePropagation) {\n\t\t\tlayer.removeEventListener = function(type, callback, capture) {\n\t\t\t\tvar rmv = Node.prototype.removeEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\trmv.call(layer, type, callback.hijacked || callback, capture);\n\t\t\t\t} else {\n\t\t\t\t\trmv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlayer.addEventListener = function(type, callback, capture) {\n\t\t\t\tvar adv = Node.prototype.addEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\tadv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {\n\t\t\t\t\t\tif (!event.propagationStopped) {\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}), capture);\n\t\t\t\t} else {\n\t\t\t\t\tadv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// If a handler is already declared in the element's onclick attribute, it will be fired before\n\t\t// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and\n\t\t// adding it as listener.\n\t\tif (typeof layer.onclick === 'function') {\n\n\t\t\t// Android browser on at least 3.2 requires a new reference to the function in layer.onclick\n\t\t\t// - the old one won't work if passed to addEventListener directly.\n\t\t\toldOnClick = layer.onclick;\n\t\t\tlayer.addEventListener('click', function(event) {\n\t\t\t\toldOnClick(event);\n\t\t\t}, false);\n\t\t\tlayer.onclick = null;\n\t\t}\n\t}\n\n\t/**\n\t* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.\n\t*\n\t* @type boolean\n\t*/\n\tvar deviceIsWindowsPhone = navigator.userAgent.indexOf(\"Windows Phone\") >= 0;\n\n\t/**\n\t * Android requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS 4 requires an exception for select elements.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS4 = deviceIsIOS && (/OS 4_\\d(_\\d)?/).test(navigator.userAgent);\n\n\n\t/**\n\t * iOS 6.0-7.* requires the target element to be manually derived\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\\d/).test(navigator.userAgent);\n\n\t/**\n\t * BlackBerry requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;\n\n\t/**\n\t * Determine whether a given element requires a native click.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element needs a native click\n\t */\n\tFastClick.prototype.needsClick = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\n\t\t// Don't send a synthetic click to disabled inputs (issue #62)\n\t\tcase 'button':\n\t\tcase 'select':\n\t\tcase 'textarea':\n\t\t\tif (target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'input':\n\n\t\t\t// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)\n\t\t\tif ((deviceIsIOS && target.type === 'file') || target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'label':\n\t\tcase 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames\n\t\tcase 'video':\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (/\\bneedsclick\\b/).test(target.className);\n\t};\n\n\n\t/**\n\t * Determine whether a given element requires a call to focus to simulate click into element.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.\n\t */\n\tFastClick.prototype.needsFocus = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\t\tcase 'textarea':\n\t\t\treturn true;\n\t\tcase 'select':\n\t\t\treturn !deviceIsAndroid;\n\t\tcase 'input':\n\t\t\tswitch (target.type) {\n\t\t\tcase 'button':\n\t\t\tcase 'checkbox':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'radio':\n\t\t\tcase 'submit':\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// No point in attempting to focus disabled inputs\n\t\t\treturn !target.disabled && !target.readOnly;\n\t\tdefault:\n\t\t\treturn (/\\bneedsfocus\\b/).test(target.className);\n\t\t}\n\t};\n\n\n\t/**\n\t * Send a click event to the specified element.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t * @param {Event} event\n\t */\n\tFastClick.prototype.sendClick = function(targetElement, event) {\n\t\tvar clickEvent, touch;\n\n\t\t// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)\n\t\tif (document.activeElement && document.activeElement !== targetElement) {\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\n\t\ttouch = event.changedTouches[0];\n\n\t\t// Synthesise a click event, with an extra attribute so it can be tracked\n\t\tclickEvent = document.createEvent('MouseEvents');\n\t\tclickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);\n\t\tclickEvent.forwardedTouchEvent = true;\n\t\ttargetElement.dispatchEvent(clickEvent);\n\t};\n\n\tFastClick.prototype.determineEventType = function(targetElement) {\n\n\t\t//Issue #159: Android Chrome Select Box does not open with a synthetic click event\n\t\tif (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {\n\t\t\treturn 'mousedown';\n\t\t}\n\n\t\treturn 'click';\n\t};\n\n\n\t/**\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.focus = function(targetElement) {\n\t\tvar length;\n\n\t\t// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.\n\t\tif (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {\n\t\t\tlength = targetElement.value.length;\n\t\t\ttargetElement.setSelectionRange(length, length);\n\t\t} else {\n\t\t\ttargetElement.focus();\n\t\t}\n\t};\n\n\n\t/**\n\t * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.updateScrollParent = function(targetElement) {\n\t\tvar scrollParent, parentElement;\n\n\t\tscrollParent = targetElement.fastClickScrollParent;\n\n\t\t// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the\n\t\t// target element was moved to another parent.\n\t\tif (!scrollParent || !scrollParent.contains(targetElement)) {\n\t\t\tparentElement = targetElement;\n\t\t\tdo {\n\t\t\t\tif (parentElement.scrollHeight > parentElement.offsetHeight) {\n\t\t\t\t\tscrollParent = parentElement;\n\t\t\t\t\ttargetElement.fastClickScrollParent = parentElement;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparentElement = parentElement.parentElement;\n\t\t\t} while (parentElement);\n\t\t}\n\n\t\t// Always update the scroll top tracker if possible.\n\t\tif (scrollParent) {\n\t\t\tscrollParent.fastClickLastScrollTop = scrollParent.scrollTop;\n\t\t}\n\t};\n\n\n\t/**\n\t * @param {EventTarget} targetElement\n\t * @returns {Element|EventTarget}\n\t */\n\tFastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {\n\n\t\t// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.\n\t\tif (eventTarget.nodeType === Node.TEXT_NODE) {\n\t\t\treturn eventTarget.parentNode;\n\t\t}\n\n\t\treturn eventTarget;\n\t};\n\n\n\t/**\n\t * On touch start, record the position and scroll offset.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchStart = function(event) {\n\t\tvar targetElement, touch, selection;\n\n\t\t// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).\n\t\tif (event.targetTouches.length > 1) {\n\t\t\treturn true;\n\t\t}\n\n\t\ttargetElement = this.getTargetElementFromEventTarget(event.target);\n\t\ttouch = event.targetTouches[0];\n\n\t\tif (deviceIsIOS) {\n\n\t\t\t// Only trusted events will deselect text on iOS (issue #49)\n\t\t\tselection = window.getSelection();\n\t\t\tif (selection.rangeCount && !selection.isCollapsed) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!deviceIsIOS4) {\n\n\t\t\t\t// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):\n\t\t\t\t// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched\n\t\t\t\t// with the same identifier as the touch event that previously triggered the click that triggered the alert.\n\t\t\t\t// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an\n\t\t\t\t// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.\n\t\t\t\t// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,\n\t\t\t\t// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,\n\t\t\t\t// random integers, it's safe to to continue if the identifier is 0 here.\n\t\t\t\tif (touch.identifier && touch.identifier === this.lastTouchIdentifier) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastTouchIdentifier = touch.identifier;\n\n\t\t\t\t// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:\n\t\t\t\t// 1) the user does a fling scroll on the scrollable layer\n\t\t\t\t// 2) the user stops the fling scroll with another tap\n\t\t\t\t// then the event.target of the last 'touchend' event will be the element that was under the user's finger\n\t\t\t\t// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check\n\t\t\t\t// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).\n\t\t\t\tthis.updateScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackingClick = true;\n\t\tthis.trackingClickStart = event.timeStamp;\n\t\tthis.targetElement = targetElement;\n\n\t\tthis.touchStartX = touch.pageX;\n\t\tthis.touchStartY = touch.pageY;\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.touchHasMoved = function(event) {\n\t\tvar touch = event.changedTouches[0], boundary = this.touchBoundary;\n\n\t\tif (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Update the last position.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchMove = function(event) {\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the touch has moved, cancel the click tracking\n\t\tif (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {\n\t\t\tthis.trackingClick = false;\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Attempt to find the labelled control for the given label element.\n\t *\n\t * @param {EventTarget|HTMLLabelElement} labelElement\n\t * @returns {Element|null}\n\t */\n\tFastClick.prototype.findControl = function(labelElement) {\n\n\t\t// Fast path for newer browsers supporting the HTML5 control attribute\n\t\tif (labelElement.control !== undefined) {\n\t\t\treturn labelElement.control;\n\t\t}\n\n\t\t// All browsers under test that support touch events also support the HTML5 htmlFor attribute\n\t\tif (labelElement.htmlFor) {\n\t\t\treturn document.getElementById(labelElement.htmlFor);\n\t\t}\n\n\t\t// If no for attribute exists, attempt to retrieve the first labellable descendant element\n\t\t// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label\n\t\treturn labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');\n\t};\n\n\n\t/**\n\t * On touch end, determine whether to send a click event at once.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchEnd = function(event) {\n\t\tvar forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;\n\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tthis.cancelNextClick = true;\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Reset to prevent wrong click cancel on input (issue #156).\n\t\tthis.cancelNextClick = false;\n\n\t\tthis.lastClickTime = event.timeStamp;\n\n\t\ttrackingClickStart = this.trackingClickStart;\n\t\tthis.trackingClick = false;\n\t\tthis.trackingClickStart = 0;\n\n\t\t// On some iOS devices, the targetElement supplied with the event is invalid if the layer\n\t\t// is performing a transition or scroll, and has to be re-detected manually. Note that\n\t\t// for this to function correctly, it must be called *after* the event target is checked!\n\t\t// See issue #57; also filed as rdar://13048589 .\n\t\tif (deviceIsIOSWithBadTarget) {\n\t\t\ttouch = event.changedTouches[0];\n\n\t\t\t// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null\n\t\t\ttargetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;\n\t\t\ttargetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;\n\t\t}\n\n\t\ttargetTagName = targetElement.tagName.toLowerCase();\n\t\tif (targetTagName === 'label') {\n\t\t\tforElement = this.findControl(targetElement);\n\t\t\tif (forElement) {\n\t\t\t\tthis.focus(targetElement);\n\t\t\t\tif (deviceIsAndroid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\ttargetElement = forElement;\n\t\t\t}\n\t\t} else if (this.needsFocus(targetElement)) {\n\n\t\t\t// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.\n\t\t\t// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).\n\t\t\tif ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.focus(targetElement);\n\t\t\tthis.sendClick(targetElement, event);\n\n\t\t\t// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.\n\t\t\t// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)\n\t\t\tif (!deviceIsIOS || targetTagName !== 'select') {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (deviceIsIOS && !deviceIsIOS4) {\n\n\t\t\t// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled\n\t\t\t// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).\n\t\t\tscrollParent = targetElement.fastClickScrollParent;\n\t\t\tif (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Prevent the actual click from going though - unless the target node is marked as requiring\n\t\t// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.\n\t\tif (!this.needsClick(targetElement)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendClick(targetElement, event);\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * On touch cancel, stop tracking the click.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.onTouchCancel = function() {\n\t\tthis.trackingClick = false;\n\t\tthis.targetElement = null;\n\t};\n\n\n\t/**\n\t * Determine mouse events which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onMouse = function(event) {\n\n\t\t// If a target element was never set (because a touch event was never fired) allow the event\n\t\tif (!this.targetElement) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (event.forwardedTouchEvent) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Programmatically generated events targeting a specific element should be permitted\n\t\tif (!event.cancelable) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Derive and check the target element to see whether the mouse event needs to be permitted;\n\t\t// unless explicitly enabled, prevent non-touch click events from triggering actions,\n\t\t// to prevent ghost/doubleclicks.\n\t\tif (!this.needsClick(this.targetElement) || this.cancelNextClick) {\n\n\t\t\t// Prevent any user-added listeners declared on FastClick element from being fired.\n\t\t\tif (event.stopImmediatePropagation) {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t} else {\n\n\t\t\t\t// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t\t\tevent.propagationStopped = true;\n\t\t\t}\n\n\t\t\t// Cancel the event\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the mouse event is permitted, return true for the action to go through.\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * On actual clicks, determine whether this is a touch-generated click, a click action occurring\n\t * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or\n\t * an actual click which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onClick = function(event) {\n\t\tvar permitted;\n\n\t\t// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.\n\t\tif (this.trackingClick) {\n\t\t\tthis.targetElement = null;\n\t\t\tthis.trackingClick = false;\n\t\t\treturn true;\n\t\t}\n\n\t\t// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.\n\t\tif (event.target.type === 'submit' && event.detail === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tpermitted = this.onMouse(event);\n\n\t\t// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.\n\t\tif (!permitted) {\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\t// If clicks are permitted, return true for the action to go through.\n\t\treturn permitted;\n\t};\n\n\n\t/**\n\t * Remove all FastClick's event listeners.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.destroy = function() {\n\t\tvar layer = this.layer;\n\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.removeEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.removeEventListener('click', this.onClick, true);\n\t\tlayer.removeEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.removeEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.removeEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.removeEventListener('touchcancel', this.onTouchCancel, false);\n\t};\n\n\n\t/**\n\t * Check whether FastClick is needed.\n\t *\n\t * @param {Element} layer The layer to listen on\n\t */\n\tFastClick.notNeeded = function(layer) {\n\t\tvar metaViewport;\n\t\tvar chromeVersion;\n\t\tvar blackberryVersion;\n\t\tvar firefoxVersion;\n\n\t\t// Devices that don't support touch don't need FastClick\n\t\tif (typeof window.ontouchstart === 'undefined') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Chrome version - zero for other browsers\n\t\tchromeVersion = +(/Chrome\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (chromeVersion) {\n\n\t\t\tif (deviceIsAndroid) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// Chrome on Android with user-scalable=\"no\" doesn't need FastClick (issue #89)\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Chrome 32 and above with width=device-width or less don't need FastClick\n\t\t\t\t\tif (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Chrome desktop doesn't need FastClick (issue #15)\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (deviceIsBlackBerry10) {\n\t\t\tblackberryVersion = navigator.userAgent.match(/Version\\/([0-9]*)\\.([0-9]*)/);\n\n\t\t\t// BlackBerry 10.3+ does not require Fastclick library.\n\t\t\t// https://github.com/ftlabs/fastclick/issues/251\n\t\t\tif (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// user-scalable=no eliminates click delay.\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// width=device-width (or less than device-width) eliminates click delay.\n\t\t\t\t\tif (document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)\n\t\tif (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Firefox version - zero for other browsers\n\t\tfirefoxVersion = +(/Firefox\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (firefoxVersion >= 27) {\n\t\t\t// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896\n\n\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\t\t\tif (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version\n\t\t// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx\n\t\tif (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Factory method for creating a FastClick object\n\t *\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tFastClick.attach = function(layer, options) {\n\t\treturn new FastClick(layer, options);\n\t};\n\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(function() {\n\t\t\treturn FastClick;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = FastClick.attach;\n\t\tmodule.exports.FastClick = FastClick;\n\t} else {\n\t\twindow.FastClick = FastClick;\n\t}\n}());\n","/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n *\n * Version: 1.3.3\n *\n */\n(function ($) {\n\n $.fn.extend({\n slimScroll: function (options) {\n\n var defaults = {\n // width in pixels of the visible scroll area\n width: 'auto',\n // height in pixels of the visible scroll area\n height: '250px',\n // width in pixels of the scrollbar and rail\n size: '7px',\n // scrollbar color, accepts any hex/color value\n color: '#000',\n // scrollbar position - left/right\n position: 'right',\n // distance in pixels between the side edge and the scrollbar\n distance: '1px',\n // default scroll position on load - top / bottom / $('selector')\n start: 'top',\n // sets scrollbar opacity\n opacity: .4,\n // enables always-on mode for the scrollbar\n alwaysVisible: false,\n // check if we should hide the scrollbar when user is hovering over\n disableFadeOut: false,\n // sets visibility of the rail\n railVisible: false,\n // sets rail color\n railColor: '#333',\n // sets rail opacity\n railOpacity: .2,\n // whether we should use jQuery UI Draggable to enable bar dragging\n railDraggable: true,\n // defautlt CSS class of the slimscroll rail\n railClass: 'slimScrollRail',\n // defautlt CSS class of the slimscroll bar\n barClass: 'slimScrollBar',\n // defautlt CSS class of the slimscroll wrapper\n wrapperClass: 'slimScrollDiv',\n // check if mousewheel should scroll the window if we reach top/bottom\n allowPageScroll: false,\n // scroll amount applied to each mouse wheel step\n wheelStep: 20,\n // scroll amount applied when user is using gestures\n touchScrollStep: 200,\n // sets border radius\n borderRadius: '7px',\n // sets border radius of the rail\n railBorderRadius: '7px'\n };\n\n var o = $.extend(defaults, options);\n\n // do it for every element that matches selector\n this.each(function () {\n\n var isOverPanel, isOverBar, isDragg, queueHide, touchDif,\n barHeight, percentScroll, lastScroll,\n divS = '
                      ',\n minBarHeight = 30,\n releaseScroll = false;\n\n // used in event handlers and for better minification\n var me = $(this);\n\n // ensure we are not binding it again\n if (me.parent().hasClass(o.wrapperClass))\n {\n // start from last bar position\n var offset = me.scrollTop();\n\n // find bar and rail\n bar = me.parent().find('.' + o.barClass);\n rail = me.parent().find('.' + o.railClass);\n\n getBarHeight();\n\n // check if we should scroll existing instance\n if ($.isPlainObject(options))\n {\n // Pass height: auto to an existing slimscroll object to force a resize after contents have changed\n if ('height' in options && options.height == 'auto') {\n me.parent().css('height', 'auto');\n me.css('height', 'auto');\n var height = me.parent().parent().height();\n me.parent().css('height', height);\n me.css('height', height);\n }\n\n if ('scrollTo' in options)\n {\n // jump to a static point\n offset = parseInt(o.scrollTo);\n }\n else if ('scrollBy' in options)\n {\n // jump by value pixels\n offset += parseInt(o.scrollBy);\n }\n else if ('destroy' in options)\n {\n // remove slimscroll elements\n bar.remove();\n rail.remove();\n me.unwrap();\n return;\n }\n\n // scroll content by the given offset\n scrollContent(offset, false, true);\n }\n\n return;\n }\n else if ($.isPlainObject(options))\n {\n if ('destroy' in options)\n {\n return;\n }\n }\n\n // optionally set height to the parent's height\n o.height = (o.height == 'auto') ? me.parent().height() : o.height;\n\n // wrap content\n var wrapper = $(divS)\n .addClass(o.wrapperClass)\n .css({\n position: 'relative',\n overflow: 'hidden',\n width: o.width,\n height: o.height\n });\n\n // update style for the div\n me.css({\n overflow: 'hidden',\n width: o.width,\n height: o.height,\n //Fix for IE10\n \"-ms-touch-action\": \"none\"\n });\n\n // create scrollbar rail\n var rail = $(divS)\n .addClass(o.railClass)\n .css({\n width: o.size,\n height: '100%',\n position: 'absolute',\n top: 0,\n display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none',\n 'border-radius': o.railBorderRadius,\n background: o.railColor,\n opacity: o.railOpacity,\n zIndex: 90\n });\n\n // create scrollbar\n var bar = $(divS)\n .addClass(o.barClass)\n .css({\n background: o.color,\n width: o.size,\n position: 'absolute',\n top: 0,\n opacity: o.opacity,\n display: o.alwaysVisible ? 'block' : 'none',\n 'border-radius': o.borderRadius,\n BorderRadius: o.borderRadius,\n MozBorderRadius: o.borderRadius,\n WebkitBorderRadius: o.borderRadius,\n zIndex: 99\n });\n\n // set position\n var posCss = (o.position == 'right') ? {right: o.distance} : {left: o.distance};\n rail.css(posCss);\n bar.css(posCss);\n\n // wrap it\n me.wrap(wrapper);\n\n // append to parent div\n me.parent().append(bar);\n me.parent().append(rail);\n\n // make it draggable and no longer dependent on the jqueryUI\n if (o.railDraggable) {\n bar.bind(\"mousedown\", function (e) {\n var $doc = $(document);\n isDragg = true;\n t = parseFloat(bar.css('top'));\n pageY = e.pageY;\n\n $doc.bind(\"mousemove.slimscroll\", function (e) {\n currTop = t + e.pageY - pageY;\n bar.css('top', currTop);\n scrollContent(0, bar.position().top, false);// scroll content\n });\n\n $doc.bind(\"mouseup.slimscroll\", function (e) {\n isDragg = false;\n hideBar();\n $doc.unbind('.slimscroll');\n });\n return false;\n }).bind(\"selectstart.slimscroll\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n return false;\n });\n }\n\n // on rail over\n rail.hover(function () {\n showBar();\n }, function () {\n hideBar();\n });\n\n // on bar over\n bar.hover(function () {\n isOverBar = true;\n }, function () {\n isOverBar = false;\n });\n\n // show on parent mouseover\n me.hover(function () {\n isOverPanel = true;\n showBar();\n hideBar();\n }, function () {\n isOverPanel = false;\n hideBar();\n });\n\n if (window.navigator.msPointerEnabled) { \n // support for mobile\n me.bind('MSPointerDown', function (e, b) {\n if (e.originalEvent.targetTouches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.targetTouches[0].pageY;\n }\n });\n\n me.bind('MSPointerMove', function (e) {\n // prevent scrolling the page if necessary\n e.originalEvent.preventDefault();\n if (e.originalEvent.targetTouches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.targetTouches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.targetTouches[0].pageY;\n \n }\n });\n } else {\n // support for mobile\n me.bind('touchstart', function (e, b) {\n if (e.originalEvent.touches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n\n me.bind('touchmove', function (e) {\n // prevent scrolling the page if necessary\n if (!releaseScroll)\n {\n e.originalEvent.preventDefault();\n }\n if (e.originalEvent.touches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n }\n\n // set up initial height\n getBarHeight();\n\n // check start position\n if (o.start === 'bottom')\n {\n // scroll content to bottom\n bar.css({top: me.outerHeight() - bar.outerHeight()});\n scrollContent(0, true);\n }\n else if (o.start !== 'top')\n {\n // assume jQuery selector\n scrollContent($(o.start).position().top, null, true);\n\n // make sure bar stays hidden\n if (!o.alwaysVisible) {\n bar.hide();\n }\n }\n\n // attach scroll events\n attachWheel();\n\n function _onWheel(e)\n {\n // use mouse wheel only when mouse is over\n if (!isOverPanel) {\n return;\n }\n\n var e = e || window.event;\n\n var delta = 0;\n if (e.wheelDelta) {\n delta = -e.wheelDelta / 120;\n }\n if (e.detail) {\n delta = e.detail / 3;\n }\n\n var target = e.target || e.srcTarget || e.srcElement;\n if ($(target).closest('.' + o.wrapperClass).is(me.parent())) {\n // scroll content\n scrollContent(delta, true);\n }\n\n // stop window scroll\n if (e.preventDefault && !releaseScroll) {\n e.preventDefault();\n }\n if (!releaseScroll) {\n e.returnValue = false;\n }\n }\n\n function scrollContent(y, isWheel, isJump)\n {\n releaseScroll = false;\n var delta = y;\n var maxTop = me.outerHeight() - bar.outerHeight();\n\n if (isWheel)\n {\n // move bar with mouse wheel\n delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight();\n\n // move bar, make sure it doesn't go out\n delta = Math.min(Math.max(delta, 0), maxTop);\n\n // if scrolling down, make sure a fractional change to the\n // scroll position isn't rounded away when the scrollbar's CSS is set\n // this flooring of delta would happened automatically when\n // bar.css is set below, but we floor here for clarity\n delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta);\n\n // scroll the scrollbar\n bar.css({top: delta + 'px'});\n }\n\n // calculate actual scroll amount\n percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight());\n delta = percentScroll * (me[0].scrollHeight - me.outerHeight());\n\n if (isJump)\n {\n delta = y;\n var offsetTop = delta / me[0].scrollHeight * me.outerHeight();\n offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);\n bar.css({top: offsetTop + 'px'});\n }\n\n // scroll content\n me.scrollTop(delta);\n\n // fire scrolling event\n me.trigger('slimscrolling', ~~delta);\n\n // ensure bar is visible\n showBar();\n\n // trigger hide when scroll is stopped\n hideBar();\n }\n\n function attachWheel()\n {\n if (window.addEventListener)\n {\n this.addEventListener('DOMMouseScroll', _onWheel, false);\n this.addEventListener('mousewheel', _onWheel, false);\n }\n else\n {\n document.attachEvent(\"onmousewheel\", _onWheel)\n }\n }\n\n function getBarHeight()\n {\n // calculate scrollbar height and make sure it is not too small\n barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight);\n bar.css({height: barHeight + 'px'});\n\n // hide scrollbar if content is not long enough\n var display = barHeight == me.outerHeight() ? 'none' : 'block';\n bar.css({display: display});\n }\n\n function showBar()\n {\n // recalculate bar height\n getBarHeight();\n clearTimeout(queueHide);\n\n // when bar reached top or bottom\n if (percentScroll == ~~percentScroll)\n {\n //release wheel\n releaseScroll = o.allowPageScroll;\n\n // publish approporiate event\n if (lastScroll != percentScroll)\n {\n var msg = (~~percentScroll == 0) ? 'top' : 'bottom';\n me.trigger('slimscroll', msg);\n }\n }\n else\n {\n releaseScroll = false;\n }\n lastScroll = percentScroll;\n\n // show only when required\n if (barHeight >= me.outerHeight()) {\n //allow window scroll\n releaseScroll = true;\n return;\n }\n bar.stop(true, true).fadeIn('fast');\n if (o.railVisible) {\n rail.stop(true, true).fadeIn('fast');\n }\n }\n\n function hideBar()\n {\n // only hide when options allow it\n if (!o.alwaysVisible)\n {\n queueHide = setTimeout(function () {\n if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg)\n {\n bar.fadeOut('slow');\n rail.fadeOut('slow');\n }\n }, 1000);\n }\n }\n\n });\n\n // maintain chainability\n return this;\n }\n });\n\n $.fn.extend({\n slimscroll: $.fn.slimScroll\n });\n\n})(jQuery);\n","/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(\"object\"==typeof exports?require(\"jquery\"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split(\"/\"),o=s.map,p=o&&o[\"*\"]||{};if(a&&\".\"===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split(\"/\"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,\"\")),a=n.concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join(\"/\")}else 0===a.indexOf(\"./\")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split(\"/\"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join(\"/\"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join(\"/\")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join(\"/\"))}return a}function g(a,c){return function(){return n.apply(b,v.call(arguments,0).concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error(\"No \"+a);return q[a]}function k(a){var b,c=a?a.indexOf(\"!\"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+\"!\"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return\"undefined\"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:\"\",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,\"undefined\"===v||\"function\"===v){for(c=!c.length&&d.length?[\"require\",\"exports\",\"module\"]:c,n=0;n0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;hc;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b=\"\",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split(\"-\"),d=a;if(1!==c.length){for(var e=0;e\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\"};return\"string\"!=typeof a?a:String(a).replace(/[&<>\"'\\/\\\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if(\"1.7\"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define(\"select2/results\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
                        ');return this.options.get(\"multiple\")&&b.attr(\"aria-multiselectable\",\"true\"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var d=a('
                      • '),e=this.options.get(\"translations\").get(b.message);d.append(c(e(b.args))),this.$results.append(d)},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"}));a.results=this.sort(a.results);for(var c=0;c-1?b.attr(\"aria-selected\",\"true\"):b.attr(\"aria-selected\",\"false\")});var f=e.filter(\"[aria-selected=true]\");f.length>0?f.first().trigger(\"mouseenter\"):e.first().trigger(\"mouseenter\")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get(\"translations\").get(\"searching\"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=\" loading-results\",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},c.prototype.option=function(b){var c=document.createElement(\"li\");c.className=\"select2-results__option\";var d={role:\"treeitem\",\"aria-selected\":\"false\"};b.disabled&&(delete d[\"aria-selected\"],d[\"aria-disabled\"]=\"true\"),null==b.id&&delete d[\"aria-selected\"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role=\"group\",d[\"aria-label\"]=b.text,delete d[\"aria-selected\"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement(\"strong\");h.className=\"select2-results__group\";{a(h)}this.template(b,h);for(var i=[],j=0;j\",{\"class\":\"select2-results__options select2-results__options--nested\"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,\"data\",b),c},c.prototype.bind=function(b){var c=this,d=b.id+\"-results\";this.$results.attr(\"id\",d),b.on(\"results:all\",function(a){c.clear(),c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"results:append\",function(a){c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"query\",function(a){c.showLoading(a)}),b.on(\"select\",function(){b.isOpen()&&c.setClasses()}),b.on(\"unselect\",function(){b.isOpen()&&c.setClasses()}),b.on(\"open\",function(){c.$results.attr(\"aria-expanded\",\"true\"),c.$results.attr(\"aria-hidden\",\"false\"),c.setClasses(),c.ensureHighlightVisible()}),b.on(\"close\",function(){c.$results.attr(\"aria-expanded\",\"false\"),c.$results.attr(\"aria-hidden\",\"true\"),c.$results.removeAttr(\"aria-activedescendant\")}),b.on(\"results:toggle\",function(){var a=c.getHighlightedResults();0!==a.length&&a.trigger(\"mouseup\")}),b.on(\"results:select\",function(){var a=c.getHighlightedResults();if(0!==a.length){var b=a.data(\"data\");\"true\"==a.attr(\"aria-selected\")?c.trigger(\"close\"):c.trigger(\"select\",{data:b})}}),b.on(\"results:previous\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a);if(0!==d){var e=d-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top,h=f.offset().top,i=c.$results.scrollTop()+(h-g);0===e?c.$results.scrollTop(0):0>h-g&&c.$results.scrollTop(i)}}),b.on(\"results:next\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a),e=d+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top+c.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=c.$results.scrollTop()+h-g;0===e?c.$results.scrollTop(0):h>g&&c.$results.scrollTop(i)}}),b.on(\"results:focus\",function(a){a.element.addClass(\"select2-results__option--highlighted\")}),b.on(\"results:message\",function(a){c.displayMessage(a)}),a.fn.mousewheel&&this.$results.on(\"mousewheel\",function(a){var b=c.$results.scrollTop(),d=c.$results.get(0).scrollHeight-c.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&d<=c.$results.height();e?(c.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(c.$results.scrollTop(c.$results.get(0).scrollHeight-c.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option[aria-selected]\",function(b){var d=a(this),e=d.data(\"data\");return\"true\"===d.attr(\"aria-selected\")?void(c.options.get(\"multiple\")?c.trigger(\"unselect\",{originalEvent:b,data:e}):c.trigger(\"close\")):void c.trigger(\"select\",{originalEvent:b,data:e})}),this.$results.on(\"mouseenter\",\".select2-results__option[aria-selected]\",function(){var b=a(this).data(\"data\");c.getHighlightedResults().removeClass(\"select2-results__option--highlighted\"),c.trigger(\"results:focus\",{data:b,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(\".select2-results__option--highlighted\");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find(\"[aria-selected]\"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get(\"templateResult\"),e=this.options.get(\"escapeMarkup\"),f=d(b);null==f?c.style.display=\"none\":\"string\"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define(\"select2/keys\",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define(\"select2/selection/base\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data(\"old-tabindex\")?this._tabindex=this.$element.data(\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),b.attr(\"title\",this.$element.attr(\"title\")),b.attr(\"tabindex\",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a){var b=this,d=(a.id+\"-container\",a.id+\"-results\");this.container=a,this.$selection.on(\"focus\",function(a){b.trigger(\"focus\",a)}),this.$selection.on(\"blur\",function(a){b.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",function(a){b.trigger(\"keypress\",a),a.which===c.SPACE&&a.preventDefault()}),a.on(\"results:focus\",function(a){b.$selection.attr(\"aria-activedescendant\",a.data._resultId)}),a.on(\"selection:update\",function(a){b.update(a.data)}),a.on(\"open\",function(){b.$selection.attr(\"aria-expanded\",\"true\"),b.$selection.attr(\"aria-owns\",d),b._attachCloseHandler(a)}),a.on(\"close\",function(){b.$selection.attr(\"aria-expanded\",\"false\"),b.$selection.removeAttr(\"aria-activedescendant\"),b.$selection.removeAttr(\"aria-owns\"),b.$selection.focus(),b._detachCloseHandler(a)}),a.on(\"enable\",function(){b.$selection.attr(\"tabindex\",b._tabindex)}),a.on(\"disable\",function(){b.$selection.attr(\"tabindex\",\"-1\")})},d.prototype._attachCloseHandler=function(b){a(document.body).on(\"mousedown.select2.\"+b.id,function(b){var c=a(b.target),d=c.closest(\".select2\"),e=a(\".select2.select2-container--open\");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data(\"element\");c.select2(\"close\")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off(\"mousedown.select2.\"+b.id)},d.prototype.position=function(a,b){var c=b.find(\".selection\");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(){throw new Error(\"The `update` method must be defined in child classes.\")},d}),b.define(\"select2/selection/single\",[\"jquery\",\"./base\",\"../utils\",\"../keys\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--single\"),a.html(''),a},d.prototype.bind=function(a){var b=this;d.__super__.bind.apply(this,arguments);var c=a.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",c),this.$selection.attr(\"aria-labelledby\",c),this.$selection.on(\"mousedown\",function(a){1===a.which&&b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"focus\",function(){}),this.$selection.on(\"blur\",function(){}),a.on(\"selection:update\",function(a){b.update(a.data)})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){return a(\"\")},d.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.display(b),d=this.$selection.find(\".select2-selection__rendered\");d.empty().append(c),d.prop(\"title\",b.title||b.text)},d}),b.define(\"select2/selection/multiple\",[\"jquery\",\"./base\",\"../utils\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--multiple\"),a.html('
                          '),a},d.prototype.bind=function(){var b=this;d.__super__.bind.apply(this,arguments),this.$selection.on(\"click\",function(a){b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(c){var d=a(this),e=d.parent(),f=e.data(\"data\");b.trigger(\"unselect\",{originalEvent:c,data:f})})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){var b=a('
                        • ×
                        • ');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(e)},a}),b.define(\"select2/selection/allowClear\",[\"jquery\",\"../keys\"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(a){d._handleClear(a)}),b.on(\"keypress\",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get(\"disabled\")){var c=this.$selection.find(\".select2-selection__clear\");if(0!==c.length){b.stopPropagation();for(var d=c.data(\"data\"),e=0;e0||0===c.length)){var d=a('×');d.data(\"data\",c),this.$selection.find(\".select2-selection__rendered\").prepend(d)}},c}),b.define(\"select2/selection/search\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find(\"input\");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus()}),b.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\"),e.$search.focus()}),b.on(\"enable\",function(){e.$search.prop(\"disabled\",!1)}),b.on(\"disable\",function(){e.$search.prop(\"disabled\",!0)}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(a){e.trigger(\"focus\",a)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(a){e.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(a){a.stopPropagation(),e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&\"\"===e.$search.val()){var d=e.$searchContainer.prev(\".select2-selection__choice\");if(d.length>0){var f=d.data(\"data\");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on(\"input\",\".select2-search--inline\",function(){e.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input\",\".select2-search--inline\",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr(\"placeholder\",b.text)},d.prototype.update=function(a,b){this.$search.attr(\"placeholder\",\"\"),a.call(this,b),this.$selection.find(\".select2-selection__rendered\").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger(\"unselect\",{data:b}),this.trigger(\"open\"),this.$search.val(b.text+\" \")},d.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var a=\"\";if(\"\"!==this.$search.attr(\"placeholder\"))a=this.$selection.find(\".select2-selection__rendered\").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+\"em\"}this.$search.css(\"width\",a)},d}),b.define(\"select2/selection/eventRelay\",[\"jquery\"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\"],g=[\"opening\",\"closing\",\"selecting\",\"unselecting\"];b.call(this,c,d),c.on(\"*\",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event(\"select2:\"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define(\"select2/translation\",[\"jquery\",\"require\"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define(\"select2/diacritics\",[],function(){var a={\"Ⓐ\":\"A\",\"A\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"B\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"C\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"D\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"DZ\":\"DZ\",\"DŽ\":\"DZ\",\"Dz\":\"Dz\",\"Dž\":\"Dz\",\"Ⓔ\":\"E\",\"E\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"F\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"G\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"H\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"I\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"J\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"K\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"L\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"LJ\":\"LJ\",\"Lj\":\"Lj\",\"Ⓜ\":\"M\",\"M\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"N\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"NJ\":\"NJ\",\"Nj\":\"Nj\",\"Ⓞ\":\"O\",\"O\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"P\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Q\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"R\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"S\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"T\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"U\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"V\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"W\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"X\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Y\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Z\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"a\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"b\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"c\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"d\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"dz\":\"dz\",\"dž\":\"dz\",\"ⓔ\":\"e\",\"e\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"f\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"g\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"h\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"i\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"j\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"k\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"l\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"lj\":\"lj\",\"ⓜ\":\"m\",\"m\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"n\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ʼn\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"nj\":\"nj\",\"ⓞ\":\"o\",\"o\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"p\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"q\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"r\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"s\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"t\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"u\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"v\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"w\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"x\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"y\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"z\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ω\":\"ω\",\"ς\":\"σ\"};return a}),b.define(\"select2/data/base\",[\"../utils\"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error(\"The `current` method must be defined in child classes.\")},b.prototype.query=function(){throw new Error(\"The `query` method must be defined in child classes.\")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+\"-result-\";return d+=a.generateChars(4),d+=null!=c.id?\"-\"+c.id.toString():\"-\"+a.generateChars(4)},b}),b.define(\"select2/data/select\",[\"./base\",\"../utils\",\"jquery\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(\":selected\").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is(\"option\"))return a.element.selected=!0,void this.$element.trigger(\"change\");if(this.$element.prop(\"multiple\"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define(\"select2/data/ajax\",[\"./array\",\"../utils\",\"jquery\"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get(\"debug\")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:\"GET\"},this.ajaxOptions);\"function\"==typeof f.url&&(f.url=f.url(a)),\"function\"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&\"\"!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define(\"select2/data/tags\",[\"jquery\"],function(a){function b(b,c,d){var e=d.get(\"tags\"),f=d.get(\"createTag\");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g0&&b.term.length>this.maximumInputLength?void this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define(\"select2/data/maximumSelectionLength\",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get(\"maximumSelectionLength\"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define(\"select2/dropdown\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define(\"select2/dropdown/search\",[\"jquery\",\"../utils\"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find(\"input\"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on(\"keydown\",function(a){e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on(\"input\",function(){a(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(a){e.handleSearch(a)}),c.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\")}),c.on(\"results:all\",function(a){if(null==a.query.term||\"\"===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass(\"select2-search--hide\"):e.$searchContainer.addClass(\"select2-search--hide\")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define(\"select2/dropdown/hidePlaceholder\",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get(\"placeholder\")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return\"string\"==typeof b&&(b={id:\"\",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define(\"select2/dropdown/infiniteScroll\",[\"jquery\"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on(\"query\",function(a){e.lastParams=a,e.loading=!0}),c.on(\"query:append\",function(a){e.lastParams=a,e.loading=!0}),this.$results.on(\"scroll\",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger(\"query:append\",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
                        • '),c=this.options.get(\"translations\").get(\"loadingMore\");return b.html(c(this.lastParams)),b},b}),b.define(\"select2/dropdown/attachBody\",[\"jquery\",\"../utils\"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get(\"dropdownParent\")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on(\"open\",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on(\"results:all\",function(){d._positionDropdown(),d._resizeDropdown()}),b.on(\"results:append\",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on(\"close\",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on(\"mousedown\",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr(\"class\",c.attr(\"class\")),b.removeClass(\"select2\"),b.addClass(\"select2-container--open\"),b.css({position:\"absolute\",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(\"\"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c){var d=this,e=\"scroll.select2.\"+c.id,f=\"resize.select2.\"+c.id,g=\"orientationchange.select2.\"+c.id,h=this.$container.parents().filter(b.hasScroll);h.each(function(){a(this).data(\"select2-scroll-position\",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),h.on(e,function(){var b=a(this).data(\"select2-scroll-position\");a(this).scrollTop(b.y)}),a(window).on(e+\" \"+f+\" \"+g,function(){d._positionDropdown(),d._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c){var d=\"scroll.select2.\"+c.id,e=\"resize.select2.\"+c.id,f=\"orientationchange.select2.\"+c.id,g=this.$container.parents().filter(b.hasScroll);g.off(d),a(window).off(d+\" \"+e+\" \"+f)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass(\"select2-dropdown--above\"),d=this.$dropdown.hasClass(\"select2-dropdown--below\"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom};c||d||(e=\"below\"),k||!j||c?!j&&k&&c&&(e=\"below\"):e=\"above\",(\"above\"==e||c&&\"below\"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass(\"select2-dropdown--below select2-dropdown--above\").addClass(\"select2-dropdown--\"+e),this.$container.removeClass(\"select2-container--below select2-container--above\").addClass(\"select2-container--\"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){this.$dropdownContainer.width();var a={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(a.minWidth=a.width,a.width=\"auto\"),this.$dropdown.css(a)},c.prototype._showDropdown=function(){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define(\"select2/dropdown/minimumResultsForSearch\",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+\"compat/query\");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+\"compat/initSelection\");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+\"compat/dropdownCss\");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+\"compat/containerCss\");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if(\"string\"==typeof l.language)if(l.language.indexOf(\"-\")>0){var H=l.language.split(\"-\"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push(\"en\");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:\"./\",amdLanguageBase:\"./i18n/\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:\"default\",width:\"resolve\"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define(\"select2/options\",[\"require\",\"jquery\",\"./defaults\",\"./utils\"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is(\"input\")){var f=a(this.get(\"amdBase\")+\"compat/inputData\");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=[\"select2\"];null==this.options.multiple&&(this.options.multiple=a.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=a.prop(\"disabled\")),null==this.options.language&&(a.prop(\"lang\")?this.options.language=a.prop(\"lang\").toLowerCase():a.closest(\"[lang]\").prop(\"lang\")&&(this.options.language=a.closest(\"[lang]\").prop(\"lang\"))),null==this.options.dir&&(this.options.dir=a.prop(\"dir\")?a.prop(\"dir\"):a.closest(\"[dir]\").prop(\"dir\")?a.closest(\"[dir]\").prop(\"dir\"):\"ltr\"),a.prop(\"disabled\",this.options.disabled),a.prop(\"multiple\",this.options.multiple),a.data(\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),a.data(\"data\",a.data(\"select2Tags\")),a.data(\"tags\",!0)),a.data(\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),a.attr(\"ajax--url\",a.data(\"ajaxUrl\")),a.data(\"ajax--url\",a.data(\"ajaxUrl\")));var e={};e=b.fn.jquery&&\"1.\"==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define(\"select2/core\",[\"jquery\",\"./options\",\"./utils\",\"./keys\"],function(a,b,c,d){var e=function(a,c){null!=a.data(\"select2\")&&a.data(\"select2\").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr(\"tabindex\")||0;a.data(\"old-tabindex\",d),a.attr(\"tabindex\",\"-1\");var f=this.options.get(\"dataAdapter\");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get(\"selectionAdapter\");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get(\"dropdownAdapter\");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get(\"resultsAdapter\");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger(\"selection:update\",{data:a})}),a.addClass(\"select2-hidden-accessible\"),a.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),a.data(\"select2\",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b=\"\";return b=null!=a.attr(\"id\")?a.attr(\"id\"):null!=a.attr(\"name\")?a.attr(\"name\")+\"-\"+c.generateChars(2):c.generateChars(4),b=\"select2-\"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=b&&a.css(\"width\",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if(\"resolve\"==b){var d=this._resolveWidth(a,\"style\");return null!=d?d:this._resolveWidth(a,\"element\")}if(\"element\"==b){var e=a.outerWidth(!1);return 0>=e?\"auto\":e+\"px\"}if(\"style\"==b){var f=a.attr(\"style\");if(\"string\"!=typeof f)return null;for(var g=f.split(\";\"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\\s/g,\"\"),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on(\"change.select2\",function(){b.dataAdapter.current(function(a){b.trigger(\"selection:update\",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent(\"onpropertychange\",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener(\"DOMAttrModified\",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=[\"toggle\"];this.selection.on(\"toggle\",function(){b.toggleDropdown()}),this.selection.on(\"*\",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on(\"open\",function(){a.$container.addClass(\"select2-container--open\")}),this.on(\"close\",function(){a.$container.removeClass(\"select2-container--open\")}),this.on(\"enable\",function(){a.$container.removeClass(\"select2-container--disabled\")}),this.on(\"disable\",function(){a.$container.addClass(\"select2-container--disabled\")}),this.on(\"focus\",function(){a.$container.addClass(\"select2-container--focus\")}),this.on(\"blur\",function(){a.$container.removeClass(\"select2-container--focus\")}),this.on(\"query\",function(b){a.isOpen()||a.trigger(\"open\"),this.dataAdapter.query(b,function(c){a.trigger(\"results:all\",{data:c,query:b})})}),this.on(\"query:append\",function(b){this.dataAdapter.query(b,function(c){a.trigger(\"results:append\",{data:c,query:b})})}),this.on(\"keypress\",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger(\"results:select\"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger(\"results:toggle\"),b.preventDefault()):c===d.UP?(a.trigger(\"results:previous\"),b.preventDefault()):c===d.DOWN?(a.trigger(\"results:next\"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.options.get(\"disabled\")?(this.isOpen()&&this.close(),this.trigger(\"disable\")):this.trigger(\"enable\")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get(\"disabled\")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger(\"query\",{}),this.trigger(\"open\"))},e.prototype.close=function(){this.isOpen()&&this.trigger(\"close\")},e.prototype.isOpen=function(){return this.$container.hasClass(\"select2-container--open\")},e.prototype.enable=function(a){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop(\"disabled\",b)},e.prototype.data=function(){this.options.get(\"debug\")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger(\"change\")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent(\"onpropertychange\",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener(\"DOMAttrModified\",this._sync,!1),this._sync=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",this.$element.data(\"old-tabindex\")),this.$element.removeClass(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$container=b,this.$container.addClass(\"select2-container--\"+this.options.get(\"theme\")),b.data(\"element\",this.$element),b},e}),b.define(\"select2/compat/utils\",[\"jquery\"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0===this.indexOf(\"select2-\")&&g.push(this)})),e=a.trim(c.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0!==this.indexOf(\"select2-\")&&(f=d(this),null!=f&&g.push(f))})),b.attr(\"class\",g.join(\" \"))}return{syncCssClasses:b}}),b.define(\"select2/compat/containerCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"containerCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptContainerCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"containerCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/dropdownCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"dropdownCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptDropdownCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"dropdownCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/initSelection\",[\"jquery\"],function(a){function b(a,b,c){c.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2\"),this.initSelection=c.get(\"initSelection\"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;return this._isInitialized?void b.call(this,c):void this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define(\"select2/compat/inputData\",[\"jquery\"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get(\"valueSeparator\")||\",\",\"hidden\"===b.prop(\"type\")&&c.get(\"debug\")&&console&&console.warn&&console.warn(\"Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `';\n }\n that.header.stateField = column.field;\n }\n if (column.radio) {\n text = '';\n that.header.stateField = column.field;\n that.options.singleSelect = true;\n }\n\n html.push(text);\n html.push('
                          ');\n html.push('
                          ');\n html.push('');\n html.push('');\n });\n html.push('');\n });\n\n this.$header.html(html.join(''));\n this.$header.find('th[data-field]').each(function (i) {\n $(this).data(visibleColumns[$(this).data('field')]);\n });\n this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) {\n if (that.options.sortable && $(this).parent().data().sortable) {\n that.onSort(event);\n }\n });\n\n this.$header.children().children().off('keypress').on('keypress', function (event) {\n if (that.options.sortable && $(this).data().sortable) {\n var code = event.keyCode || event.which;\n if (code == 13) { //Enter keycode\n that.onSort(event);\n }\n }\n });\n\n if (!this.options.showHeader || this.options.cardView) {\n this.$header.hide();\n this.$tableHeader.hide();\n this.$tableLoading.css('top', 0);\n } else {\n this.$header.show();\n this.$tableHeader.show();\n this.$tableLoading.css('top', this.$header.outerHeight() + 1);\n // Assign the correct sortable arrow\n this.getCaret();\n }\n\n this.$selectAll = this.$header.find('[name=\"btSelectAll\"]');\n this.$container.off('click', '[name=\"btSelectAll\"]')\n .on('click', '[name=\"btSelectAll\"]', function () {\n var checked = $(this).prop('checked');\n that[checked ? 'checkAll' : 'uncheckAll']();\n that.updateSelected();\n });\n };\n\n BootstrapTable.prototype.initFooter = function () {\n if (!this.options.showFooter || this.options.cardView) {\n this.$tableFooter.hide();\n } else {\n this.$tableFooter.show();\n }\n };\n\n /**\n * @param data\n * @param type: append / prepend\n */\n BootstrapTable.prototype.initData = function (data, type) {\n if (type === 'append') {\n this.data = this.data.concat(data);\n } else if (type === 'prepend') {\n this.data = [].concat(data).concat(this.data);\n } else {\n this.data = data || this.options.data;\n }\n\n // Fix #839 Records deleted when adding new row on filtered table\n if (type === 'append') {\n this.options.data = this.options.data.concat(data);\n } else if (type === 'prepend') {\n this.options.data = [].concat(data).concat(this.options.data);\n } else {\n this.options.data = this.data;\n }\n\n if (this.options.sidePagination === 'server') {\n return;\n }\n this.initSort();\n };\n\n BootstrapTable.prototype.initSort = function () {\n var that = this,\n name = this.options.sortName,\n order = this.options.sortOrder === 'desc' ? -1 : 1,\n index = $.inArray(this.options.sortName, this.header.fields);\n\n if (index !== -1) {\n this.data.sort(function (a, b) {\n if (that.header.sortNames[index]) {\n name = that.header.sortNames[index];\n }\n var aa = getItemField(a, name),\n bb = getItemField(b, name),\n value = calculateObjectValue(that.header, that.header.sorters[index], [aa, bb]);\n\n if (value !== undefined) {\n return order * value;\n }\n\n // Fix #161: undefined or null string sort bug.\n if (aa === undefined || aa === null) {\n aa = '';\n }\n if (bb === undefined || bb === null) {\n bb = '';\n }\n\n // IF both values are numeric, do a numeric comparison\n if ($.isNumeric(aa) && $.isNumeric(bb)) {\n // Convert numerical values form string to float.\n aa = parseFloat(aa);\n bb = parseFloat(bb);\n if (aa < bb) {\n return order * -1;\n }\n return order;\n }\n\n if (aa === bb) {\n return 0;\n }\n\n // If value is not a string, convert to string\n if (typeof aa !== 'string') {\n aa = aa.toString();\n }\n\n if (aa.localeCompare(bb) === -1) {\n return order * -1;\n }\n\n return order;\n });\n }\n };\n\n BootstrapTable.prototype.onSort = function (event) {\n var $this = event.type === \"keypress\" ? $(event.currentTarget) : $(event.currentTarget).parent(),\n $this_ = this.$header.find('th').eq($this.index());\n\n this.$header.add(this.$header_).find('span.order').remove();\n\n if (this.options.sortName === $this.data('field')) {\n this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';\n } else {\n this.options.sortName = $this.data('field');\n this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';\n }\n this.trigger('sort', this.options.sortName, this.options.sortOrder);\n\n $this.add($this_).data('order', this.options.sortOrder);\n\n // Assign the correct sortable arrow\n this.getCaret();\n\n if (this.options.sidePagination === 'server') {\n this.initServer(this.options.silentSort);\n return;\n }\n\n this.initSort();\n this.initBody();\n };\n\n BootstrapTable.prototype.initToolbar = function () {\n var that = this,\n html = [],\n timeoutId = 0,\n $keepOpen,\n $search,\n switchableCount = 0;\n\n this.$toolbar.html('');\n\n if (typeof this.options.toolbar === 'string' || typeof this.options.toolbar === 'object') {\n $(sprintf('
                          ', this.options.toolbarAlign))\n .appendTo(this.$toolbar)\n .append($(this.options.toolbar));\n }\n\n // showColumns, showToggle, showRefresh\n html = [sprintf('
                          ',\n this.options.buttonsAlign, this.options.buttonsAlign)];\n\n if (typeof this.options.icons === 'string') {\n this.options.icons = calculateObjectValue(null, this.options.icons);\n }\n\n if (this.options.showPaginationSwitch) {\n html.push(sprintf('');\n }\n\n if (this.options.showRefresh) {\n html.push(sprintf('');\n }\n\n if (this.options.showToggle) {\n html.push(sprintf('');\n }\n\n if (this.options.showColumns) {\n html.push(sprintf('
                          ',\n this.options.formatColumns()),\n '',\n '
                            ');\n\n $.each(this.columns, function (i, column) {\n if (column.radio || column.checkbox) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n var checked = column.visible ? ' checked=\"checked\"' : '';\n\n if (column.switchable) {\n html.push(sprintf('
                          • ' +\n '' +\n '
                          • ', column.field, i, checked, column.title));\n switchableCount++;\n }\n });\n html.push('
                          ',\n '
                          ');\n }\n\n html.push('
                          ');\n\n // Fix #188: this.showToolbar is for extentions\n if (this.showToolbar || html.length > 2) {\n this.$toolbar.append(html.join(''));\n }\n\n if (this.options.showPaginationSwitch) {\n this.$toolbar.find('button[name=\"paginationSwitch\"]')\n .off('click').on('click', $.proxy(this.togglePagination, this));\n }\n\n if (this.options.showRefresh) {\n this.$toolbar.find('button[name=\"refresh\"]')\n .off('click').on('click', $.proxy(this.refresh, this));\n }\n\n if (this.options.showToggle) {\n this.$toolbar.find('button[name=\"toggle\"]')\n .off('click').on('click', function () {\n that.toggleView();\n });\n }\n\n if (this.options.showColumns) {\n $keepOpen = this.$toolbar.find('.keep-open');\n\n if (switchableCount <= this.options.minimumCountColumns) {\n $keepOpen.find('input').prop('disabled', true);\n }\n\n $keepOpen.find('li').off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n });\n $keepOpen.find('input').off('click').on('click', function () {\n var $this = $(this);\n\n that.toggleColumn(getFieldIndex(that.columns,\n $(this).data('field')), $this.prop('checked'), false);\n that.trigger('column-switch', $(this).data('field'), $this.prop('checked'));\n });\n }\n\n if (this.options.search) {\n html = [];\n html.push(\n '
                          ',\n sprintf('',\n this.options.formatSearch()),\n '
                          ');\n\n this.$toolbar.append(html.join(''));\n $search = this.$toolbar.find('.search input');\n $search.off('keyup drop').on('keyup drop', function (event) {\n clearTimeout(timeoutId); // doesn't matter if it's 0\n timeoutId = setTimeout(function () {\n that.onSearch(event);\n }, that.options.searchTimeOut);\n });\n }\n };\n\n BootstrapTable.prototype.onSearch = function (event) {\n var text = $.trim($(event.currentTarget).val());\n\n // trim search input\n if (this.options.trimOnSearch && $(event.currentTarget).val() !== text) {\n $(event.currentTarget).val(text);\n }\n\n if (text === this.searchText) {\n return;\n }\n this.searchText = text;\n\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n this.trigger('search', text);\n };\n\n BootstrapTable.prototype.initSearch = function () {\n var that = this;\n\n if (this.options.sidePagination !== 'server') {\n var s = this.searchText && this.searchText.toLowerCase();\n var f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns;\n\n // Check filter\n this.data = f ? $.grep(this.options.data, function (item, i) {\n for (var key in f) {\n if ($.isArray(f[key])) {\n if ($.inArray(item[key], f[key]) === -1) {\n return false;\n }\n } else if (item[key] !== f[key]) {\n return false;\n }\n }\n return true;\n }) : this.options.data;\n\n this.data = s ? $.grep(this.data, function (item, i) {\n for (var key in item) {\n key = $.isNumeric(key) ? parseInt(key, 10) : key;\n var value = item[key],\n column = that.columns[getFieldIndex(that.columns, key)],\n j = $.inArray(key, that.header.fields);\n\n // Fix #142: search use formated data\n if (column && column.searchFormatter) {\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n }\n\n var index = $.inArray(key, that.header.fields);\n if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {\n if (that.options.strictSearch) {\n if ((value + '').toLowerCase() === s) {\n return true;\n }\n } else {\n if ((value + '').toLowerCase().indexOf(s) !== -1) {\n return true;\n }\n }\n }\n }\n return false;\n }) : this.data;\n }\n };\n\n BootstrapTable.prototype.initPagination = function () {\n if (!this.options.pagination) {\n this.$pagination.hide();\n return;\n } else {\n this.$pagination.show();\n }\n\n var that = this,\n html = [],\n $allSelected = false,\n i, from, to,\n $pageList,\n $first, $pre,\n $next, $last,\n $number,\n data = this.getData();\n\n if (this.options.sidePagination !== 'server') {\n this.options.totalRows = data.length;\n }\n\n this.totalPages = 0;\n if (this.options.totalRows) {\n if (this.options.pageSize === this.options.formatAllRows()) {\n this.options.pageSize = this.options.totalRows;\n $allSelected = true;\n } else if (this.options.pageSize === this.options.totalRows) {\n // Fix #667 Table with pagination,\n // multiple pages and a search that matches to one page throws exception\n var pageLst = typeof this.options.pageList === 'string' ?\n this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').toLowerCase().split(',') : this.options.pageList;\n if ($.inArray(this.options.formatAllRows().toLowerCase(), pageLst) > -1) {\n $allSelected = true;\n }\n }\n\n this.totalPages = ~~((this.options.totalRows - 1) / this.options.pageSize) + 1;\n\n this.options.totalPages = this.totalPages;\n }\n if (this.totalPages > 0 && this.options.pageNumber > this.totalPages) {\n this.options.pageNumber = this.totalPages;\n }\n\n this.pageFrom = (this.options.pageNumber - 1) * this.options.pageSize + 1;\n this.pageTo = this.options.pageNumber * this.options.pageSize;\n if (this.pageTo > this.options.totalRows) {\n this.pageTo = this.options.totalRows;\n }\n\n html.push(\n '
                          ',\n '',\n this.options.onlyInfoPagination ? this.options.formatDetailPagination(this.options.totalRows) :\n this.options.formatShowingRows(this.pageFrom, this.pageTo, this.options.totalRows),\n '');\n\n if (!this.options.onlyInfoPagination) {\n html.push('');\n\n var pageNumber = [\n sprintf('',\n this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?\n 'dropdown' : 'dropup'),\n '',\n '
                            '\n ],\n pageList = this.options.pageList;\n\n if (typeof this.options.pageList === 'string') {\n var list = this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').split(',');\n\n pageList = [];\n $.each(list, function (i, value) {\n pageList.push(value.toUpperCase() === that.options.formatAllRows().toUpperCase() ?\n that.options.formatAllRows() : +value);\n });\n }\n\n $.each(pageList, function (i, page) {\n if (!that.options.smartDisplay || i === 0 || pageList[i - 1] <= that.options.totalRows) {\n var active;\n if ($allSelected) {\n active = page === that.options.formatAllRows() ? ' class=\"active\"' : '';\n } else {\n active = page === that.options.pageSize ? ' class=\"active\"' : '';\n }\n pageNumber.push(sprintf('%s', active, page));\n }\n });\n pageNumber.push('
                          ');\n\n html.push(this.options.formatRecordsPerPage(pageNumber.join('')));\n html.push('
                          ');\n\n html.push('
                          ',\n '
                          ',\n '',\n '
                          ');\n\n }\n this.$pagination.html(html.join(''));\n\n if (!this.options.onlyInfoPagination) {\n $pageList = this.$pagination.find('.page-list a');\n $first = this.$pagination.find('.page-first');\n $pre = this.$pagination.find('.page-pre');\n $next = this.$pagination.find('.page-next');\n $last = this.$pagination.find('.page-last');\n $number = this.$pagination.find('.page-number');\n\n if (this.options.pageNumber <= 1) {\n $first.addClass('disabled');\n $pre.addClass('disabled');\n }\n if (this.options.pageNumber >= this.totalPages) {\n $next.addClass('disabled');\n $last.addClass('disabled');\n }\n if (this.options.smartDisplay) {\n if (this.totalPages <= 1) {\n this.$pagination.find('div.pagination').hide();\n }\n if (pageList.length < 2 || this.options.totalRows <= pageList[0]) {\n this.$pagination.find('span.page-list').hide();\n }\n\n // when data is empty, hide the pagination\n this.$pagination[this.getData().length ? 'show' : 'hide']();\n }\n if ($allSelected) {\n this.options.pageSize = this.options.formatAllRows();\n }\n $pageList.off('click').on('click', $.proxy(this.onPageListChange, this));\n $first.off('click').on('click', $.proxy(this.onPageFirst, this));\n $pre.off('click').on('click', $.proxy(this.onPagePre, this));\n $next.off('click').on('click', $.proxy(this.onPageNext, this));\n $last.off('click').on('click', $.proxy(this.onPageLast, this));\n $number.off('click').on('click', $.proxy(this.onPageNumber, this));\n }\n };\n\n BootstrapTable.prototype.updatePagination = function (event) {\n // Fix #171: IE disabled button can be clicked bug.\n if (event && $(event.currentTarget).hasClass('disabled')) {\n return;\n }\n\n if (!this.options.maintainSelected) {\n this.resetRows();\n }\n\n this.initPagination();\n if (this.options.sidePagination === 'server') {\n this.initServer();\n } else {\n this.initBody();\n }\n\n this.trigger('page-change', this.options.pageNumber, this.options.pageSize);\n };\n\n BootstrapTable.prototype.onPageListChange = function (event) {\n var $this = $(event.currentTarget);\n\n $this.parent().addClass('active').siblings().removeClass('active');\n this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ?\n this.options.formatAllRows() : +$this.text();\n this.$toolbar.find('.page-size').text(this.options.pageSize);\n\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageFirst = function (event) {\n this.options.pageNumber = 1;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPagePre = function (event) {\n this.options.pageNumber--;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNext = function (event) {\n this.options.pageNumber++;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageLast = function (event) {\n this.options.pageNumber = this.totalPages;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNumber = function (event) {\n if (this.options.pageNumber === +$(event.currentTarget).text()) {\n return;\n }\n this.options.pageNumber = +$(event.currentTarget).text();\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.initBody = function (fixedScroll) {\n var that = this,\n html = [],\n data = this.getData();\n\n this.trigger('pre-body', data);\n\n this.$body = this.$el.find('>tbody');\n if (!this.$body.length) {\n this.$body = $('').appendTo(this.$el);\n }\n\n //Fix #389 Bootstrap-table-flatJSON is not working\n\n if (!this.options.pagination || this.options.sidePagination === 'server') {\n this.pageFrom = 1;\n this.pageTo = data.length;\n }\n\n for (var i = this.pageFrom - 1; i < this.pageTo; i++) {\n var key,\n item = data[i],\n style = {},\n csses = [],\n data_ = '',\n attributes = {},\n htmlAttributes = [];\n\n style = calculateObjectValue(this.options, this.options.rowStyle, [item, i], style);\n\n if (style && style.css) {\n for (key in style.css) {\n csses.push(key + ': ' + style.css[key]);\n }\n }\n\n attributes = calculateObjectValue(this.options,\n this.options.rowAttributes, [item, i], attributes);\n\n if (attributes) {\n for (key in attributes) {\n htmlAttributes.push(sprintf('%s=\"%s\"', key, escapeHTML(attributes[key])));\n }\n }\n\n if (item._data && !$.isEmptyObject(item._data)) {\n $.each(item._data, function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n html.push(''\n );\n\n if (this.options.cardView) {\n html.push(sprintf('', this.header.fields.length));\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('',\n '',\n sprintf('', this.options.iconsPrefix, this.options.icons.detailOpen),\n '',\n '');\n }\n\n $.each(this.header.fields, function (j, field) {\n var text = '',\n value = getItemField(item, field),\n type = '',\n cellStyle = {},\n id_ = '',\n class_ = that.header.classes[j],\n data_ = '',\n rowspan_ = '',\n title_ = '',\n column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n\n style = sprintf('style=\"%s\"', csses.concat(that.header.styles[j]).join('; '));\n\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n\n // handle td's id and class\n if (item['_' + field + '_id']) {\n id_ = sprintf(' id=\"%s\"', item['_' + field + '_id']);\n }\n if (item['_' + field + '_class']) {\n class_ = sprintf(' class=\"%s\"', item['_' + field + '_class']);\n }\n if (item['_' + field + '_rowspan']) {\n rowspan_ = sprintf(' rowspan=\"%s\"', item['_' + field + '_rowspan']);\n }\n if (item['_' + field + '_title']) {\n title_ = sprintf(' title=\"%s\"', item['_' + field + '_title']);\n }\n cellStyle = calculateObjectValue(that.header,\n that.header.cellStyles[j], [value, item, i], cellStyle);\n if (cellStyle.classes) {\n class_ = sprintf(' class=\"%s\"', cellStyle.classes);\n }\n if (cellStyle.css) {\n var csses_ = [];\n for (var key in cellStyle.css) {\n csses_.push(key + ': ' + cellStyle.css[key]);\n }\n style = sprintf('style=\"%s\"', csses_.concat(that.header.styles[j]).join('; '));\n }\n\n if (item['_' + field + '_data'] && !$.isEmptyObject(item['_' + field + '_data'])) {\n $.each(item['_' + field + '_data'], function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n if (column.checkbox || column.radio) {\n type = column.checkbox ? 'checkbox' : type;\n type = column.radio ? 'radio' : type;\n\n text = [that.options.cardView ?\n '
                          ' : '',\n '',\n that.header.formatters[j] && typeof value === 'string' ? value : '',\n that.options.cardView ? '
                          ' : ''\n ].join('');\n\n item[that.header.stateField] = value === true || (value && value.checked);\n } else {\n value = typeof value === 'undefined' || value === null ?\n that.options.undefinedText : value;\n\n text = that.options.cardView ? ['
                          ',\n that.options.showHeader ? sprintf('%s', style,\n getPropertyFromOther(that.columns, 'field', 'title', field)) : '',\n sprintf('%s', value),\n '
                          '\n ].join('') : [sprintf('', id_, class_, style, data_, rowspan_, title_),\n value,\n ''\n ].join('');\n\n // Hide empty data on Card view when smartDisplay is set to true.\n if (that.options.cardView && that.options.smartDisplay && value === '') {\n // Should set a placeholder for event binding correct fieldIndex\n text = '
                          ';\n }\n }\n\n html.push(text);\n });\n\n if (this.options.cardView) {\n html.push('');\n }\n\n html.push('');\n }\n\n // show no records\n if (!html.length) {\n html.push('',\n sprintf('%s',\n this.$header.find('th').length, this.options.formatNoMatches()),\n '');\n }\n\n this.$body.html(html.join(''));\n\n if (!fixedScroll) {\n this.scrollTo(0);\n }\n\n // click to select by column\n this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {\n var $td = $(this),\n $tr = $td.parent(),\n item = that.data[$tr.data('index')],\n index = $td[0].cellIndex,\n field = that.header.fields[that.options.detailView && !that.options.cardView ? index - 1 : index],\n column = that.columns[getFieldIndex(that.columns, field)],\n value = getItemField(item, field);\n\n if ($td.find('.detail-icon').length) {\n return;\n }\n\n that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);\n that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr);\n\n // if click to select - then trigger the checkbox/radio click\n if (e.type === 'click' && that.options.clickToSelect && column.clickToSelect) {\n var $selectItem = $tr.find(sprintf('[name=\"%s\"]', that.options.selectItemName));\n if ($selectItem.length) {\n $selectItem[0].click(); // #144: .trigger('click') bug\n }\n }\n });\n\n this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function () {\n var $this = $(this),\n $tr = $this.parent().parent(),\n index = $tr.data('index'),\n row = data[index]; // Fix #980 Detail view, when searching, returns wrong row\n\n // remove and update\n if ($tr.next().is('tr.detail-view')) {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailOpen));\n $tr.next().remove();\n that.trigger('collapse-row', index, row);\n } else {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailClose));\n $tr.after(sprintf('%s',\n $tr.find('td').length, calculateObjectValue(that.options,\n that.options.detailFormatter, [index, row], '')));\n that.trigger('expand-row', index, row, $tr.next().find('td'));\n }\n that.resetView();\n });\n\n this.$selectItem = this.$body.find(sprintf('[name=\"%s\"]', this.options.selectItemName));\n this.$selectItem.off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n\n var $this = $(this),\n checked = $this.prop('checked'),\n row = that.data[$this.data('index')];\n\n if (that.options.maintainSelected && $(this).is(':radio')) {\n $.each(that.options.data, function (i, row) {\n row[that.header.stateField] = false;\n });\n }\n\n row[that.header.stateField] = checked;\n\n if (that.options.singleSelect) {\n that.$selectItem.not(this).each(function () {\n that.data[$(this).data('index')][that.header.stateField] = false;\n });\n that.$selectItem.filter(':checked').not(this).prop('checked', false);\n }\n\n that.updateSelected();\n that.trigger(checked ? 'check' : 'uncheck', row, $this);\n });\n\n $.each(this.header.events, function (i, events) {\n if (!events) {\n return;\n }\n // fix bug, if events is defined with namespace\n if (typeof events === 'string') {\n events = calculateObjectValue(null, events);\n }\n\n var field = that.header.fields[i],\n fieldIndex = $.inArray(field, that.getVisibleFields());\n\n if (that.options.detailView && !that.options.cardView) {\n fieldIndex += 1;\n }\n\n for (var key in events) {\n that.$body.find('>tr:not(.no-records-found)').each(function () {\n var $tr = $(this),\n $td = $tr.find(that.options.cardView ? '.card-view' : 'td').eq(fieldIndex),\n index = key.indexOf(' '),\n name = key.substring(0, index),\n el = key.substring(index + 1),\n func = events[key];\n\n $td.find(el).off(name).on(name, function (e) {\n var index = $tr.data('index'),\n row = that.data[index],\n value = row[field];\n\n func.apply(this, [e, value, row, index]);\n });\n });\n }\n });\n\n this.updateSelected();\n this.resetView();\n\n this.trigger('post-body');\n };\n\n BootstrapTable.prototype.initServer = function (silent, query) {\n var that = this,\n data = {},\n params = {\n pageSize: this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize,\n pageNumber: this.options.pageNumber,\n searchText: this.searchText,\n sortName: this.options.sortName,\n sortOrder: this.options.sortOrder\n },\n request;\n\n if (!this.options.url && !this.options.ajax) {\n return;\n }\n\n if (this.options.queryParamsType === 'limit') {\n params = {\n search: params.searchText,\n sort: params.sortName,\n order: params.sortOrder\n };\n if (this.options.pagination) {\n params.limit = this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize;\n params.offset = this.options.pageSize === this.options.formatAllRows() ?\n 0 : this.options.pageSize * (this.options.pageNumber - 1);\n }\n }\n\n if (!($.isEmptyObject(this.filterColumnsPartial))) {\n params['filter'] = JSON.stringify(this.filterColumnsPartial, null);\n }\n\n data = calculateObjectValue(this.options, this.options.queryParams, [params], data);\n\n $.extend(data, query || {});\n\n // false to stop request\n if (data === false) {\n return;\n }\n\n if (!silent) {\n this.$tableLoading.show();\n }\n request = $.extend({}, calculateObjectValue(null, this.options.ajaxOptions), {\n type: this.options.method,\n url: this.options.url,\n data: this.options.contentType === 'application/json' && this.options.method === 'post' ?\n JSON.stringify(data) : data,\n cache: this.options.cache,\n contentType: this.options.contentType,\n dataType: this.options.dataType,\n success: function (res) {\n res = calculateObjectValue(that.options, that.options.responseHandler, [res], res);\n\n that.load(res);\n that.trigger('load-success', res);\n },\n error: function (res) {\n that.trigger('load-error', res.status, res);\n },\n complete: function () {\n if (!silent) {\n that.$tableLoading.hide();\n }\n }\n });\n\n if (this.options.ajax) {\n calculateObjectValue(this, this.options.ajax, [request], null);\n } else {\n $.ajax(request);\n }\n };\n\n BootstrapTable.prototype.initSearchText = function () {\n if (this.options.search) {\n if (this.options.searchText !== '') {\n var $search = this.$toolbar.find('.search input');\n $search.val(this.options.searchText);\n this.onSearch({currentTarget: $search});\n }\n }\n };\n\n BootstrapTable.prototype.getCaret = function () {\n var that = this;\n\n $.each(this.$header.find('th'), function (i, th) {\n $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === that.options.sortName ? that.options.sortOrder : 'both');\n });\n };\n\n BootstrapTable.prototype.updateSelected = function () {\n var checkAll = this.$selectItem.filter(':enabled').length &&\n this.$selectItem.filter(':enabled').length ===\n this.$selectItem.filter(':enabled').filter(':checked').length;\n\n this.$selectAll.add(this.$selectAll_).prop('checked', checkAll);\n\n this.$selectItem.each(function () {\n $(this).closest('tr')[$(this).prop('checked') ? 'addClass' : 'removeClass']('selected');\n });\n };\n\n BootstrapTable.prototype.updateRows = function () {\n var that = this;\n\n this.$selectItem.each(function () {\n that.data[$(this).data('index')][that.header.stateField] = $(this).prop('checked');\n });\n };\n\n BootstrapTable.prototype.resetRows = function () {\n var that = this;\n\n $.each(this.data, function (i, row) {\n that.$selectAll.prop('checked', false);\n that.$selectItem.prop('checked', false);\n if (that.header.stateField) {\n row[that.header.stateField] = false;\n }\n });\n };\n\n BootstrapTable.prototype.trigger = function (name) {\n var args = Array.prototype.slice.call(arguments, 1);\n\n name += '.bs.table';\n this.options[BootstrapTable.EVENTS[name]].apply(this.options, args);\n this.$el.trigger($.Event(name), args);\n\n this.options.onAll(name, args);\n this.$el.trigger($.Event('all.bs.table'), [name, args]);\n };\n\n BootstrapTable.prototype.resetHeader = function () {\n // fix #61: the hidden table reset header bug.\n // fix bug: get $el.css('width') error sometime (height = 500)\n clearTimeout(this.timeoutId_);\n this.timeoutId_ = setTimeout($.proxy(this.fitHeader, this), this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitHeader = function () {\n var that = this,\n fixedBody,\n scrollWidth,\n focused,\n focusedTemp;\n\n if (that.$el.is(':hidden')) {\n that.timeoutId_ = setTimeout($.proxy(that.fitHeader, that), 100);\n return;\n }\n fixedBody = this.$tableBody.get(0);\n\n scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth &&\n fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ?\n getScrollBarWidth() : 0;\n\n this.$el.css('margin-top', -this.$header.outerHeight());\n\n focused = $(':focus');\n if (focused.length > 0) {\n var $th = focused.parents('th');\n if ($th.length > 0) {\n var dataField = $th.attr('data-field');\n if (dataField !== undefined) {\n var $headerTh = this.$header.find(\"[data-field='\" + dataField + \"']\");\n if ($headerTh.length > 0) {\n $headerTh.find(\":input\").addClass(\"focus-temp\");\n }\n }\n }\n }\n\n this.$header_ = this.$header.clone(true, true);\n this.$selectAll_ = this.$header_.find('[name=\"btSelectAll\"]');\n this.$tableHeader.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', this.$el.outerWidth())\n .html('').attr('class', this.$el.attr('class'))\n .append(this.$header_);\n\n\n focusedTemp = $('.focus-temp:visible:eq(0)');\n if (focusedTemp.length > 0) {\n focusedTemp.focus();\n this.$header.find('.focus-temp').removeClass('focus-temp');\n }\n\n // fix bug: $.data() is not working as expected after $.append()\n this.$header.find('th[data-field]').each(function (i) {\n that.$header_.find(sprintf('th[data-field=\"%s\"]', $(this).data('field'))).data($(this).data());\n });\n\n var visibleFields = this.getVisibleFields();\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this),\n index = i;\n\n if (that.options.detailView && !that.options.cardView) {\n if (i === 0) {\n that.$header_.find('th.detail').find('.fht-cell').width($this.innerWidth());\n }\n index = i - 1;\n }\n\n that.$header_.find(sprintf('th[data-field=\"%s\"]', visibleFields[index]))\n .find('.fht-cell').width($this.innerWidth());\n });\n // horizontal scroll event\n // TODO: it's probably better improving the layout than binding to scroll event\n this.$tableBody.off('scroll').on('scroll', function () {\n that.$tableHeader.scrollLeft($(this).scrollLeft());\n\n if (that.options.showFooter && !that.options.cardView) {\n that.$tableFooter.scrollLeft($(this).scrollLeft());\n }\n });\n that.trigger('post-header');\n };\n\n BootstrapTable.prototype.resetFooter = function () {\n var that = this,\n data = that.getData(),\n html = [];\n\n if (!this.options.showFooter || this.options.cardView) { //do nothing\n return;\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('
                           
                          ');\n }\n\n $.each(this.columns, function (i, column) {\n var falign = '', // footer align style\n style = '',\n class_ = sprintf(' class=\"%s\"', column['class']);\n\n if (!column.visible) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n falign = sprintf('text-align: %s; ', column.falign ? column.falign : column.align);\n style = sprintf('vertical-align: %s; ', column.valign);\n\n html.push('');\n html.push('
                          ');\n\n html.push(calculateObjectValue(column, column.footerFormatter, [data], ' ') || ' ');\n\n html.push('
                          ');\n html.push('
                          ');\n html.push('');\n html.push('');\n });\n\n this.$tableFooter.find('tr').html(html.join(''));\n clearTimeout(this.timeoutFooter_);\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this),\n this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitFooter = function () {\n var that = this,\n $footerTd,\n elWidth,\n scrollWidth;\n\n clearTimeout(this.timeoutFooter_);\n if (this.$el.is(':hidden')) {\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this), 100);\n return;\n }\n\n elWidth = this.$el.css('width');\n scrollWidth = elWidth > this.$tableBody.width() ? getScrollBarWidth() : 0;\n\n this.$tableFooter.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', elWidth)\n .attr('class', this.$el.attr('class'));\n\n $footerTd = this.$tableFooter.find('td');\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this);\n\n $footerTd.eq(i).find('.fht-cell').width($this.innerWidth());\n });\n };\n\n BootstrapTable.prototype.toggleColumn = function (index, checked, needUpdate) {\n if (index === -1) {\n return;\n }\n this.columns[index].visible = checked;\n this.initHeader();\n this.initSearch();\n this.initPagination();\n this.initBody();\n\n if (this.options.showColumns) {\n var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);\n\n if (needUpdate) {\n $items.filter(sprintf('[value=\"%s\"]', index)).prop('checked', checked);\n }\n\n if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n $items.filter(':checked').prop('disabled', true);\n }\n }\n };\n\n BootstrapTable.prototype.toggleRow = function (index, uniqueId, visible) {\n if (index === -1) {\n return;\n }\n\n this.$body.find(typeof index !== 'undefined' ?\n sprintf('tr[data-index=\"%s\"]', index) :\n sprintf('tr[data-uniqueid=\"%s\"]', uniqueId))\n [visible ? 'show' : 'hide']();\n };\n\n BootstrapTable.prototype.getVisibleFields = function () {\n var that = this,\n visibleFields = [];\n\n $.each(this.header.fields, function (j, field) {\n var column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n visibleFields.push(field);\n });\n return visibleFields;\n };\n\n // PUBLIC FUNCTION DEFINITION\n // =======================\n\n BootstrapTable.prototype.resetView = function (params) {\n var padding = 0;\n\n if (params && params.height) {\n this.options.height = params.height;\n }\n\n this.$selectAll.prop('checked', this.$selectItem.length > 0 &&\n this.$selectItem.length === this.$selectItem.filter(':checked').length);\n\n if (this.options.height) {\n var toolbarHeight = getRealHeight(this.$toolbar),\n paginationHeight = getRealHeight(this.$pagination),\n height = this.options.height - toolbarHeight - paginationHeight;\n\n this.$tableContainer.css('height', height + 'px');\n }\n\n if (this.options.cardView) {\n // remove the element css\n this.$el.css('margin-top', '0');\n this.$tableContainer.css('padding-bottom', '0');\n return;\n }\n\n if (this.options.showHeader && this.options.height) {\n this.$tableHeader.show();\n this.resetHeader();\n padding += this.$header.outerHeight();\n } else {\n this.$tableHeader.hide();\n this.trigger('post-header');\n }\n\n if (this.options.showFooter) {\n this.resetFooter();\n if (this.options.height) {\n padding += this.$tableFooter.outerHeight() + 1;\n }\n }\n\n // Assign the correct sortable arrow\n this.getCaret();\n this.$tableContainer.css('padding-bottom', padding + 'px');\n this.trigger('reset-view');\n };\n\n BootstrapTable.prototype.getData = function (useCurrentPage) {\n return (this.searchText || !$.isEmptyObject(this.filterColumns) || !$.isEmptyObject(this.filterColumnsPartial)) ?\n (useCurrentPage ? this.data.slice(this.pageFrom - 1, this.pageTo) : this.data) :\n (useCurrentPage ? this.options.data.slice(this.pageFrom - 1, this.pageTo) : this.options.data);\n };\n\n BootstrapTable.prototype.load = function (data) {\n var fixedScroll = false;\n\n // #431: support pagination\n if (this.options.sidePagination === 'server') {\n this.options.totalRows = data.total;\n fixedScroll = data.fixedScroll;\n data = data[this.options.dataField];\n } else if (!$.isArray(data)) { // support fixedScroll\n fixedScroll = data.fixedScroll;\n data = data.data;\n }\n\n this.initData(data);\n this.initSearch();\n this.initPagination();\n this.initBody(fixedScroll);\n };\n\n BootstrapTable.prototype.append = function (data) {\n this.initData(data, 'append');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.prepend = function (data) {\n this.initData(data, 'prepend');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.remove = function (params) {\n var len = this.options.data.length,\n i, row;\n\n if (!params.hasOwnProperty('field') || !params.hasOwnProperty('values')) {\n return;\n }\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (!row.hasOwnProperty(params.field)) {\n continue;\n }\n if ($.inArray(row[params.field], params.values) !== -1) {\n this.options.data.splice(i, 1);\n }\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.removeAll = function () {\n if (this.options.data.length > 0) {\n this.options.data.splice(0, this.options.data.length);\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n }\n };\n\n BootstrapTable.prototype.getRowByUniqueId = function (id) {\n var uniqueId = this.options.uniqueId,\n len = this.options.data.length,\n dataRow = null,\n i, row, rowUniqueId;\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (row.hasOwnProperty(uniqueId)) { // uniqueId is a column\n rowUniqueId = row[uniqueId];\n } else if(row._data.hasOwnProperty(uniqueId)) { // uniqueId is a row data property\n rowUniqueId = row._data[uniqueId];\n } else {\n continue;\n }\n\n if (typeof rowUniqueId === 'string') {\n id = id.toString();\n } else if (typeof rowUniqueId === 'number') {\n if ((Number(rowUniqueId) === rowUniqueId) && (rowUniqueId % 1 === 0)) {\n id = parseInt(id);\n } else if ((rowUniqueId === Number(rowUniqueId)) && (rowUniqueId !== 0)) {\n id = parseFloat(id);\n }\n }\n\n if (rowUniqueId === id) {\n dataRow = row;\n break;\n }\n }\n\n return dataRow;\n };\n\n BootstrapTable.prototype.removeByUniqueId = function (id) {\n var len = this.options.data.length,\n row = this.getRowByUniqueId(id);\n\n if (row) {\n this.options.data.splice(this.options.data.indexOf(row), 1);\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateByUniqueId = function (params) {\n var rowId;\n\n if (!params.hasOwnProperty('id') || !params.hasOwnProperty('row')) {\n return;\n }\n\n rowId = $.inArray(this.getRowByUniqueId(params.id), this.options.data);\n\n if (rowId === -1) {\n return;\n }\n\n $.extend(this.data[rowId], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.insertRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n this.data.splice(params.index, 0, params.row);\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n $.extend(this.data[params.index], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.showRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, true);\n };\n\n BootstrapTable.prototype.hideRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, false);\n };\n\n BootstrapTable.prototype.getRowsHidden = function (show) {\n var rows = $(this.$body[0]).children().filter(':hidden'),\n i = 0;\n if (show) {\n for (; i < rows.length; i++) {\n $(rows[i]).show();\n }\n }\n return rows;\n };\n\n BootstrapTable.prototype.mergeCells = function (options) {\n var row = options.index,\n col = $.inArray(options.field, this.getVisibleFields()),\n rowspan = options.rowspan || 1,\n colspan = options.colspan || 1,\n i, j,\n $tr = this.$body.find('>tr'),\n $td;\n\n if (this.options.detailView && !this.options.cardView) {\n col += 1;\n }\n\n $td = $tr.eq(row).find('>td').eq(col);\n\n if (row < 0 || col < 0 || row >= this.data.length) {\n return;\n }\n\n for (i = row; i < row + rowspan; i++) {\n for (j = col; j < col + colspan; j++) {\n $tr.eq(i).find('>td').eq(j).hide();\n }\n }\n\n $td.attr('rowspan', rowspan).attr('colspan', colspan).show();\n };\n\n BootstrapTable.prototype.updateCell = function (params) {\n if (!params.hasOwnProperty('index') ||\n !params.hasOwnProperty('field') ||\n !params.hasOwnProperty('value')) {\n return;\n }\n this.data[params.index][params.field] = params.value;\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.getOptions = function () {\n return this.options;\n };\n\n BootstrapTable.prototype.getSelections = function () {\n var that = this;\n\n return $.grep(this.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.getAllSelections = function () {\n var that = this;\n\n return $.grep(this.options.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.checkAll = function () {\n this.checkAll_(true);\n };\n\n BootstrapTable.prototype.uncheckAll = function () {\n this.checkAll_(false);\n };\n\n BootstrapTable.prototype.checkAll_ = function (checked) {\n var rows;\n if (!checked) {\n rows = this.getSelections();\n }\n this.$selectAll.add(this.$selectAll_).prop('checked', checked);\n this.$selectItem.filter(':enabled').prop('checked', checked);\n this.updateRows();\n if (checked) {\n rows = this.getSelections();\n }\n this.trigger(checked ? 'check-all' : 'uncheck-all', rows);\n };\n\n BootstrapTable.prototype.check = function (index) {\n this.check_(true, index);\n };\n\n BootstrapTable.prototype.uncheck = function (index) {\n this.check_(false, index);\n };\n\n BootstrapTable.prototype.check_ = function (checked, index) {\n var $el = this.$selectItem.filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n this.data[index][this.header.stateField] = checked;\n this.updateSelected();\n this.trigger(checked ? 'check' : 'uncheck', this.data[index], $el);\n };\n\n BootstrapTable.prototype.checkBy = function (obj) {\n this.checkBy_(true, obj);\n };\n\n BootstrapTable.prototype.uncheckBy = function (obj) {\n this.checkBy_(false, obj);\n };\n\n BootstrapTable.prototype.checkBy_ = function (checked, obj) {\n if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {\n return;\n }\n\n var that = this,\n rows = [];\n $.each(this.options.data, function (index, row) {\n if (!row.hasOwnProperty(obj.field)) {\n return false;\n }\n if ($.inArray(row[obj.field], obj.values) !== -1) {\n var $el = that.$selectItem.filter(':enabled')\n .filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n row[that.header.stateField] = checked;\n rows.push(row);\n that.trigger(checked ? 'check' : 'uncheck', row, $el);\n }\n });\n this.updateSelected();\n this.trigger(checked ? 'check-some' : 'uncheck-some', rows);\n };\n\n BootstrapTable.prototype.destroy = function () {\n this.$el.insertBefore(this.$container);\n $(this.options.toolbar).insertBefore(this.$el);\n this.$container.next().remove();\n this.$container.remove();\n this.$el.html(this.$el_.html())\n .css('margin-top', '0')\n .attr('class', this.$el_.attr('class') || ''); // reset the class\n };\n\n BootstrapTable.prototype.showLoading = function () {\n this.$tableLoading.show();\n };\n\n BootstrapTable.prototype.hideLoading = function () {\n this.$tableLoading.hide();\n };\n\n BootstrapTable.prototype.togglePagination = function () {\n this.options.pagination = !this.options.pagination;\n var button = this.$toolbar.find('button[name=\"paginationSwitch\"] i');\n if (this.options.pagination) {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchDown);\n } else {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchUp);\n }\n this.updatePagination();\n };\n\n BootstrapTable.prototype.refresh = function (params) {\n if (params && params.url) {\n this.options.url = params.url;\n this.options.pageNumber = 1;\n }\n this.initServer(params && params.silent, params && params.query);\n };\n\n BootstrapTable.prototype.resetWidth = function () {\n if (this.options.showHeader && this.options.height) {\n this.fitHeader();\n }\n if (this.options.showFooter) {\n this.fitFooter();\n }\n };\n\n BootstrapTable.prototype.showColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), true, true);\n };\n\n BootstrapTable.prototype.hideColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), false, true);\n };\n\n BootstrapTable.prototype.getHiddenColumns = function () {\n return $.grep(this.columns, function (column) {\n return !column.visible;\n });\n };\n\n BootstrapTable.prototype.filterBy = function (columns) {\n this.filterColumns = $.isEmptyObject(columns) ? {} : columns;\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n };\n\n BootstrapTable.prototype.scrollTo = function (value) {\n if (typeof value === 'string') {\n value = value === 'bottom' ? this.$tableBody[0].scrollHeight : 0;\n }\n if (typeof value === 'number') {\n this.$tableBody.scrollTop(value);\n }\n if (typeof value === 'undefined') {\n return this.$tableBody.scrollTop();\n }\n };\n\n BootstrapTable.prototype.getScrollPosition = function () {\n return this.scrollTo();\n };\n\n BootstrapTable.prototype.selectPage = function (page) {\n if (page > 0 && page <= this.options.totalPages) {\n this.options.pageNumber = page;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.prevPage = function () {\n if (this.options.pageNumber > 1) {\n this.options.pageNumber--;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.nextPage = function () {\n if (this.options.pageNumber < this.options.totalPages) {\n this.options.pageNumber++;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.toggleView = function () {\n this.options.cardView = !this.options.cardView;\n this.initHeader();\n // Fixed remove toolbar when click cardView button.\n //that.initToolbar();\n this.initBody();\n this.trigger('toggle', this.options.cardView);\n };\n\n BootstrapTable.prototype.refreshOptions = function (options) {\n //If the objects are equivalent then avoid the call of destroy / init methods\n if (compareObjects(this.options, options, false)) {\n return;\n }\n this.options = $.extend(this.options, options);\n this.trigger('refresh-options', this.options);\n this.destroy();\n this.init();\n };\n\n BootstrapTable.prototype.resetSearch = function (text) {\n var $search = this.$toolbar.find('.search input');\n $search.val(text || '');\n this.onSearch({currentTarget: $search});\n };\n\n BootstrapTable.prototype.expandRow_ = function (expand, index) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', index));\n if ($tr.next().is('tr.detail-view') === (expand ? false : true)) {\n $tr.find('> td > .detail-icon').click();\n }\n };\n\n BootstrapTable.prototype.expandRow = function (index) {\n this.expandRow_(true, index);\n };\n\n BootstrapTable.prototype.collapseRow = function (index) {\n this.expandRow_(false, index);\n };\n\n BootstrapTable.prototype.expandAllRows = function (isSubTable) {\n if (isSubTable) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', 0)),\n that = this,\n detailIcon = null,\n executeInterval = false,\n idInterval = -1;\n\n if (!$tr.next().is('tr.detail-view')) {\n $tr.find('> td > .detail-icon').click();\n executeInterval = true;\n } else if (!$tr.next().next().is('tr.detail-view')) {\n $tr.next().find(\".detail-icon\").click();\n executeInterval = true;\n }\n\n if (executeInterval) {\n try {\n idInterval = setInterval(function () {\n detailIcon = that.$body.find(\"tr.detail-view\").last().find(\".detail-icon\");\n if (detailIcon.length > 0) {\n detailIcon.click();\n } else {\n clearInterval(idInterval);\n }\n }, 1);\n } catch (ex) {\n clearInterval(idInterval);\n }\n }\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(true, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n BootstrapTable.prototype.collapseAllRows = function (isSubTable) {\n if (isSubTable) {\n this.expandRow_(false, 0);\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(false, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n // BOOTSTRAP TABLE PLUGIN DEFINITION\n // =======================\n\n var allowedMethods = [\n 'getOptions',\n 'getSelections', 'getAllSelections', 'getData',\n 'load', 'append', 'prepend', 'remove', 'removeAll',\n 'insertRow', 'updateRow', 'updateCell', 'updateByUniqueId', 'removeByUniqueId',\n 'getRowByUniqueId', 'showRow', 'hideRow', 'getRowsHidden',\n 'mergeCells',\n 'checkAll', 'uncheckAll',\n 'check', 'uncheck',\n 'checkBy', 'uncheckBy',\n 'refresh',\n 'resetView',\n 'resetWidth',\n 'destroy',\n 'showLoading', 'hideLoading',\n 'showColumn', 'hideColumn', 'getHiddenColumns',\n 'filterBy',\n 'scrollTo',\n 'getScrollPosition',\n 'selectPage', 'prevPage', 'nextPage',\n 'togglePagination',\n 'toggleView',\n 'refreshOptions',\n 'resetSearch',\n 'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows'\n ];\n\n $.fn.bootstrapTable = function (option) {\n var value,\n args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var $this = $(this),\n data = $this.data('bootstrap.table'),\n options = $.extend({}, BootstrapTable.DEFAULTS, $this.data(),\n typeof option === 'object' && option);\n\n if (typeof option === 'string') {\n if ($.inArray(option, allowedMethods) < 0) {\n throw new Error(\"Unknown method: \" + option);\n }\n\n if (!data) {\n return;\n }\n\n value = data[option].apply(data, args);\n\n if (option === 'destroy') {\n $this.removeData('bootstrap.table');\n }\n }\n\n if (!data) {\n $this.data('bootstrap.table', (data = new BootstrapTable(this, options)));\n }\n });\n\n return typeof value === 'undefined' ? this : value;\n };\n\n $.fn.bootstrapTable.Constructor = BootstrapTable;\n $.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS;\n $.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS;\n $.fn.bootstrapTable.locales = BootstrapTable.LOCALES;\n $.fn.bootstrapTable.methods = allowedMethods;\n $.fn.bootstrapTable.utils = {\n sprintf: sprintf,\n getFieldIndex: getFieldIndex,\n compareObjects: compareObjects,\n calculateObjectValue: calculateObjectValue\n };\n\n // BOOTSTRAP TABLE INIT\n // =======================\n\n $(function () {\n $('[data-toggle=\"table\"]').bootstrapTable();\n });\n\n}(jQuery);\n","/* =========================================================\n * bootstrap-datepicker.js\n * Repo: https://github.com/eternicode/bootstrap-datepicker/\n * Demo: http://eternicode.github.io/bootstrap-datepicker/\n * Docs: http://bootstrap-datepicker.readthedocs.org/\n * Forked from http://www.eyecon.ro/bootstrap-datepicker\n * =========================================================\n * Started by Stefan Petre; improvements by Andrew Rowls + contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n\n(function($, undefined){\n\n\tvar $window = $(window);\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction alias(method){\n\t\treturn function(){\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n\t\t\t\t\tif (this[i].valueOf() === val)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.splice(0);\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = UTCToday();\n\t\tthis.focusDate = null;\n\n\t\tthis._process_options(options);\n\n\t\tthis.element = $(element);\n\t\tthis.isInline = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.is('.date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\n\t\tthis.picker = $(DPGlobal.template);\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tthis.viewMode = this.o.startView;\n\n\t\tif (this.o.calendarWeeks)\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t\t});\n\n\t\tthis._allow_update = false;\n\n\t\tthis.setStartDate(this._o.startDate);\n\t\tthis.setEndDate(this._o.endDate);\n\t\tthis.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis._allow_update = true;\n\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\tswitch (o.startView){\n\t\t\t\tcase 2:\n\t\t\t\tcase 'decade':\n\t\t\t\t\to.startView = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'year':\n\t\t\t\t\to.startView = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.startView = 0;\n\t\t\t}\n\n\t\t\tswitch (o.minViewMode){\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.minViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'years':\n\t\t\t\t\to.minViewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.minViewMode = 0;\n\t\t\t}\n\n\t\t\to.startView = Math.max(o.startView, o.minViewMode);\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t\telse\n\t\t\t\t\to.multidate = 1;\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = ((o.weekStart + 6) % 7);\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled||[];\n\t\t\tif (!$.isArray(o.daysOfWeekDisabled))\n\t\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\\s]*/);\n\t\t\to.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn (/^auto|left|right|top|bottom$/).test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^left|right$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^top|bottom$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t},\n\t\t_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n\t\t\tif (this.isInput){ // single input\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.component && this.hasInput){ // component: input + button\n\t\t\t\tthis._events = [\n\t\t\t\t\t// For components that are not readonly, allow keyboard nav\n\t\t\t\t\t[this.element.find('input'), {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}],\n\t\t\t\t\t[this.component, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.element.is('div')){ // inline datepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\t'mousedown touchstart': $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo('body');\n\t\t\tthis.picker.show();\n\t\t\tthis.place();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tif (!this.picker.is(':visible'))\n\t\t\t\treturn;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.viewMode = this.o.startView;\n\t\t\tthis.showMode();\n\n\t\t\tif (\n\t\t\t\tthis.o.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val() ||\n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t},\n\n\t\tremove: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\treturn utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\treturn new Date(this.dates.get(-1));\n\t\t},\n\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, $.map(args, this._utc_to_local));\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput){\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted).change();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.element.val(formatted).change();\n\t\t\t}\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\twindowWidth = $window.width(),\n\t\t\t\twindowHeight = $window.height(),\n\t\t\t\tscrollTop = $window.scrollTop();\n\n\t\t\tvar zIndex = parseInt(this.element.parents().filter(function(){\n\t\t\t\t\treturn $(this).css('z-index') !== 'auto';\n\t\t\t\t}).first().css('z-index'))+10;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left,\n\t\t\t\ttop = offset.top;\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\t// Default to left\n\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\tif (offset.left < 0)\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\telse if (offset.left + calendarWidth > windowWidth)\n\t\t\t\t\tleft = windowWidth - calendarWidth - visualPadding;\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow, bottom_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + offset.top - calendarHeight;\n\t\t\t\tbottom_overflow = scrollTop + windowHeight - (offset.top + height + calendarHeight);\n\t\t\t\tif (Math.max(top_overflow, bottom_overflow) === bottom_overflow)\n\t\t\t\t\tyorient = 'top';\n\t\t\t\telse\n\t\t\t\t\tyorient = 'bottom';\n\t\t\t}\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop += height;\n\t\t\telse\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\n\t\t\tthis.picker.css({\n\t\t\t\ttop: top,\n\t\t\t\tleft: left,\n\t\t\t\tzIndex: zIndex\n\t\t\t});\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.element.find('input').val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\tdate < this.o.startDate ||\n\t\t\t\t\tdate > this.o.endDate ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.dates.length)\n\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t}\n\t\t\telse if (dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates))\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length)\n\t\t\t\tthis._trigger('clearDate');\n\n\t\t\tthis.fill();\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\tvar cell = ' ';\n\t\t\t\thtml += cell;\n\t\t\t\tthis.picker.find('.datepicker-days thead tr:first-child').prepend(cell);\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += ''+dates[this.o.language].daysMin[(dowCnt++)%7]+'';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12){\n\t\t\t\thtml += ''+dates[this.o.language].monthsShort[i++]+'';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = new Date();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t}\n\t\t\telse if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\tif (this.o.todayHighlight &&\n\t\t\t\tdate.getUTCFullYear() === today.getFullYear() &&\n\t\t\t\tdate.getUTCMonth() === today.getMonth() &&\n\t\t\t\tdate.getUTCDate() === today.getDate()){\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (date.valueOf() < this.o.startDate || date.valueOf() > this.o.endDate ||\n\t\t\t\t$.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n\t\t\t\ttooltip;\n\t\t\tthis.picker.find('.datepicker-days thead th.datepicker-switch')\n\t\t\t\t\t\t.text(dates[this.o.language].months[month]+' '+year);\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.text(todaytxt)\n\t\t\t\t\t\t.toggle(this.o.todayBtn !== false);\n\t\t\tthis.picker.find('tfoot th.clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.toggle(this.o.clearBtn !== false);\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28),\n\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\tprevMonth.setUTCDate(day);\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekStart){\n\t\t\t\t\thtml.push('');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek = (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push(''+ calWeek +'');\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tvar before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t}\n\n\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\thtml.push(''+prevMonth.getUTCDate() + '');\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekEnd){\n\t\t\t\t\thtml.push('');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').empty().append(html.join(''));\n\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t.text(year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datepicker-years')\n\t\t\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tvar years = $.map(this.dates, function(d){\n\t\t\t\t\treturn d.getUTCFullYear();\n\t\t\t\t}),\n\t\t\t\tclasses;\n\t\t\tfor (var i = -1; i < 11; i++){\n\t\t\t\tclasses = ['year'];\n\t\t\t\tif (i === -1)\n\t\t\t\t\tclasses.push('old');\n\t\t\t\telse if (i === 10)\n\t\t\t\t\tclasses.push('new');\n\t\t\t\tif ($.inArray(year, years) !== -1)\n\t\t\t\t\tclasses.push('active');\n\t\t\t\tif (year < startYear || year > endYear)\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\thtml += ''+year+'';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth();\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\tvar target = $(e.target).closest('span, td, th'),\n\t\t\t\tyear, month, day;\n\t\t\tif (target.length === 1){\n\t\t\t\tswitch (target[0].nodeName.toLowerCase()){\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch (target[0].className){\n\t\t\t\t\t\t\tcase 'datepicker-switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch (this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode === 1)\n\t\t\t\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tvar date = new Date();\n\t\t\t\t\t\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\n\t\t\t\t\t\t\t\tthis.showMode(-2);\n\t\t\t\t\t\t\t\tvar which = this.o.todayBtn === 'linked' ? null : 'view';\n\t\t\t\t\t\t\t\tthis._setDate(date, which);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clear':\n\t\t\t\t\t\t\t\tvar element;\n\t\t\t\t\t\t\t\tif (this.isInput)\n\t\t\t\t\t\t\t\t\telement = this.element;\n\t\t\t\t\t\t\t\telse if (this.component)\n\t\t\t\t\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t\t\t\t\tif (element)\n\t\t\t\t\t\t\t\t\telement.val(\"\").change();\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.is('.disabled')){\n\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\tif (target.is('.month')){\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 1){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10)||0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 2){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.is('.day') && !target.is('.disabled')){\n\t\t\t\t\t\t\tday = parseInt(target.text(), 10)||1;\n\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth();\n\t\t\t\t\t\t\tif (target.is('.old')){\n\t\t\t\t\t\t\t\tif (month === 0){\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (target.is('.new')){\n\t\t\t\t\t\t\t\tif (month === 11){\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\t$(this._focused_from).focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\t\t\telse if (ix !== -1){\n\t\t\t\tthis.dates.remove(ix);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif (!which || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tthis._trigger('changeDate');\n\t\t\tvar element;\n\t\t\tif (this.isInput){\n\t\t\t\telement = this.element;\n\t\t\t}\n\t\t\telse if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element){\n\t\t\t\telement.change();\n\t\t\t}\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (this.picker.is(':not(:visible)')){\n\t\t\t\tif (e.keyCode === 27) // allow escape to hide and re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newDate, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 39: // right\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 38 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir * 7);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir * 7);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 32: // spacebar\n\t\t\t\t\t// Spacebar is used in manually typing dates in some formats.\n\t\t\t\t\t// As such, its behavior should not be hijacked.\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\tdateChanged = true;\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput){\n\t\t\t\t\telement = this.element;\n\t\t\t\t}\n\t\t\t\telse if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element){\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir){\n\t\t\tif (dir){\n\t\t\t\tthis.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + dir));\n\t\t\t}\n\t\t\tthis.picker\n\t\t\t\t.find('>div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName)\n\t\t\t\t\t.css('display', 'block');\n\t\t\tthis.updateNavArrows();\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\t$(this.inputs)\n\t\t\t.datepicker(options)\n\t\t\t.bind('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $(i).data('datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling. Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $(e.target).data('datepicker'),\n\t\t\t\tnew_date = dp.getUTCDate(),\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate())\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[i]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (i >= 0 && new_date < this.dates[i]){\n\t\t\t\t\tthis.pickers[i--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (new_date > this.dates[i]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (i < l && new_date > this.dates[i]){\n\t\t\t\t\tthis.pickers[i++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tremove: function(){\n\t\t\t$.map(this.pickers, function(p){ p.remove(); });\n\t\t\tdelete this.element.data().datepicker;\n\t\t}\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\t$.fn.datepicker = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.is('.input-daterange') || opts.inputs){\n\t\t\t\t\tvar ropts = {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t};\n\t\t\t\t\t$this.data('datepicker', (data = new DateRangePicker(this, $.extend(opts, ropts))));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$this.data('datepicker', (data = new Datepicker(this, opts)));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t\tif (internal_return !== undefined)\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif (internal_return !== undefined)\n\t\t\treturn internal_return;\n\t\telse\n\t\t\treturn this;\n\t};\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tweekStart: 0\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function(year){\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\t\t},\n\t\tgetDaysInMonth: function(year, month){\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\t\t},\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\[\\u3400-\\u9fff-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\t// IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar part_re = /([\\-+]\\d+)([dmwy])/,\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g),\n\t\t\t\tpart, dir, i;\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tswitch (part[2]){\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'm':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveMonth.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'w':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir * 7);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'y':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveYear.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0);\n\t\t\t}\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\t\t\tdate = new Date();\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(v);\n\t\t\t\t\t},\n\t\t\t\t\tyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(2000+v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m === p;\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'«'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'»'+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t'',\n\t\tcontTemplate: '',\n\t\tfootTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t''\n\t};\n\tDPGlobal.template = '
                          '+\n\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t\t'
                          '+\n\t\t\t\t\t\t'
                          ';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\t$this.datepicker('show');\n\t\t}\n\t);\n\t$(function(){\n\t\t$('[data-provide=\"datepicker-inline\"]').datepicker();\n\t});\n\n}(window.jQuery));\n","/*!\n * Select2 4.0.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n factory(require('jquery'));\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =\n(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that \"directory\" and not name of the baseName's\n //module. For instance, baseName of \"one/two/three\", maps to\n //\"one/two/three.js\", but we want the directory, \"one/two\" for\n //this normalization.\n baseParts = baseParts.slice(0, baseParts.length - 1);\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n name = baseParts.concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '
                            '\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
                          • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n this.$results.append($message);\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = $.data(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'treeitem',\n 'aria-selected': 'false'\n };\n\n if (data.disabled) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('
                              ', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n $.data(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = $highlighted.data('data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close');\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at te top, don't move further\n if (currentIndex === 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = (\n self.$results.get(0).scrollHeight -\n self.$results.scrollTop() +\n e.deltaY\n );\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = $this.data('data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close');\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = $(this).data('data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (this.$element.data('old-tabindex') != null) {\n this._tabindex = this.$element.data('old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-container';\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.focus();\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n });\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n var self = this;\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n var $this = $(this);\n\n if (this == $select[0]) {\n return;\n }\n\n var $element = $this.data('element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n };\n\n SingleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n SingleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var formatted = this.display(selection);\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty().append(formatted);\n $rendered.prop('title', selection.title || selection.text);\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n '
                                '\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('click', '.select2-selection__choice__remove',\n function (evt) {\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = $selection.data('data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n MultipleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
                              • ' +\n '' +\n '×' +\n '' +\n '
                              • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var formatted = this.display(selection);\n var $selection = this.selectionContainer();\n\n $selection.append(formatted);\n $selection.prop('title', selection.title || selection.text);\n\n $selection.data('data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys'\n], function ($, KEYS) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.options.get('disabled')) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = $clear.data('data');\n\n for (var d = 0; d < data.length; d++) {\n var unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n return;\n }\n }\n\n this.$element.val(this.placeholder.id).trigger('change');\n\n this.trigger('toggle');\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var $remove = $(\n '' +\n '×' +\n ''\n );\n $remove.data('data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n self.$search.focus();\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = $previousChoice.data('data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on('input', '.select2-search--inline', function (evt) {\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n });\n\n this.$selection.on('keyup.search input', '.select2-search--inline',\n function (evt) {\n self.handleSearch(evt);\n });\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.trigger('open');\n\n this.$search.val(item.text + ' ');\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').innerWidth();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting'\n ];\n\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n $.removeData(this, 'data');\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n $.data(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = $.data($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n $.data($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (!$.isPlainObject(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n var data = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n\n this.addOptions(this.convertToOptions(data));\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, existingData, item);\n\n var $newOption = this.option(existingData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return {\n q: params.term\n };\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url(params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data(params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // TODO: Handle AJAX errors\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term !== '') {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var checkText = option.text === params.term;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var tag = this._lastTag;\n\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function select (data) {\n self.select(data);\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, select);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.focus();\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n decorated.call(self, params, callback);\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implmented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n\n window.setTimeout(function () {\n self.$search.focus();\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n self.$loadingMore[0]\n );\n\n if (self.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var loadingMoreOffset = self.$loadingMore.offset().top +\n self.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n self.loadMore();\n }\n });\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
                              • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = options.get('dropdownParent') || document.body;\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var setupResultsEvents = false;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n if (!setupResultsEvents) {\n setupResultsEvents = true;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n }\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._attachPositioningHandler = function (container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n $(this).data('select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = $(this).data('select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = function (container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var position = this.$container.position();\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n this.$dropdownContainer.width();\n\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n\n], function () {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function () {\n self._handleSelectOnClose();\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function () {\n var $highlightedResults = this.getHighlightedResults();\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n this.trigger('select', {\n data: $highlightedResults.data('data')\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && originalEvent.ctrlKey) {\n return;\n }\n\n this.trigger('close');\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend({}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n if (typeof options.language === 'string') {\n // Check if the language is specified with a region\n if (options.language.indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = options.language.split('-');\n var baseLanguage = languageParts[0];\n\n options.language = [options.language, baseLanguage];\n } else {\n options.language = [options.language];\n }\n }\n\n if ($.isArray(options.language)) {\n var languages = new Translation();\n options.language.push('en');\n\n var languageNames = options.language;\n\n for (var l = 0; l < languageNames.length; l++) {\n var name = languageNames[l];\n var language = {};\n\n try {\n // Try to load it with the original name\n language = Translation.loadPath(name);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n name = this.defaults.amdLanguageBase + name;\n language = Translation.loadPath(name);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files.\n if (options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + name + '\" could not be ' +\n 'automatically loaded. A fallback will be used instead.'\n );\n }\n\n continue;\n }\n }\n\n languages.extend(language);\n }\n\n options.translations = languages;\n } else {\n var baseTranslation = Translation.loadPath(\n this.defaults.amdLanguageBase + 'en'\n );\n var customTranslation = new Translation(options.language);\n\n customTranslation.extend(baseTranslation);\n\n options.translations = customTranslation;\n }\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: EnglishTranslation,\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.language == null) {\n if ($e.prop('lang')) {\n this.options.language = $e.prop('lang').toLowerCase();\n } else if ($e.closest('[lang]').prop('lang')) {\n this.options.language = $e.closest('[lang]').prop('lang');\n }\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if ($e.data('select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n $e.data('data', $e.data('select2Tags'));\n $e.data('tags', true);\n }\n\n if ($e.data('ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', $e.data('ajaxUrl'));\n $e.data('ajax--url', $e.data('ajaxUrl'));\n }\n\n var dataset = {};\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, $e.data());\n } else {\n dataset = $e.data();\n }\n\n var data = $.extend(true, {}, dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if ($element.data('select2') != null) {\n $element.data('select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n $element.data('old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n\t$element.attr('aria-hidden', 'true');\n\t\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this._sync = Utils.bind(this._syncAttributes, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._sync);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n $.each(mutations, self._sync);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener('DOMAttrModified', self._sync, false);\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('focus', function () {\n self.$container.addClass('select2-container--focus');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open');\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ENTER) {\n self.trigger('results:select');\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle');\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous');\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next');\n\n evt.preventDefault();\n } else if (key === KEYS.ESC || key === KEYS.TAB) {\n self.close();\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n ((key === KEYS.DOWN || key === KEYS.UP) && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.options.get('disabled')) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable');\n } else {\n this.trigger('enable');\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting'\n };\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.options.get('disabled')) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n this.trigger('query', {});\n\n this.trigger('open');\n };\n\n Select2.prototype.close = function () {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._sync);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._sync, false);\n }\n\n this._sync = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex', this.$element.data('old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n\tthis.$element.attr('aria-hidden', 'false');\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n $container.data('element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'require',\n\n './select2/core',\n './select2/defaults'\n], function ($, require, Select2, Defaults) {\n // Force jQuery.mousewheel to be loaded if it hasn't already\n require('jquery.mousewheel');\n\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend({}, options, true);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var instance = this.data('select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n var args = Array.prototype.slice.call(arguments, 1);\n\n var ret = instance[options](args);\n\n // Check if we should be returning `this`\n if ($.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\nS2.define('jquery.mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","/*!\n * iCheck v1.0.1, http://git.io/arlzeA\n * =================================\n * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization\n *\n * (c) 2013 Damir Sultanov, http://fronteed.com\n * MIT Licensed\n */\n\n(function($) {\n\n // Cached vars\n var _iCheck = 'iCheck',\n _iCheckHelper = _iCheck + '-helper',\n _checkbox = 'checkbox',\n _radio = 'radio',\n _checked = 'checked',\n _unchecked = 'un' + _checked,\n _disabled = 'disabled',\n _determinate = 'determinate',\n _indeterminate = 'in' + _determinate,\n _update = 'update',\n _type = 'type',\n _click = 'click',\n _touch = 'touchbegin.i touchend.i',\n _add = 'addClass',\n _remove = 'removeClass',\n _callback = 'trigger',\n _label = 'label',\n _cursor = 'cursor',\n _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);\n\n // Plugin init\n $.fn[_iCheck] = function(options, fire) {\n\n // Walker\n var handle = 'input[type=\"' + _checkbox + '\"], input[type=\"' + _radio + '\"]',\n stack = $(),\n walker = function(object) {\n object.each(function() {\n var self = $(this);\n\n if (self.is(handle)) {\n stack = stack.add(self);\n } else {\n stack = stack.add(self.find(handle));\n }\n });\n };\n\n // Check if we should operate with some method\n if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {\n\n // Normalize method's name\n options = options.toLowerCase();\n\n // Find checkboxes and radio buttons\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n if (options == 'destroy') {\n tidy(self, 'ifDestroyed');\n } else {\n operate(self, true, options);\n }\n // Fire method's callback\n if ($.isFunction(fire)) {\n fire();\n }\n });\n\n // Customization\n } else if (typeof options == 'object' || !options) {\n\n // Check if any options were passed\n var settings = $.extend({\n checkedClass: _checked,\n disabledClass: _disabled,\n indeterminateClass: _indeterminate,\n labelHover: true,\n aria: false\n }, options),\n\n selector = settings.handle,\n hoverClass = settings.hoverClass || 'hover',\n focusClass = settings.focusClass || 'focus',\n activeClass = settings.activeClass || 'active',\n labelHover = !!settings.labelHover,\n labelHoverClass = settings.labelHoverClass || 'hover',\n\n // Setup clickable area\n area = ('' + settings.increaseArea).replace('%', '') | 0;\n\n // Selector limit\n if (selector == _checkbox || selector == _radio) {\n handle = 'input[type=\"' + selector + '\"]';\n }\n // Clickable area limit\n if (area < -50) {\n area = -50;\n }\n // Walk around the selector\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n // If already customized\n tidy(self);\n\n var node = this,\n id = node.id,\n\n // Layer styles\n offset = -area + '%',\n size = 100 + (area * 2) + '%',\n layer = {\n position: 'absolute',\n top: offset,\n left: offset,\n display: 'block',\n width: size,\n height: size,\n margin: 0,\n padding: 0,\n background: '#fff',\n border: 0,\n opacity: 0\n },\n\n // Choose how to hide input\n hide = _mobile ? {\n position: 'absolute',\n visibility: 'hidden'\n } : area ? layer : {\n position: 'absolute',\n opacity: 0\n },\n\n // Get proper class\n className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,\n\n // Find assigned labels\n label = $(_label + '[for=\"' + id + '\"]').add(self.closest(_label)),\n\n // Check ARIA option\n aria = !!settings.aria,\n\n // Set ARIA placeholder\n ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),\n\n // Parent & helper\n parent = '
                                ')[_callback]('ifCreated').parent().append(settings.insert);\n\n // Layer addition\n helper = $('').css(layer).appendTo(parent);\n\n // Finalize customization\n self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);\n !!settings.inheritClass && parent[_add](node.className || '');\n !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);\n parent.css('position') == 'static' && parent.css('position', 'relative');\n operate(self, true, _update);\n\n // Label events\n if (label.length) {\n label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {\n var type = event[_type],\n item = $(this);\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n if ($(event.target).is('a')) {\n return;\n }\n operate(self, false, true);\n\n // Hover state\n } else if (labelHover) {\n\n // mouseout|touchend\n if (/ut|nd/.test(type)) {\n parent[_remove](hoverClass);\n item[_remove](labelHoverClass);\n } else {\n parent[_add](hoverClass);\n item[_add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n }\n // Input events\n self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {\n var type = event[_type],\n key = event.keyCode;\n\n // Click\n if (type == _click) {\n return false;\n\n // Keydown\n } else if (type == 'keydown' && key == 32) {\n if (!(node[_type] == _radio && node[_checked])) {\n if (node[_checked]) {\n off(self, _checked);\n } else {\n on(self, _checked);\n }\n }\n return false;\n\n // Keyup\n } else if (type == 'keyup' && node[_type] == _radio) {\n !node[_checked] && on(self, _checked);\n\n // Focus/blur\n } else if (/us|ur/.test(type)) {\n parent[type == 'blur' ? _remove : _add](focusClass);\n }\n });\n\n // Helper events\n helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {\n var type = event[_type],\n\n // mousedown|mouseup\n toggle = /wn|up/.test(type) ? activeClass : hoverClass;\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n operate(self, false, true);\n\n // Active and hover states\n } else {\n\n // State is on\n if (/wn|er|in/.test(type)) {\n\n // mousedown|mouseover|touchbegin\n parent[_add](toggle);\n\n // State is off\n } else {\n parent[_remove](toggle + ' ' + activeClass);\n }\n // Label hover\n if (label.length && labelHover && toggle == hoverClass) {\n\n // mouseout|touchend\n label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n });\n } else {\n return this;\n }\n };\n\n // Do something with inputs\n function operate(input, direct, method) {\n var node = input[0],\n state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,\n active = method == _update ? {\n checked: node[_checked],\n disabled: node[_disabled],\n indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'\n } : node[state];\n\n // Check, disable or indeterminate\n if (/^(ch|di|in)/.test(method) && !active) {\n on(input, state);\n\n // Uncheck, enable or determinate\n } else if (/^(un|en|de)/.test(method) && active) {\n off(input, state);\n\n // Update\n } else if (method == _update) {\n\n // Handle states\n for (var state in active) {\n if (active[state]) {\n on(input, state, true);\n } else {\n off(input, state, true);\n }\n }\n } else if (!direct || method == 'toggle') {\n\n // Helper or label was clicked\n if (!direct) {\n input[_callback]('ifClicked');\n }\n // Toggle checked state\n if (active) {\n if (node[_type] !== _radio) {\n off(input, state);\n }\n } else {\n on(input, state);\n }\n }\n }\n // Add checked, disabled or indeterminate state\n function on(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== true) {\n\n // Toggle assigned radio buttons\n if (!keep && state == _checked && node[_type] == _radio && node.name) {\n var form = input.closest('form'),\n inputs = 'input[name=\"' + node.name + '\"]';\n\n inputs = form.length ? form.find(inputs) : $(inputs);\n\n inputs.each(function() {\n if (this !== node && $(this).data(_iCheck)) {\n off($(this), state);\n }\n });\n }\n // Indeterminate state\n if (indeterminate) {\n\n // Add indeterminate state\n node[state] = true;\n\n // Remove checked state\n if (node[_checked]) {\n off(input, _checked, 'force');\n }\n // Checked or disabled state\n } else {\n\n // Add checked or disabled state\n if (!keep) {\n node[state] = true;\n }\n // Remove indeterminate state\n if (checked && node[_indeterminate]) {\n off(input, _indeterminate, false);\n }\n }\n // Trigger callbacks\n callbacks(input, checked, state, keep);\n }\n // Add proper cursor\n if (node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'default');\n }\n // Add state class\n parent[_add](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');\n\n // Remove regular state class\n parent[_remove](regular || option(input, callback) || '');\n }\n // Remove checked, disabled or indeterminate state\n function off(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== false) {\n\n // Toggle state\n if (indeterminate || !keep || keep == 'force') {\n node[state] = false;\n }\n // Trigger callbacks\n callbacks(input, checked, callback, keep);\n }\n // Add proper cursor\n if (!node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');\n }\n // Remove state class\n parent[_remove](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');\n\n // Add regular state class\n parent[_add](regular || option(input, callback) || '');\n }\n // Remove all traces\n function tidy(input, callback) {\n if (input.data(_iCheck)) {\n\n // Remove everything except input\n input.parent().html(input.attr('style', input.data(_iCheck).s || ''));\n\n // Callback\n if (callback) {\n input[_callback](callback);\n }\n // Unbind events\n input.off('.i').unwrap();\n $(_label + '[for=\"' + input[0].id + '\"]').add(input.closest(_label)).off('.i');\n }\n }\n // Get some option\n function option(input, state, regular) {\n if (input.data(_iCheck)) {\n return input.data(_iCheck).o[state + (regular ? '' : 'Class')];\n }\n }\n // Capitalize some string\n function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n // Executable handlers\n function callbacks(input, checked, callback, keep) {\n if (!keep) {\n if (checked) {\n input[_callback]('ifToggled');\n }\n input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));\n }\n }\n})(window.jQuery || window.Zepto);\n","\n/*\nLightbox for Bootstrap 3 by @ashleydw\nhttps://github.com/ashleydw/lightbox\n\nLicense: https://github.com/ashleydw/lightbox/blob/master/LICENSE\n */\n\n(function() {\n \"use strict\";\n var $, EkkoLightbox;\n\n $ = jQuery;\n\n EkkoLightbox = function(element, options) {\n var content, footer, header;\n this.options = $.extend({\n title: null,\n footer: null,\n remote: null\n }, $.fn.ekkoLightbox.defaults, options || {});\n this.$element = $(element);\n content = '';\n this.modal_id = this.options.modal_id ? this.options.modal_id : 'ekkoLightbox-' + Math.floor((Math.random() * 1000) + 1);\n header = '

                                ' + (this.options.title || \" \") + '

                                ';\n footer = '
                                ' + this.options.footer + '
                                ';\n $(document.body).append('
                                ' + header + '
                                ' + footer + '
                                ');\n this.modal = $('#' + this.modal_id);\n this.modal_dialog = this.modal.find('.modal-dialog').first();\n this.modal_content = this.modal.find('.modal-content').first();\n this.modal_body = this.modal.find('.modal-body').first();\n this.modal_header = this.modal.find('.modal-header').first();\n this.modal_footer = this.modal.find('.modal-footer').first();\n this.lightbox_container = this.modal_body.find('.ekko-lightbox-container').first();\n this.lightbox_body = this.lightbox_container.find('> div:first-child').first();\n this.showLoading();\n this.modal_arrows = null;\n this.border = {\n top: parseFloat(this.modal_dialog.css('border-top-width')) + parseFloat(this.modal_content.css('border-top-width')) + parseFloat(this.modal_body.css('border-top-width')),\n right: parseFloat(this.modal_dialog.css('border-right-width')) + parseFloat(this.modal_content.css('border-right-width')) + parseFloat(this.modal_body.css('border-right-width')),\n bottom: parseFloat(this.modal_dialog.css('border-bottom-width')) + parseFloat(this.modal_content.css('border-bottom-width')) + parseFloat(this.modal_body.css('border-bottom-width')),\n left: parseFloat(this.modal_dialog.css('border-left-width')) + parseFloat(this.modal_content.css('border-left-width')) + parseFloat(this.modal_body.css('border-left-width'))\n };\n this.padding = {\n top: parseFloat(this.modal_dialog.css('padding-top')) + parseFloat(this.modal_content.css('padding-top')) + parseFloat(this.modal_body.css('padding-top')),\n right: parseFloat(this.modal_dialog.css('padding-right')) + parseFloat(this.modal_content.css('padding-right')) + parseFloat(this.modal_body.css('padding-right')),\n bottom: parseFloat(this.modal_dialog.css('padding-bottom')) + parseFloat(this.modal_content.css('padding-bottom')) + parseFloat(this.modal_body.css('padding-bottom')),\n left: parseFloat(this.modal_dialog.css('padding-left')) + parseFloat(this.modal_content.css('padding-left')) + parseFloat(this.modal_body.css('padding-left'))\n };\n this.modal.on('show.bs.modal', this.options.onShow.bind(this)).on('shown.bs.modal', (function(_this) {\n return function() {\n _this.modal_shown();\n return _this.options.onShown.call(_this);\n };\n })(this)).on('hide.bs.modal', this.options.onHide.bind(this)).on('hidden.bs.modal', (function(_this) {\n return function() {\n if (_this.gallery) {\n $(document).off('keydown.ekkoLightbox');\n }\n _this.modal.remove();\n return _this.options.onHidden.call(_this);\n };\n })(this)).modal('show', options);\n return this.modal;\n };\n\n EkkoLightbox.prototype = {\n modal_shown: function() {\n var video_id;\n if (!this.options.remote) {\n return this.error('No remote target given');\n } else {\n this.gallery = this.$element.data('gallery');\n if (this.gallery) {\n if (this.options.gallery_parent_selector === 'document.body' || this.options.gallery_parent_selector === '') {\n this.gallery_items = $(document.body).find('*[data-gallery=\"' + this.gallery + '\"]');\n } else {\n this.gallery_items = this.$element.parents(this.options.gallery_parent_selector).first().find('*[data-gallery=\"' + this.gallery + '\"]');\n }\n this.gallery_index = this.gallery_items.index(this.$element);\n $(document).on('keydown.ekkoLightbox', this.navigate.bind(this));\n if (this.options.directional_arrows && this.gallery_items.length > 1) {\n this.lightbox_container.append('
                                ');\n this.modal_arrows = this.lightbox_container.find('div.ekko-lightbox-nav-overlay').first();\n this.lightbox_container.find('a' + this.strip_spaces(this.options.left_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_left();\n };\n })(this));\n this.lightbox_container.find('a' + this.strip_spaces(this.options.right_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_right();\n };\n })(this));\n }\n }\n if (this.options.type) {\n if (this.options.type === 'image') {\n return this.preloadImage(this.options.remote, true);\n } else if (this.options.type === 'youtube' && (video_id = this.getYoutubeId(this.options.remote))) {\n return this.showYoutubeVideo(video_id);\n } else if (this.options.type === 'vimeo') {\n return this.showVimeoVideo(this.options.remote);\n } else if (this.options.type === 'instagram') {\n return this.showInstagramVideo(this.options.remote);\n } else if (this.options.type === 'url') {\n return this.loadRemoteContent(this.options.remote);\n } else if (this.options.type === 'video') {\n return this.showVideoIframe(this.options.remote);\n } else {\n return this.error(\"Could not detect remote target type. Force the type using data-type=\\\"image|youtube|vimeo|instagram|url|video\\\"\");\n }\n } else {\n return this.detectRemoteType(this.options.remote);\n }\n }\n },\n strip_stops: function(str) {\n return str.replace(/\\./g, '');\n },\n strip_spaces: function(str) {\n return str.replace(/\\s/g, '');\n },\n isImage: function(str) {\n return str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n },\n isSwf: function(str) {\n return str.match(/\\.(swf)((\\?|#).*)?$/i);\n },\n getYoutubeId: function(str) {\n var match;\n match = str.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/);\n if (match && match[2].length === 11) {\n return match[2];\n } else {\n return false;\n }\n },\n getVimeoId: function(str) {\n if (str.indexOf('vimeo') > 0) {\n return str;\n } else {\n return false;\n }\n },\n getInstagramId: function(str) {\n if (str.indexOf('instagram') > 0) {\n return str;\n } else {\n return false;\n }\n },\n navigate: function(event) {\n event = event || window.event;\n if (event.keyCode === 39 || event.keyCode === 37) {\n if (event.keyCode === 39) {\n return this.navigate_right();\n } else if (event.keyCode === 37) {\n return this.navigate_left();\n }\n }\n },\n navigateTo: function(index) {\n var next, src;\n if (index < 0 || index > this.gallery_items.length - 1) {\n return this;\n }\n this.showLoading();\n this.gallery_index = index;\n this.$element = $(this.gallery_items.get(this.gallery_index));\n this.updateTitleAndFooter();\n src = this.$element.attr('data-remote') || this.$element.attr('href');\n this.detectRemoteType(src, this.$element.attr('data-type') || false);\n if (this.gallery_index + 1 < this.gallery_items.length) {\n next = $(this.gallery_items.get(this.gallery_index + 1), false);\n src = next.attr('data-remote') || next.attr('href');\n if (next.attr('data-type') === 'image' || this.isImage(src)) {\n return this.preloadImage(src, false);\n }\n }\n },\n navigate_left: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === 0) {\n this.gallery_index = this.gallery_items.length - 1;\n } else {\n this.gallery_index--;\n }\n this.options.onNavigate.call(this, 'left', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n navigate_right: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === this.gallery_items.length - 1) {\n this.gallery_index = 0;\n } else {\n this.gallery_index++;\n }\n this.options.onNavigate.call(this, 'right', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n detectRemoteType: function(src, type) {\n var video_id;\n type = type || false;\n if (type === 'image' || this.isImage(src)) {\n this.options.type = 'image';\n return this.preloadImage(src, true);\n } else if (type === 'youtube' || (video_id = this.getYoutubeId(src))) {\n this.options.type = 'youtube';\n return this.showYoutubeVideo(video_id);\n } else if (type === 'vimeo' || (video_id = this.getVimeoId(src))) {\n this.options.type = 'vimeo';\n return this.showVimeoVideo(video_id);\n } else if (type === 'instagram' || (video_id = this.getInstagramId(src))) {\n this.options.type = 'instagram';\n return this.showInstagramVideo(video_id);\n } else if (type === 'video') {\n this.options.type = 'video';\n return this.showVideoIframe(video_id);\n } else {\n this.options.type = 'url';\n return this.loadRemoteContent(src);\n }\n },\n updateTitleAndFooter: function() {\n var caption, footer, header, title;\n header = this.modal_content.find('.modal-header');\n footer = this.modal_content.find('.modal-footer');\n title = this.$element.data('title') || \"\";\n caption = this.$element.data('footer') || \"\";\n if (title || this.options.always_show_close) {\n header.css('display', '').find('.modal-title').html(title || \" \");\n } else {\n header.css('display', 'none');\n }\n if (caption) {\n footer.css('display', '').html(caption);\n } else {\n footer.css('display', 'none');\n }\n return this;\n },\n showLoading: function() {\n this.lightbox_body.html('
                                ' + this.options.loadingMessage + '
                                ');\n return this;\n },\n showYoutubeVideo: function(id) {\n var height, rel, width;\n if ((this.$element.attr('data-norelated') != null) || this.options.no_related) {\n rel = \"&rel=0\";\n } else {\n rel = \"\";\n }\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (560 / 315);\n return this.showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + rel, width, height);\n },\n showVimeoVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (500 / 281);\n return this.showVideoIframe(id + '?autoplay=1', width, height);\n },\n showInstagramVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 612);\n this.resize(width);\n height = width + 80;\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n return this.modal_arrows.css('display', 'none');\n }\n },\n showVideoIframe: function(url, width, height) {\n height = height || width;\n this.resize(width);\n this.lightbox_body.html('
                                ');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n loadRemoteContent: function(url) {\n var disableExternalCheck, width;\n width = this.$element.data('width') || 560;\n this.resize(width);\n disableExternalCheck = this.$element.data('disableExternalCheck') || false;\n if (!disableExternalCheck && !this.isExternal(url)) {\n this.lightbox_body.load(url, $.proxy((function(_this) {\n return function() {\n return _this.$element.trigger('loaded.bs.modal');\n };\n })(this)));\n } else {\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n }\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n isExternal: function(url) {\n var match;\n match = url.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\n if (typeof match[1] === \"string\" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) {\n return true;\n }\n if (typeof match[2] === \"string\" && match[2].length > 0 && match[2].replace(new RegExp(\":(\" + {\n \"http:\": 80,\n \"https:\": 443\n }[location.protocol] + \")?$\"), \"\") !== location.host) {\n return true;\n }\n return false;\n },\n error: function(message) {\n this.lightbox_body.html(message);\n return this;\n },\n preloadImage: function(src, onLoadShowImage) {\n var img;\n img = new Image();\n if ((onLoadShowImage == null) || onLoadShowImage === true) {\n img.onload = (function(_this) {\n return function() {\n var image;\n image = $('');\n image.attr('src', img.src);\n image.addClass('img-responsive');\n _this.lightbox_body.html(image);\n if (_this.modal_arrows) {\n _this.modal_arrows.css('display', 'block');\n }\n return image.load(function() {\n if (_this.options.scale_height) {\n _this.scaleHeight(img.height, img.width);\n } else {\n _this.resize(img.width);\n }\n return _this.options.onContentLoaded.call(_this);\n });\n };\n })(this);\n img.onerror = (function(_this) {\n return function() {\n return _this.error('Failed to load image: ' + src);\n };\n })(this);\n }\n img.src = src;\n return img;\n },\n scaleHeight: function(height, width) {\n var border_padding, factor, footer_height, header_height, margins, max_height;\n header_height = this.modal_header.outerHeight(true) || 0;\n footer_height = this.modal_footer.outerHeight(true) || 0;\n if (!this.modal_footer.is(':visible')) {\n footer_height = 0;\n }\n if (!this.modal_header.is(':visible')) {\n header_height = 0;\n }\n border_padding = this.border.top + this.border.bottom + this.padding.top + this.padding.bottom;\n margins = parseFloat(this.modal_dialog.css('margin-top')) + parseFloat(this.modal_dialog.css('margin-bottom'));\n max_height = $(window).height() - border_padding - margins - header_height - footer_height;\n factor = Math.min(max_height / height, 1);\n this.modal_dialog.css('height', 'auto').css('max-height', max_height);\n return this.resize(factor * width);\n },\n resize: function(width) {\n var width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n this.modal_dialog.css('width', 'auto').css('max-width', width_total);\n this.lightbox_container.find('a').css('line-height', function() {\n return $(this).parent().height() + 'px';\n });\n return this;\n },\n checkDimensions: function(width) {\n var body_width, width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n body_width = document.body.clientWidth;\n if (width_total > body_width) {\n width = this.modal_body.width();\n }\n return width;\n },\n close: function() {\n return this.modal.modal('hide');\n },\n addTrailingSlash: function(url) {\n if (url.substr(-1) !== '/') {\n url += '/';\n }\n return url;\n }\n };\n\n $.fn.ekkoLightbox = function(options) {\n return this.each(function() {\n var $this;\n $this = $(this);\n options = $.extend({\n remote: $this.attr('data-remote') || $this.attr('href'),\n gallery_parent_selector: $this.attr('data-parent'),\n type: $this.attr('data-type')\n }, options, $this.data());\n new EkkoLightbox(this, options);\n return this;\n });\n };\n\n $.fn.ekkoLightbox.defaults = {\n gallery_parent_selector: 'document.body',\n left_arrow_class: '.glyphicon .glyphicon-chevron-left',\n right_arrow_class: '.glyphicon .glyphicon-chevron-right',\n directional_arrows: true,\n type: null,\n always_show_close: true,\n no_related: false,\n scale_height: true,\n loadingMessage: 'Loading...',\n onShow: function() {},\n onShown: function() {},\n onHide: function() {},\n onHidden: function() {},\n onNavigate: function() {},\n onContentLoaded: function() {}\n };\n\n}).call(this);\n","/**\n * Module containing core application logic.\n * @param {jQuery} $ Insulated jQuery object\n * @param {JSON} settings Insulated `window.snipeit.settings` object.\n * @return {IIFE} Immediately invoked. Returns self.\n */\n\n\nvar pieOptions = {\n //Boolean - Whether we should show a stroke on each segment\n segmentShowStroke: true,\n //String - The colour of each segment stroke\n segmentStrokeColor: \"#fff\",\n //Number - The width of each segment stroke\n segmentStrokeWidth: 1,\n //Number - The percentage of the chart that we cut out of the middle\n percentageInnerCutout: 50, // This is 0 for Pie charts\n //Number - Amount of animation steps\n animationSteps: 100,\n //String - Animation easing effect\n animationEasing: \"easeOutBounce\",\n //Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n //Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false,\n //Boolean - whether to make the chart responsive to window resizing\n responsive: true,\n // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container\n maintainAspectRatio: false,\n\n //String - A legend template\n legendTemplate: \"
                                  -legend\\\"><% for (var i=0; i
                                • \" +\n \"\" +\n \"<%if(segments[i].label){%><%=segments[i].label%><%}%> foo
                                • <%}%>
                                \",\n //String - A tooltip template\n tooltipTemplate: \"<%=value %> <%=label%> \"\n};\n//console.dir(pieOptions);\n//Create pie or douhnut chart\n// You can switch between pie and douhnut using the method below.\n//pieChart.Doughnut(PieData, pieOptions);\n//-----------------\n//- END PIE CHART -\n//-----------------\n\n\n\n(function($, settings) {\n var Components = {};\n Components.modals = {};\n\n // confirm delete modal\n Components.modals.confirmDelete = function() {\n var $el = $('table');\n\n var events = {\n 'click': function(evnt) {\n var $context = $(this);\n var $dataConfirmModal = $('#dataConfirmModal');\n var href = $context.attr('href');\n var message = $context.attr('data-content');\n var title = $context.attr('data-title');\n\n $('#myModalLabel').text(title);\n $dataConfirmModal.find('.modal-body').text(message);\n $('#deleteForm').attr('action', href);\n $dataConfirmModal.modal({\n show: true\n });\n return false;\n }\n };\n\n var render = function() {\n $el.on('click', '.delete-asset', events['click']);\n };\n\n return {\n render: render\n };\n };\n\n\n /**\n * Application start point\n * Component definition stays out of load event, execution only happens.\n */\n $(function() {\n new Components.modals.confirmDelete().render();\n });\n}(jQuery, window.snipeit.settings));\n\n\n// Vue.component(\n// 'passport-clients',\n// require('./components/passport/Clients.vue')\n// );\n//\n// Vue.component(\n// 'passport-authorized-clients',\n// require('./components/passport/AuthorizedClients.vue')\n// );\n//\n// Vue.component(\n// 'passport-personal-access-tokens',\n// require('./components/passport/PersonalAccessTokens.vue')\n// );\n","/*! AdminLTE app.js\n * ================\n * Main JS application file for AdminLTE v2. This file\n * should be included in all pages. It controls some layout\n * options and implements exclusive AdminLTE plugins.\n *\n * @Author Almsaeed Studio\n * @Support \n * @Email \n * @version 2.3.0\n * @license MIT \n */\n\n//Make sure jQuery has been loaded before app.js\nif (typeof jQuery === \"undefined\") {\n throw new Error(\"AdminLTE requires jQuery\");\n}\n\n\n/* AdminLTE\n *\n * @type Object\n * @description $.AdminLTE is the main object for the template's app.\n * It's used for implementing functions and options related\n * to the template. Keeping everything wrapped in an object\n * prevents conflict with other plugins and is a better\n * way to organize our code.\n */\n$.AdminLTE = {};\n\n/* --------------------\n * - AdminLTE Options -\n * --------------------\n * Modify these options to suit your implementation\n */\n$.AdminLTE.options = {\n //Add slimscroll to navbar menus\n //This requires you to load the slimscroll plugin\n //in every page before app.js\n navbarMenuSlimscroll: true,\n navbarMenuSlimscrollWidth: \"3px\", //The width of the scroll bar\n navbarMenuHeight: \"200px\", //The height of the inner menu\n //General animation speed for JS animated elements such as box collapse/expand and\n //sidebar treeview slide up/down. This options accepts an integer as milliseconds,\n //'fast', 'normal', or 'slow'\n animationSpeed: 500,\n //Sidebar push menu toggle button selector\n sidebarToggleSelector: \"[data-toggle='offcanvas']\",\n //Activate sidebar push menu\n sidebarPushMenu: true,\n //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)\n sidebarSlimScroll: true,\n //Enable sidebar expand on hover effect for sidebar mini\n //This option is forced to true if both the fixed layout and sidebar mini\n //are used together\n sidebarExpandOnHover: false,\n //BoxRefresh Plugin\n enableBoxRefresh: true,\n //Bootstrap.js tooltip\n enableBSToppltip: true,\n BSTooltipSelector: \"[data-toggle='tooltip']\",\n //Enable Fast Click. Fastclick.js creates a more\n //native touch experience with touch devices. If you\n //choose to enable the plugin, make sure you load the script\n //before AdminLTE's app.js\n enableFastclick: true,\n //Control Sidebar Options\n enableControlSidebar: true,\n controlSidebarOptions: {\n //Which button should trigger the open/close event\n toggleBtnSelector: \"[data-toggle='control-sidebar']\",\n //The sidebar selector\n selector: \".control-sidebar\",\n //Enable slide over content\n slide: true\n },\n //Box Widget Plugin. Enable this plugin\n //to allow boxes to be collapsed and/or removed\n enableBoxWidget: true,\n //Box Widget plugin options\n boxWidgetOptions: {\n boxWidgetIcons: {\n //Collapse icon\n collapse: 'fa-minus',\n //Open icon\n open: 'fa-plus',\n //Remove icon\n remove: 'fa-times'\n },\n boxWidgetSelectors: {\n //Remove button selector\n remove: '[data-widget=\"remove\"]',\n //Collapse button selector\n collapse: '[data-widget=\"collapse\"]'\n }\n },\n //Direct Chat plugin options\n directChat: {\n //Enable direct chat by default\n enable: true,\n //The button to open and close the chat contacts pane\n contactToggleSelector: '[data-widget=\"chat-pane-toggle\"]'\n },\n //Define the set of colors to use globally around the website\n colors: {\n lightBlue: \"#3c8dbc\",\n red: \"#f56954\",\n green: \"#00a65a\",\n aqua: \"#00c0ef\",\n yellow: \"#f39c12\",\n blue: \"#0073b7\",\n navy: \"#001F3F\",\n teal: \"#39CCCC\",\n olive: \"#3D9970\",\n lime: \"#01FF70\",\n orange: \"#FF851B\",\n fuchsia: \"#F012BE\",\n purple: \"#8E24AA\",\n maroon: \"#D81B60\",\n black: \"#222222\",\n gray: \"#d2d6de\"\n },\n //The standard screen sizes that bootstrap uses.\n //If you change these in the variables.less file, change\n //them here too.\n screenSizes: {\n xs: 480,\n sm: 768,\n md: 992,\n lg: 1200\n }\n};\n\n/* ------------------\n * - Implementation -\n * ------------------\n * The next block of code implements AdminLTE's\n * functions and plugins as specified by the\n * options above.\n */\n$(function () {\n \"use strict\";\n\n //Fix for IE page transitions\n $(\"body\").removeClass(\"hold-transition\");\n\n //Extend options if external options exist\n if (typeof AdminLTEOptions !== \"undefined\") {\n $.extend(true,\n $.AdminLTE.options,\n AdminLTEOptions);\n }\n\n //Easy access to options\n var o = $.AdminLTE.options;\n\n //Set up the object\n _init();\n\n //Activate the layout maker\n $.AdminLTE.layout.activate();\n\n //Enable sidebar tree view controls\n $.AdminLTE.tree('.sidebar');\n\n //Enable control sidebar\n if (o.enableControlSidebar) {\n $.AdminLTE.controlSidebar.activate();\n }\n\n //Add slimscroll to navbar dropdown\n if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {\n $(\".navbar .menu\").slimscroll({\n height: o.navbarMenuHeight,\n alwaysVisible: false,\n size: o.navbarMenuSlimscrollWidth\n }).css(\"width\", \"100%\");\n }\n\n //Activate sidebar push menu\n if (o.sidebarPushMenu) {\n $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);\n }\n\n //Activate Bootstrap tooltip\n if (o.enableBSToppltip) {\n $('body').tooltip({\n selector: o.BSTooltipSelector\n });\n }\n\n //Activate box widget\n if (o.enableBoxWidget) {\n $.AdminLTE.boxWidget.activate();\n }\n\n //Activate fast click\n if (o.enableFastclick && typeof FastClick != 'undefined') {\n FastClick.attach(document.body);\n }\n\n //Activate direct chat widget\n if (o.directChat.enable) {\n $(document).on('click', o.directChat.contactToggleSelector, function () {\n var box = $(this).parents('.direct-chat').first();\n box.toggleClass('direct-chat-contacts-open');\n });\n }\n\n /*\n * INITIALIZE BUTTON TOGGLE\n * ------------------------\n */\n $('.btn-group[data-toggle=\"btn-toggle\"]').each(function () {\n var group = $(this);\n $(this).find(\".btn\").on('click', function (e) {\n group.find(\".btn.active\").removeClass(\"active\");\n $(this).addClass(\"active\");\n e.preventDefault();\n });\n\n });\n});\n\n/* ----------------------------------\n * - Initialize the AdminLTE Object -\n * ----------------------------------\n * All AdminLTE functions are implemented below.\n */\nfunction _init() {\n 'use strict';\n /* Layout\n * ======\n * Fixes the layout height in case min-height fails.\n *\n * @type Object\n * @usage $.AdminLTE.layout.activate()\n * $.AdminLTE.layout.fix()\n * $.AdminLTE.layout.fixSidebar()\n */\n $.AdminLTE.layout = {\n activate: function () {\n var _this = this;\n _this.fix();\n _this.fixSidebar();\n $(window, \".wrapper\").resize(function () {\n _this.fix();\n _this.fixSidebar();\n });\n },\n fix: function () {\n //Get window height and the wrapper height\n var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight();\n var window_height = $(window).height();\n var sidebar_height = $(\".sidebar\").height();\n //Set the min-height of the content and sidebar based on the\n //the height of the document.\n if ($(\"body\").hasClass(\"fixed\")) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - $('.main-footer').outerHeight());\n } else {\n var postSetWidth;\n if (window_height >= sidebar_height) {\n $(\".content-wrapper, .right-side\").css('min-height', window_height - neg);\n postSetWidth = window_height - neg;\n } else {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar_height);\n postSetWidth = sidebar_height;\n }\n\n //Fix for the control sidebar height\n var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);\n if (typeof controlSidebar !== \"undefined\") {\n if (controlSidebar.height() > postSetWidth)\n $(\".content-wrapper, .right-side\").css('min-height', controlSidebar.height());\n }\n\n }\n },\n fixSidebar: function () {\n //Make sure the body tag has the .fixed class\n if (!$(\"body\").hasClass(\"fixed\")) {\n if (typeof $.fn.slimScroll != 'undefined') {\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n }\n return;\n } else if (typeof $.fn.slimScroll == 'undefined' && window.console) {\n window.console.error(\"Error: the fixed layout requires the slimscroll plugin!\");\n }\n //Enable slimscroll for fixed layout\n if ($.AdminLTE.options.sidebarSlimScroll) {\n if (typeof $.fn.slimScroll != 'undefined') {\n //Destroy if it exists\n $(\".sidebar\").slimScroll({destroy: true}).height(\"auto\");\n //Add slimscroll\n $(\".sidebar\").slimscroll({\n height: ($(window).height() - $(\".main-header\").height()) + \"px\",\n color: \"rgba(0,0,0,0.2)\",\n size: \"3px\"\n });\n }\n }\n }\n };\n\n /* PushMenu()\n * ==========\n * Adds the push menu functionality to the sidebar.\n *\n * @type Function\n * @usage: $.AdminLTE.pushMenu(\"[data-toggle='offcanvas']\")\n */\n $.AdminLTE.pushMenu = {\n activate: function (toggleBtn) {\n //Get the screen sizes\n var screenSizes = $.AdminLTE.options.screenSizes;\n\n //Enable sidebar toggle\n $(toggleBtn).on('click', function (e) {\n e.preventDefault();\n\n //Enable sidebar push menu\n if ($(window).width() > (screenSizes.sm - 1)) {\n if ($(\"body\").hasClass('sidebar-collapse')) {\n $(\"body\").removeClass('sidebar-collapse').trigger('expanded.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-collapse').trigger('collapsed.pushMenu');\n }\n }\n //Handle sidebar push menu for small screens\n else {\n if ($(\"body\").hasClass('sidebar-open')) {\n $(\"body\").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');\n } else {\n $(\"body\").addClass('sidebar-open').trigger('expanded.pushMenu');\n }\n }\n });\n\n $(\".content-wrapper\").click(function () {\n //Enable hide menu when clicking on the content-wrapper on small screens\n if ($(window).width() <= (screenSizes.sm - 1) && $(\"body\").hasClass(\"sidebar-open\")) {\n $(\"body\").removeClass('sidebar-open');\n }\n });\n\n //Enable expand on hover for sidebar mini\n if ($.AdminLTE.options.sidebarExpandOnHover\n || ($('body').hasClass('fixed')\n && $('body').hasClass('sidebar-mini'))) {\n this.expandOnHover();\n }\n },\n expandOnHover: function () {\n var _this = this;\n var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;\n //Expand sidebar on hover\n $('.main-sidebar').hover(function () {\n if ($('body').hasClass('sidebar-mini')\n && $(\"body\").hasClass('sidebar-collapse')\n && $(window).width() > screenWidth) {\n _this.expand();\n }\n }, function () {\n if ($('body').hasClass('sidebar-mini')\n && $('body').hasClass('sidebar-expanded-on-hover')\n && $(window).width() > screenWidth) {\n _this.collapse();\n }\n });\n },\n expand: function () {\n $(\"body\").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');\n },\n collapse: function () {\n if ($('body').hasClass('sidebar-expanded-on-hover')) {\n $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');\n }\n }\n };\n\n /* Tree()\n * ======\n * Converts the sidebar into a multilevel\n * tree view menu.\n *\n * @type Function\n * @Usage: $.AdminLTE.tree('.sidebar')\n */\n $.AdminLTE.tree = function (menu) {\n var _this = this;\n var animationSpeed = $.AdminLTE.options.animationSpeed;\n $(document).on('click', menu + ' li a', function (e) {\n //Get the clicked link and the next element\n var $this = $(this);\n var checkElement = $this.next();\n\n //Check if the next element is a menu and is visible\n if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible'))) {\n //Close the menu\n checkElement.slideUp(animationSpeed, function () {\n checkElement.removeClass('menu-open');\n //Fix the layout in case the sidebar stretches over the height of the window\n //_this.layout.fix();\n });\n checkElement.parent(\"li\").removeClass(\"active\");\n }\n //If the menu is not visible\n else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {\n //Get the parent menu\n var parent = $this.parents('ul').first();\n //Close all open menus within the parent\n var ul = parent.find('ul:visible').slideUp(animationSpeed);\n //Remove the menu-open class from the parent\n ul.removeClass('menu-open');\n //Get the parent li\n var parent_li = $this.parent(\"li\");\n\n //Open the target menu and add the menu-open class\n checkElement.slideDown(animationSpeed, function () {\n //Add the class active to the parent li\n checkElement.addClass('menu-open');\n parent.find('li.active').removeClass('active');\n parent_li.addClass('active');\n //Fix the layout in case the sidebar stretches over the height of the window\n _this.layout.fix();\n });\n }\n //if this isn't a link, prevent the page from being redirected\n if (checkElement.is('.treeview-menu')) {\n e.preventDefault();\n }\n });\n };\n\n /* ControlSidebar\n * ==============\n * Adds functionality to the right sidebar\n *\n * @type Object\n * @usage $.AdminLTE.controlSidebar.activate(options)\n */\n $.AdminLTE.controlSidebar = {\n //instantiate the object\n activate: function () {\n //Get the object\n var _this = this;\n //Update options\n var o = $.AdminLTE.options.controlSidebarOptions;\n //Get the sidebar\n var sidebar = $(o.selector);\n //The toggle button\n var btn = $(o.toggleBtnSelector);\n\n //Listen to the click event\n btn.on('click', function (e) {\n e.preventDefault();\n //If the sidebar is not open\n if (!sidebar.hasClass('control-sidebar-open')\n && !$('body').hasClass('control-sidebar-open')) {\n //Open the sidebar\n _this.open(sidebar, o.slide);\n } else {\n _this.close(sidebar, o.slide);\n }\n });\n\n //If the body has a boxed layout, fix the sidebar bg position\n var bg = $(\".control-sidebar-bg\");\n _this._fix(bg);\n\n //If the body has a fixed layout, make the control sidebar fixed\n if ($('body').hasClass('fixed')) {\n _this._fixForFixed(sidebar);\n } else {\n //If the content height is less than the sidebar's height, force max height\n if ($('.content-wrapper, .right-side').height() < sidebar.height()) {\n _this._fixForContent(sidebar);\n }\n }\n },\n //Open the control sidebar\n open: function (sidebar, slide) {\n //Slide over content\n if (slide) {\n sidebar.addClass('control-sidebar-open');\n } else {\n //Push the content by adding the open class to the body instead\n //of the sidebar itself\n $('body').addClass('control-sidebar-open');\n }\n },\n //Close the control sidebar\n close: function (sidebar, slide) {\n if (slide) {\n sidebar.removeClass('control-sidebar-open');\n } else {\n $('body').removeClass('control-sidebar-open');\n }\n },\n _fix: function (sidebar) {\n var _this = this;\n if ($(\"body\").hasClass('layout-boxed')) {\n sidebar.css('position', 'absolute');\n sidebar.height($(\".wrapper\").height());\n $(window).resize(function () {\n _this._fix(sidebar);\n });\n } else {\n sidebar.css({\n 'position': 'fixed',\n 'height': 'auto'\n });\n }\n },\n _fixForFixed: function (sidebar) {\n sidebar.css({\n 'position': 'fixed',\n 'max-height': '100%',\n 'overflow': 'auto',\n 'padding-bottom': '50px'\n });\n },\n _fixForContent: function (sidebar) {\n $(\".content-wrapper, .right-side\").css('min-height', sidebar.height());\n }\n };\n\n /* BoxWidget\n * =========\n * BoxWidget is a plugin to handle collapsing and\n * removing boxes from the screen.\n *\n * @type Object\n * @usage $.AdminLTE.boxWidget.activate()\n * Set all your options in the main $.AdminLTE.options object\n */\n $.AdminLTE.boxWidget = {\n selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,\n icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,\n animationSpeed: $.AdminLTE.options.animationSpeed,\n activate: function (_box) {\n var _this = this;\n if (!_box) {\n _box = document; // activate all boxes per default\n }\n //Listen for collapse event triggers\n $(_box).on('click', _this.selectors.collapse, function (e) {\n e.preventDefault();\n _this.collapse($(this));\n });\n\n //Listen for remove event triggers\n $(_box).on('click', _this.selectors.remove, function (e) {\n e.preventDefault();\n _this.remove($(this));\n });\n },\n collapse: function (element) {\n var _this = this;\n //Find the box parent\n var box = element.parents(\".box\").first();\n //Find the body and the footer\n var box_content = box.find(\"> .box-body, > .box-footer, > form >.box-body, > form > .box-footer\");\n if (!box.hasClass(\"collapsed-box\")) {\n //Convert minus into plus\n element.children(\":first\")\n .removeClass(_this.icons.collapse)\n .addClass(_this.icons.open);\n //Hide the content\n box_content.slideUp(_this.animationSpeed, function () {\n box.addClass(\"collapsed-box\");\n });\n } else {\n //Convert plus into minus\n element.children(\":first\")\n .removeClass(_this.icons.open)\n .addClass(_this.icons.collapse);\n //Show the content\n box_content.slideDown(_this.animationSpeed, function () {\n box.removeClass(\"collapsed-box\");\n });\n }\n },\n remove: function (element) {\n //Find the box parent\n var box = element.parents(\".box\").first();\n box.slideUp(this.animationSpeed);\n }\n };\n}\n\n/* ------------------\n * - Custom Plugins -\n * ------------------\n * All custom plugins are defined below.\n */\n\n/*\n * BOX REFRESH BUTTON\n * ------------------\n * This is a custom plugin to use with the component BOX. It allows you to add\n * a refresh button to the box. It converts the box's state to a loading state.\n *\n * @type plugin\n * @usage $(\"#box-widget\").boxRefresh( options );\n */\n(function ($) {\n\n \"use strict\";\n\n $.fn.boxRefresh = function (options) {\n\n // Render options\n var settings = $.extend({\n //Refresh button selector\n trigger: \".refresh-btn\",\n //File source to be loaded (e.g: ajax/src.php)\n source: \"\",\n //Callbacks\n onLoadStart: function (box) {\n return box;\n }, //Right after the button has been clicked\n onLoadDone: function (box) {\n return box;\n } //When the source has been loaded\n\n }, options);\n\n //The overlay\n var overlay = $('
                                ');\n\n return this.each(function () {\n //if a source is specified\n if (settings.source === \"\") {\n if (window.console) {\n window.console.log(\"Please specify a source first - boxRefresh()\");\n }\n return;\n }\n //the box\n var box = $(this);\n //the button\n var rBtn = box.find(settings.trigger).first();\n\n //On trigger click\n rBtn.on('click', function (e) {\n e.preventDefault();\n //Add loading overlay\n start(box);\n\n //Perform ajax call\n box.find(\".box-body\").load(settings.source, function () {\n done(box);\n });\n });\n });\n\n function start(box) {\n //Add overlay and loading img\n box.append(overlay);\n\n settings.onLoadStart.call(box);\n }\n\n function done(box) {\n //Remove overlay and loading img\n box.find(overlay).remove();\n\n settings.onLoadDone.call(box);\n }\n\n };\n\n})(jQuery);\n\n/*\n * EXPLICIT BOX ACTIVATION\n * -----------------------\n * This is a custom plugin to use with the component BOX. It allows you to activate\n * a box inserted in the DOM after the app.js was loaded.\n *\n * @type plugin\n * @usage $(\"#box-widget\").activateBox();\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.activateBox = function () {\n $.AdminLTE.boxWidget.activate(this);\n };\n\n})(jQuery);\n\n/*\n * TODO LIST CUSTOM PLUGIN\n * -----------------------\n * This plugin depends on iCheck plugin for checkbox and radio inputs\n *\n * @type plugin\n * @usage $(\"#todo-widget\").todolist( options );\n */\n(function ($) {\n\n 'use strict';\n\n $.fn.todolist = function (options) {\n // Render options\n var settings = $.extend({\n //When the user checks the input\n onCheck: function (ele) {\n return ele;\n },\n //When the user unchecks the input\n onUncheck: function (ele) {\n return ele;\n }\n }, options);\n\n return this.each(function () {\n\n if (typeof $.fn.iCheck != 'undefined') {\n $('input', this).on('ifChecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onCheck.call(ele);\n });\n\n $('input', this).on('ifUnchecked', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n settings.onUncheck.call(ele);\n });\n } else {\n $('input', this).on('change', function () {\n var ele = $(this).parents(\"li\").first();\n ele.toggleClass(\"done\");\n if ($('input', ele).is(\":checked\")) {\n settings.onCheck.call(ele);\n } else {\n settings.onUncheck.call(ele);\n }\n });\n }\n });\n };\n}(jQuery));\n\n//-------------\n//- PIE CHART -\n//-------------\n// Get context with jQuery - using jQuery's .get() method.\n"]} \ No newline at end of file +{"version":3,"sources":["jQuery-2.1.4.min.js","jquery-ui.js","jquery.ui.widget.js","jquery.iframe-transport.js","jquery.fileupload.js","bootstrap-js.js","fastclick.js","jquery.slimscroll.js","select2.full.min.js","bootstrap-colorpicker.js","bootstrap-table.js","bootstrap-datepicker.js","select2.js","icheck.js","ekko-lightbox.js","snipeit.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxugBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3zEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACz0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1eA;AACA;AACA;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACr7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACloFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvoDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3xKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"all.js","sourcesContent":["/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */\n!function(a,b){\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error(\"jQuery requires a window with a document\");return b(a)}:b(a)}(\"undefined\"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m=\"2.1.4\",n=function(a,b){return new n.fn.init(a,b)},o=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,p=/^-ms-/,q=/-([\\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:\"\",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for(\"boolean\"==typeof g&&(j=g,g=arguments[h]||{},h++),\"object\"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:\"jQuery\"+(m+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return\"function\"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return\"object\"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,\"isPrototypeOf\")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+\"\":\"object\"==typeof a||\"function\"==typeof a?h[i.call(a)]||\"object\":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf(\"use strict\")?(b=l.createElement(\"script\"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,\"ms-\").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?\"\":(a+\"\").replace(o,\"\")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,\"string\"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return\"string\"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(a,b){h[\"[object \"+b+\"]\"]=b.toLowerCase()});function s(a){var b=\"length\"in a&&a.length,c=n.type(a);return\"function\"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:\"array\"===c||0===b||\"number\"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=\"sizzle\"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",L=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",M=\"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",N=M.replace(\"w\",\"w#\"),O=\"\\\\[\"+L+\"*(\"+M+\")(?:\"+L+\"*([*^$|!~]?=)\"+L+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+N+\"))|)\"+L+\"*\\\\]\",P=\":(\"+M+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+O+\")*)|.*)\\\\)|)\",Q=new RegExp(L+\"+\",\"g\"),R=new RegExp(\"^\"+L+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+L+\"+$\",\"g\"),S=new RegExp(\"^\"+L+\"*,\"+L+\"*\"),T=new RegExp(\"^\"+L+\"*([>+~]|\"+L+\")\"+L+\"*\"),U=new RegExp(\"=\"+L+\"*([^\\\\]'\\\"]*?)\"+L+\"*\\\\]\",\"g\"),V=new RegExp(P),W=new RegExp(\"^\"+N+\"$\"),X={ID:new RegExp(\"^#(\"+M+\")\"),CLASS:new RegExp(\"^\\\\.(\"+M+\")\"),TAG:new RegExp(\"^(\"+M.replace(\"w\",\"w*\")+\")\"),ATTR:new RegExp(\"^\"+O),PSEUDO:new RegExp(\"^\"+P),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+L+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+L+\"*(?:([+-]|)\"+L+\"*(\\\\d+)|))\"+L+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+K+\")$\",\"i\"),needsContext:new RegExp(\"^\"+L+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+L+\"*((?:-\\\\d)?\\\\d*)\"+L+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\\d$/i,$=/^[^{]+\\{\\s*\\[native \\w/,_=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,aa=/[+~]/,ba=/'|\\\\/g,ca=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+L+\"?|(\"+L+\")|.)\",\"ig\"),da=function(a,b,c){var d=\"0x\"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,\"string\"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&\"object\"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(\"id\"))?s=r.replace(ba,\"\\\\$&\"):b.setAttribute(\"id\",s),s=\"[id='\"+s+\"'] \",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(\",\")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(\"id\")}}}return i(a.replace(R,\"$1\"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+\" \")>d.cacheLength&&delete b[a.shift()],b[c+\" \"]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement(\"div\");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split(\"|\"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return\"input\"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return(\"input\"===c||\"button\"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&\"undefined\"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?\"HTML\"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener(\"unload\",ea,!1):e.attachEvent&&e.attachEvent(\"onunload\",ea)),p=!f(g),c.attributes=ja(function(a){return a.className=\"i\",!a.getAttribute(\"className\")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment(\"\")),!a.getElementsByTagName(\"*\").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(\"undefined\"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute(\"id\")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c=\"undefined\"!=typeof a.getAttributeNode&&a.getAttributeNode(\"id\");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return\"undefined\"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if(\"*\"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=\"\",a.querySelectorAll(\"[msallowcapture^='']\").length&&q.push(\"[*^$]=\"+L+\"*(?:''|\\\"\\\")\"),a.querySelectorAll(\"[selected]\").length||q.push(\"\\\\[\"+L+\"*(?:value|\"+K+\")\"),a.querySelectorAll(\"[id~=\"+u+\"-]\").length||q.push(\"~=\"),a.querySelectorAll(\":checked\").length||q.push(\":checked\"),a.querySelectorAll(\"a#\"+u+\"+*\").length||q.push(\".#.+[+~]\")}),ja(function(a){var b=g.createElement(\"input\");b.setAttribute(\"type\",\"hidden\"),a.appendChild(b).setAttribute(\"name\",\"D\"),a.querySelectorAll(\"[name=d]\").length&&q.push(\"name\"+L+\"*[*^$|!~]?=\"),a.querySelectorAll(\":enabled\").length||q.push(\":enabled\",\":disabled\"),a.querySelectorAll(\"*,:x\"),q.push(\",.*:\")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,\"div\"),s.call(a,\"[s!='']:x\"),r.push(\"!=\",P)}),q=q.length&&new RegExp(q.join(\"|\")),r=r.length&&new RegExp(r.join(\"|\")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,\"='$1']\"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error(\"Syntax error, unrecognized expression: \"+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c=\"\",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if(\"string\"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||\"\").replace(ca,da),\"~=\"===a[2]&&(a[3]=\" \"+a[3]+\" \"),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),\"nth\"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*(\"even\"===a[3]||\"odd\"===a[3])),a[5]=+(a[7]+a[8]||\"odd\"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||\"\":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(\")\",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return\"*\"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+\" \"];return b||(b=new RegExp(\"(^|\"+L+\")\"+a+\"(\"+L+\"|$)\"))&&y(a,function(a){return b.test(\"string\"==typeof a.className&&a.className||\"undefined\"!=typeof a.getAttribute&&a.getAttribute(\"class\")||\"\")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?\"!=\"===b:b?(e+=\"\",\"=\"===b?e===c:\"!=\"===b?e!==c:\"^=\"===b?c&&0===e.indexOf(c):\"*=\"===b?c&&e.indexOf(c)>-1:\"$=\"===b?c&&e.slice(-c.length)===c:\"~=\"===b?(\" \"+e.replace(Q,\" \")+\" \").indexOf(c)>-1:\"|=\"===b?e===c||e.slice(0,c.length+1)===c+\"-\":!1):!0}},CHILD:function(a,b,c,d,e){var f=\"nth\"!==a.slice(0,3),g=\"last\"!==a.slice(-4),h=\"of-type\"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?\"nextSibling\":\"previousSibling\",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p=\"only\"===a&&!o&&\"nextSibling\"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error(\"unsupported pseudo: \"+a);return e[u]?e(b):e.length>1?(c=[a,a,\"\",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,\"$1\"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||\"\")||ga.error(\"unsupported lang: \"+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute(\"xml:lang\")||b.getAttribute(\"lang\"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+\"-\");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&!!a.checked||\"option\"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return\"input\"===b&&\"button\"===a.type||\"button\"===b},text:function(a){var b;return\"input\"===a.nodeName.toLowerCase()&&\"text\"===a.type&&(null==(b=a.getAttribute(\"type\"))||\"text\"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&\"parentNode\"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||\"*\",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[\" \"],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:\" \"===a[i-2].type?\"*\":\"\"})).replace(R,\"$1\"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q=\"0\",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(\"*\",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+\" \"];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n=\"function\"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&\"ID\"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split(\"\").sort(B).join(\"\")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement(\"div\"))}),ja(function(a){return a.innerHTML=\"\",\"#\"===a.firstChild.getAttribute(\"href\")})||ka(\"type|href|height|width\",function(a,b,c){return c?void 0:a.getAttribute(b,\"type\"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=\"\",a.firstChild.setAttribute(\"value\",\"\"),\"\"===a.firstChild.getAttribute(\"value\")})||ka(\"value\",function(a,b,c){return c||\"input\"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute(\"disabled\")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[\":\"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,w=/^.[^:#\\[\\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if(\"string\"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=\":not(\"+a+\")\"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if(\"string\"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+\" \"+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,\"string\"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if(\"string\"==typeof a){if(c=\"<\"===a[0]&&\">\"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?\"undefined\"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||\"string\"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?\"string\"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,\"parentNode\")},parentsUntil:function(a,b,c){return n.dir(a,\"parentNode\",c)},next:function(a){return D(a,\"nextSibling\")},prev:function(a){return D(a,\"previousSibling\")},nextAll:function(a){return n.dir(a,\"nextSibling\")},prevAll:function(a){return n.dir(a,\"previousSibling\")},nextUntil:function(a,b,c){return n.dir(a,\"nextSibling\",c)},prevUntil:function(a,b,c){return n.dir(a,\"previousSibling\",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return\"Until\"!==a.slice(-5)&&(d=c),d&&\"string\"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a=\"string\"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);\"function\"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&\"string\"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[[\"resolve\",\"done\",n.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",n.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",n.Callbacks(\"memory\")]],c=\"pending\",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+\"With\"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+\"With\"](this===e?d:this,arguments),this},e[f[0]+\"With\"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(\"ready\"),n(l).off(\"ready\"))))}});function I(){l.removeEventListener(\"DOMContentLoaded\",I,!1),a.removeEventListener(\"load\",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),\"complete\"===l.readyState?setTimeout(n.ready):(l.addEventListener(\"DOMContentLoaded\",I,!1),a.addEventListener(\"load\",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if(\"object\"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if(\"string\"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&\"string\"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d=\"data-\"+b.replace(O,\"-$1\").toLowerCase(),c=a.getAttribute(d),\"string\"==typeof c){try{c=\"true\"===c?!0:\"false\"===c?!1:\"null\"===c?null:+c+\"\"===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){\nreturn M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,\"hasDataAttrs\"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf(\"data-\")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,\"hasDataAttrs\",!0)}return e}return\"object\"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf(\"-\")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||\"fx\")+\"queue\",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||\"fx\";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};\"inprogress\"===e&&(e=c.shift(),d--),e&&(\"fx\"===b&&c.unshift(\"inprogress\"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+\"queueHooks\";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(\"once memory\").add(function(){L.remove(a,[b+\"queue\",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return\"string\"!=typeof a&&(b=a,a=\"fx\",c--),arguments.lengthx\",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U=\"undefined\";k.focusinBubbles=\"onfocusin\"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(\".\")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||\"\").match(E)||[\"\"],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||\"\").split(\".\").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp(\"(^|\\\\.)\"+p.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(\"**\"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,\"events\"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,\"type\")?b.type:b,r=j.call(b,\"namespace\")?b.namespace.split(\".\"):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(\".\")>=0&&(r=q.split(\".\"),q=r.shift(),r.sort()),k=q.indexOf(\":\")<0&&\"on\"+q,b=b[n.expando]?b:new n.Event(q,\"object\"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join(\".\"),b.namespace_re=b.namespace?new RegExp(\"(^|\\\\.)\"+r.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,\"events\")||{})[b.type]&&L.get(g,\"handle\"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,\"events\")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||\"click\"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||\"click\"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+\" \",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\\/>/gi,ba=/<([\\w:]+)/,ca=/<|&#?\\w+;/,da=/<(?:script|style|link)/i,ea=/checked\\s*(?:[^=]|=\\s*.checked.)/i,fa=/^$|\\/(?:java|ecma)script/i,ga=/^true\\/(.*)/,ha=/^\\s*\\s*$/g,ia={option:[1,\"\"],thead:[1,\"\",\"
                                \"],col:[2,\"\",\"
                                \"],tr:[2,\"\",\"
                                \"],td:[3,\"\",\"
                                \"],_default:[0,\"\",\"\"]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,\"table\")&&n.nodeName(11!==b.nodeType?b:b.firstChild,\"tr\")?a.getElementsByTagName(\"tbody\")[0]||a.appendChild(a.ownerDocument.createElement(\"tbody\")):a}function ka(a){return a.type=(null!==a.getAttribute(\"type\"))+\"/\"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute(\"type\"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],\"globalEval\",!b||L.get(b[c],\"globalEval\"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||\"*\"):a.querySelectorAll?a.querySelectorAll(b||\"*\"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();\"input\"===c&&T.test(a.type)?b.checked=a.checked:(\"input\"===c||\"textarea\"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,\"script\"),g.length>0&&ma(g,!i&&oa(a,\"script\")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if(\"object\"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement(\"div\")),g=(ba.exec(e)||[\"\",\"\"])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,\"<$1>\")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=\"\"}else l.push(b.createTextNode(e));k.textContent=\"\",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),\"script\"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||\"\")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,\"script\")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent=\"\");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if(\"string\"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||[\"\",\"\"])[1].toLowerCase()]){a=a.replace(aa,\"<$1>\");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&\"string\"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,\"script\"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,\"script\"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||\"\")&&!L.access(h,\"globalEval\")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,\"\")))}return this}}),n.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],\"display\");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),\"none\"!==c&&c||(qa=(qa||n(\"'\n ).bind('load', function () {\n var fileInputClones,\n paramNames = $.isArray(options.paramName) ?\n options.paramName : [options.paramName];\n iframe\n .unbind('load')\n .bind('load', function () {\n var response;\n // Wrap in a try/catch block to catch exceptions thrown\n // when trying to access cross-domain iframe contents:\n try {\n response = iframe.contents();\n // Google Chrome and Firefox do not throw an\n // exception when calling iframe.contents() on\n // cross-domain requests, so we unify the response:\n if (!response.length || !response[0].firstChild) {\n throw new Error();\n }\n } catch (e) {\n response = undefined;\n }\n // The complete callback returns the\n // iframe content document as response object:\n completeCallback(\n 200,\n 'success',\n {'iframe': response}\n );\n // Fix for IE endless progress bar activity bug\n // (happens on form submits to iframe targets):\n $('')\n .appendTo(form);\n window.setTimeout(function () {\n // Removing the form in a setTimeout call\n // allows Chrome's developer tools to display\n // the response result\n form.remove();\n }, 0);\n });\n form\n .prop('target', iframe.prop('name'))\n .prop('action', options.url)\n .prop('method', options.type);\n if (options.formData) {\n $.each(options.formData, function (index, field) {\n $('')\n .prop('name', field.name)\n .val(field.value)\n .appendTo(form);\n });\n }\n if (options.fileInput && options.fileInput.length &&\n options.type === 'POST') {\n fileInputClones = options.fileInput.clone();\n // Insert a clone for each file input field:\n options.fileInput.after(function (index) {\n return fileInputClones[index];\n });\n if (options.paramName) {\n options.fileInput.each(function (index) {\n $(this).prop(\n 'name',\n paramNames[index] || options.paramName\n );\n });\n }\n // Appending the file input fields to the hidden form\n // removes them from their original location:\n form\n .append(options.fileInput)\n .prop('enctype', 'multipart/form-data')\n // enctype must be set as encoding for IE:\n .prop('encoding', 'multipart/form-data');\n // Remove the HTML5 form attribute from the input(s):\n options.fileInput.removeAttr('form');\n }\n form.submit();\n // Insert the file input fields at their original location\n // by replacing the clones with the originals:\n if (fileInputClones && fileInputClones.length) {\n options.fileInput.each(function (index, input) {\n var clone = $(fileInputClones[index]);\n // Restore the original name and form properties:\n $(input)\n .prop('name', clone.prop('name'))\n .attr('form', clone.attr('form'));\n clone.replaceWith(input);\n });\n }\n });\n form.append(iframe).appendTo(document.body);\n },\n abort: function () {\n if (iframe) {\n // javascript:false as iframe src aborts the request\n // and prevents warning popups on HTTPS in IE6.\n // concat is used to avoid the \"Script URL\" JSLint error:\n iframe\n .unbind('load')\n .prop('src', initialIframeSrc);\n }\n if (form) {\n form.remove();\n }\n }\n };\n }\n });\n\n // The iframe transport returns the iframe content document as response.\n // The following adds converters from iframe to text, json, html, xml\n // and script.\n // Please note that the Content-Type for JSON responses has to be text/plain\n // or text/html, if the browser doesn't include application/json in the\n // Accept header, else IE will show a download dialog.\n // The Content-Type for XML responses on the other hand has to be always\n // application/xml or text/xml, so IE properly parses the XML response.\n // See also\n // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\n $.ajaxSetup({\n converters: {\n 'iframe text': function (iframe) {\n return iframe && $(iframe[0].body).text();\n },\n 'iframe json': function (iframe) {\n return iframe && $.parseJSON($(iframe[0].body).text());\n },\n 'iframe html': function (iframe) {\n return iframe && $(iframe[0].body).html();\n },\n 'iframe xml': function (iframe) {\n var xmlDoc = iframe && iframe[0];\n return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\n $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\n $(xmlDoc.body).html());\n },\n 'iframe script': function (iframe) {\n return iframe && $.globalEval($(iframe[0].body).text());\n }\n }\n });\n\n}));\n","/*\n * jQuery File Upload Plugin 5.42.3\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2010, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* jshint nomen:false */\n/* global define, require, window, document, location, Blob, FormData */\n\n(function (factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define([\n 'jquery',\n 'jquery.ui.widget'\n ], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS:\n factory(\n require('jquery'),\n require('./vendor/jquery.ui.widget')\n );\n } else {\n // Browser globals:\n factory(window.jQuery);\n }\n}(function ($) {\n 'use strict';\n\n // Detect file input support, based on\n // http://viljamis.com/blog/2012/file-upload-support-on-mobile/\n $.support.fileInput = !(new RegExp(\n // Handle devices which give false positives for the feature detection:\n '(Android (1\\\\.[0156]|2\\\\.[01]))' +\n '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\n '|(w(eb)?OSBrowser)|(webOS)' +\n '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))'\n ).test(window.navigator.userAgent) ||\n // Feature detection for all other devices:\n $('').prop('disabled'));\n\n // The FileReader API is not actually used, but works as feature detection,\n // as some Safari versions (5?) support XHR file uploads via the FormData API,\n // but not non-multipart XHR file uploads.\n // window.XMLHttpRequestUpload is not available on IE10, so we check for\n // window.ProgressEvent instead to detect XHR2 file upload capability:\n $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\n $.support.xhrFormDataFileUpload = !!window.FormData;\n\n // Detect support for Blob slicing (required for chunked uploads):\n $.support.blobSlice = window.Blob && (Blob.prototype.slice ||\n Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n\n // Helper function to create drag handlers for dragover/dragenter/dragleave:\n function getDragHandler(type) {\n var isDragOver = type === 'dragover';\n return function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var dataTransfer = e.dataTransfer;\n if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&\n this._trigger(\n type,\n $.Event(type, {delegatedEvent: e})\n ) !== false) {\n e.preventDefault();\n if (isDragOver) {\n dataTransfer.dropEffect = 'copy';\n }\n }\n };\n }\n\n // The fileupload widget listens for change events on file input fields defined\n // via fileInput setting and paste or drop events of the given dropZone.\n // In addition to the default jQuery Widget methods, the fileupload widget\n // exposes the \"add\" and \"send\" methods, to add or directly send files using\n // the fileupload API.\n // By default, files added via file input selection, paste, drag & drop or\n // \"add\" method are uploaded immediately, but it is possible to override\n // the \"add\" callback option to queue file uploads.\n $.widget('blueimp.fileupload', {\n\n options: {\n // The drop target element(s), by the default the complete document.\n // Set to null to disable drag & drop support:\n dropZone: $(document),\n // The paste target element(s), by the default undefined.\n // Set to a DOM node or jQuery object to enable file pasting:\n pasteZone: undefined,\n // The file input field(s), that are listened to for change events.\n // If undefined, it is set to the file input fields inside\n // of the widget element on plugin initialization.\n // Set to null to disable the change listener.\n fileInput: undefined,\n // By default, the file input field is replaced with a clone after\n // each input field change event. This is required for iframe transport\n // queues and allows change events to be fired for the same file\n // selection, but can be disabled by setting the following option to false:\n replaceFileInput: true,\n // The parameter name for the file form data (the request argument name).\n // If undefined or empty, the name property of the file input field is\n // used, or \"files[]\" if the file input name property is also empty,\n // can be a string or an array of strings:\n paramName: undefined,\n // By default, each file of a selection is uploaded using an individual\n // request for XHR type uploads. Set to false to upload file\n // selections in one request each:\n singleFileUploads: true,\n // To limit the number of files uploaded with one XHR request,\n // set the following option to an integer greater than 0:\n limitMultiFileUploads: undefined,\n // The following option limits the number of files uploaded with one\n // XHR request to keep the request size under or equal to the defined\n // limit in bytes:\n limitMultiFileUploadSize: undefined,\n // Multipart file uploads add a number of bytes to each uploaded file,\n // therefore the following option adds an overhead for each file used\n // in the limitMultiFileUploadSize configuration:\n limitMultiFileUploadSizeOverhead: 512,\n // Set the following option to true to issue all file upload requests\n // in a sequential order:\n sequentialUploads: false,\n // To limit the number of concurrent uploads,\n // set the following option to an integer greater than 0:\n limitConcurrentUploads: undefined,\n // Set the following option to true to force iframe transport uploads:\n forceIframeTransport: false,\n // Set the following option to the location of a redirect url on the\n // origin server, for cross-domain iframe transport uploads:\n redirect: undefined,\n // The parameter name for the redirect url, sent as part of the form\n // data and set to 'redirect' if this option is empty:\n redirectParamName: undefined,\n // Set the following option to the location of a postMessage window,\n // to enable postMessage transport uploads:\n postMessage: undefined,\n // By default, XHR file uploads are sent as multipart/form-data.\n // The iframe transport is always using multipart/form-data.\n // Set to false to enable non-multipart XHR uploads:\n multipart: true,\n // To upload large files in smaller chunks, set the following option\n // to a preferred maximum chunk size. If set to 0, null or undefined,\n // or the browser does not support the required Blob API, files will\n // be uploaded as a whole.\n maxChunkSize: undefined,\n // When a non-multipart upload or a chunked multipart upload has been\n // aborted, this option can be used to resume the upload by setting\n // it to the size of the already uploaded bytes. This option is most\n // useful when modifying the options object inside of the \"add\" or\n // \"send\" callbacks, as the options are cloned for each file upload.\n uploadedBytes: undefined,\n // By default, failed (abort or error) file uploads are removed from the\n // global progress calculation. Set the following option to false to\n // prevent recalculating the global progress data:\n recalculateProgress: true,\n // Interval in milliseconds to calculate and trigger progress events:\n progressInterval: 100,\n // Interval in milliseconds to calculate progress bitrate:\n bitrateInterval: 500,\n // By default, uploads are started automatically when adding files:\n autoUpload: true,\n\n // Error and info messages:\n messages: {\n uploadedBytes: 'Uploaded bytes exceed file size'\n },\n\n // Translation function, gets the message key to be translated\n // and an object with context specific data as arguments:\n i18n: function (message, context) {\n message = this.messages[message] || message.toString();\n if (context) {\n $.each(context, function (key, value) {\n message = message.replace('{' + key + '}', value);\n });\n }\n return message;\n },\n\n // Additional form data to be sent along with the file uploads can be set\n // using this option, which accepts an array of objects with name and\n // value properties, a function returning such an array, a FormData\n // object (for XHR file uploads), or a simple object.\n // The form of the first fileInput is given as parameter to the function:\n formData: function (form) {\n return form.serializeArray();\n },\n\n // The add callback is invoked as soon as files are added to the fileupload\n // widget (via file input selection, drag & drop, paste or add API call).\n // If the singleFileUploads option is enabled, this callback will be\n // called once for each file in the selection for XHR file uploads, else\n // once for each file selection.\n //\n // The upload starts when the submit method is invoked on the data parameter.\n // The data object contains a files property holding the added files\n // and allows you to override plugin options as well as define ajax settings.\n //\n // Listeners for this callback can also be bound the following way:\n // .bind('fileuploadadd', func);\n //\n // data.submit() returns a Promise object and allows to attach additional\n // handlers using jQuery's Deferred callbacks:\n // data.submit().done(func).fail(func).always(func);\n add: function (e, data) {\n if (e.isDefaultPrevented()) {\n return false;\n }\n if (data.autoUpload || (data.autoUpload !== false &&\n $(this).fileupload('option', 'autoUpload'))) {\n data.process().done(function () {\n data.submit();\n });\n }\n },\n\n // Other callbacks:\n\n // Callback for the submit event of each file upload:\n // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);\n\n // Callback for the start of each file upload request:\n // send: function (e, data) {}, // .bind('fileuploadsend', func);\n\n // Callback for successful uploads:\n // done: function (e, data) {}, // .bind('fileuploaddone', func);\n\n // Callback for failed (abort or error) uploads:\n // fail: function (e, data) {}, // .bind('fileuploadfail', func);\n\n // Callback for completed (success, abort or error) requests:\n // always: function (e, data) {}, // .bind('fileuploadalways', func);\n\n // Callback for upload progress events:\n // progress: function (e, data) {}, // .bind('fileuploadprogress', func);\n\n // Callback for global upload progress events:\n // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);\n\n // Callback for uploads start, equivalent to the global ajaxStart event:\n // start: function (e) {}, // .bind('fileuploadstart', func);\n\n // Callback for uploads stop, equivalent to the global ajaxStop event:\n // stop: function (e) {}, // .bind('fileuploadstop', func);\n\n // Callback for change events of the fileInput(s):\n // change: function (e, data) {}, // .bind('fileuploadchange', func);\n\n // Callback for paste events to the pasteZone(s):\n // paste: function (e, data) {}, // .bind('fileuploadpaste', func);\n\n // Callback for drop events of the dropZone(s):\n // drop: function (e, data) {}, // .bind('fileuploaddrop', func);\n\n // Callback for dragover events of the dropZone(s):\n // dragover: function (e) {}, // .bind('fileuploaddragover', func);\n\n // Callback for the start of each chunk upload request:\n // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);\n\n // Callback for successful chunk uploads:\n // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);\n\n // Callback for failed (abort or error) chunk uploads:\n // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);\n\n // Callback for completed (success, abort or error) chunk upload requests:\n // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);\n\n // The plugin options are used as settings object for the ajax calls.\n // The following are jQuery ajax settings required for the file uploads:\n processData: false,\n contentType: false,\n cache: false,\n timeout: 0\n },\n\n // A list of options that require reinitializing event listeners and/or\n // special initialization code:\n _specialOptions: [\n 'fileInput',\n 'dropZone',\n 'pasteZone',\n 'multipart',\n 'forceIframeTransport'\n ],\n\n _blobSlice: $.support.blobSlice && function () {\n var slice = this.slice || this.webkitSlice || this.mozSlice;\n return slice.apply(this, arguments);\n },\n\n _BitrateTimer: function () {\n this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n this.loaded = 0;\n this.bitrate = 0;\n this.getBitrate = function (now, loaded, interval) {\n var timeDiff = now - this.timestamp;\n if (!this.bitrate || !interval || timeDiff > interval) {\n this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n this.loaded = loaded;\n this.timestamp = now;\n }\n return this.bitrate;\n };\n },\n\n _isXHRUpload: function (options) {\n return !options.forceIframeTransport &&\n ((!options.multipart && $.support.xhrFileUpload) ||\n $.support.xhrFormDataFileUpload);\n },\n\n _getFormData: function (options) {\n var formData;\n if ($.type(options.formData) === 'function') {\n return options.formData(options.form);\n }\n if ($.isArray(options.formData)) {\n return options.formData;\n }\n if ($.type(options.formData) === 'object') {\n formData = [];\n $.each(options.formData, function (name, value) {\n formData.push({name: name, value: value});\n });\n return formData;\n }\n return [];\n },\n\n _getTotal: function (files) {\n var total = 0;\n $.each(files, function (index, file) {\n total += file.size || 1;\n });\n return total;\n },\n\n _initProgressObject: function (obj) {\n var progress = {\n loaded: 0,\n total: 0,\n bitrate: 0\n };\n if (obj._progress) {\n $.extend(obj._progress, progress);\n } else {\n obj._progress = progress;\n }\n },\n\n _initResponseObject: function (obj) {\n var prop;\n if (obj._response) {\n for (prop in obj._response) {\n if (obj._response.hasOwnProperty(prop)) {\n delete obj._response[prop];\n }\n }\n } else {\n obj._response = {};\n }\n },\n\n _onProgress: function (e, data) {\n if (e.lengthComputable) {\n var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n loaded;\n if (data._time && data.progressInterval &&\n (now - data._time < data.progressInterval) &&\n e.loaded !== e.total) {\n return;\n }\n data._time = now;\n loaded = Math.floor(\n e.loaded / e.total * (data.chunkSize || data._progress.total)\n ) + (data.uploadedBytes || 0);\n // Add the difference from the previously loaded state\n // to the global loaded counter:\n this._progress.loaded += (loaded - data._progress.loaded);\n this._progress.bitrate = this._bitrateTimer.getBitrate(\n now,\n this._progress.loaded,\n data.bitrateInterval\n );\n data._progress.loaded = data.loaded = loaded;\n data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\n now,\n loaded,\n data.bitrateInterval\n );\n // Trigger a custom progress event with a total data property set\n // to the file size(s) of the current upload and a loaded data\n // property calculated accordingly:\n this._trigger(\n 'progress',\n $.Event('progress', {delegatedEvent: e}),\n data\n );\n // Trigger a global progress event for all current file uploads,\n // including ajax calls queued for sequential file uploads:\n this._trigger(\n 'progressall',\n $.Event('progressall', {delegatedEvent: e}),\n this._progress\n );\n }\n },\n\n _initProgressListener: function (options) {\n var that = this,\n xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n // Accesss to the native XHR object is required to add event listeners\n // for the upload progress event:\n if (xhr.upload) {\n $(xhr.upload).bind('progress', function (e) {\n var oe = e.originalEvent;\n // Make sure the progress event properties get copied over:\n e.lengthComputable = oe.lengthComputable;\n e.loaded = oe.loaded;\n e.total = oe.total;\n that._onProgress(e, options);\n });\n options.xhr = function () {\n return xhr;\n };\n }\n },\n\n _isInstanceOf: function (type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n _initXHRData: function (options) {\n var that = this,\n formData,\n file = options.files[0],\n // Ignore non-multipart setting if not supported:\n multipart = options.multipart || !$.support.xhrFileUpload,\n paramName = $.type(options.paramName) === 'array' ?\n options.paramName[0] : options.paramName;\n options.headers = $.extend({}, options.headers);\n if (options.contentRange) {\n options.headers['Content-Range'] = options.contentRange;\n }\n if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\n options.headers['Content-Disposition'] = 'attachment; filename=\"' +\n encodeURI(file.name) + '\"';\n }\n if (!multipart) {\n options.contentType = file.type || 'application/octet-stream';\n options.data = options.blob || file;\n } else if ($.support.xhrFormDataFileUpload) {\n if (options.postMessage) {\n // window.postMessage does not allow sending FormData\n // objects, so we just add the File/Blob objects to\n // the formData array and let the postMessage window\n // create the FormData object out of this array:\n formData = this._getFormData(options);\n if (options.blob) {\n formData.push({\n name: paramName,\n value: options.blob\n });\n } else {\n $.each(options.files, function (index, file) {\n formData.push({\n name: ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n value: file\n });\n });\n }\n } else {\n if (that._isInstanceOf('FormData', options.formData)) {\n formData = options.formData;\n } else {\n formData = new FormData();\n $.each(this._getFormData(options), function (index, field) {\n formData.append(field.name, field.value);\n });\n }\n if (options.blob) {\n formData.append(paramName, options.blob, file.name);\n } else {\n $.each(options.files, function (index, file) {\n // This check allows the tests to run with\n // dummy objects:\n if (that._isInstanceOf('File', file) ||\n that._isInstanceOf('Blob', file)) {\n formData.append(\n ($.type(options.paramName) === 'array' &&\n options.paramName[index]) || paramName,\n file,\n file.uploadName || file.name\n );\n }\n });\n }\n }\n options.data = formData;\n }\n // Blob reference is not needed anymore, free memory:\n options.blob = null;\n },\n\n _initIframeSettings: function (options) {\n var targetHost = $('').prop('href', options.url).prop('host');\n // Setting the dataType to iframe enables the iframe transport:\n options.dataType = 'iframe ' + (options.dataType || '');\n // The iframe transport accepts a serialized array as form data:\n options.formData = this._getFormData(options);\n // Add redirect url to form data on cross-domain uploads:\n if (options.redirect && targetHost && targetHost !== location.host) {\n options.formData.push({\n name: options.redirectParamName || 'redirect',\n value: options.redirect\n });\n }\n },\n\n _initDataSettings: function (options) {\n if (this._isXHRUpload(options)) {\n if (!this._chunkedUpload(options, true)) {\n if (!options.data) {\n this._initXHRData(options);\n }\n this._initProgressListener(options);\n }\n if (options.postMessage) {\n // Setting the dataType to postmessage enables the\n // postMessage transport:\n options.dataType = 'postmessage ' + (options.dataType || '');\n }\n } else {\n this._initIframeSettings(options);\n }\n },\n\n _getParamName: function (options) {\n var fileInput = $(options.fileInput),\n paramName = options.paramName;\n if (!paramName) {\n paramName = [];\n fileInput.each(function () {\n var input = $(this),\n name = input.prop('name') || 'files[]',\n i = (input.prop('files') || [1]).length;\n while (i) {\n paramName.push(name);\n i -= 1;\n }\n });\n if (!paramName.length) {\n paramName = [fileInput.prop('name') || 'files[]'];\n }\n } else if (!$.isArray(paramName)) {\n paramName = [paramName];\n }\n return paramName;\n },\n\n _initFormSettings: function (options) {\n // Retrieve missing options from the input field and the\n // associated form, if available:\n if (!options.form || !options.form.length) {\n options.form = $(options.fileInput.prop('form'));\n // If the given file input doesn't have an associated form,\n // use the default widget file input's form:\n if (!options.form.length) {\n options.form = $(this.options.fileInput.prop('form'));\n }\n }\n options.paramName = this._getParamName(options);\n if (!options.url) {\n options.url = options.form.prop('action') || location.href;\n }\n // The HTTP request method must be \"POST\" or \"PUT\":\n options.type = (options.type ||\n ($.type(options.form.prop('method')) === 'string' &&\n options.form.prop('method')) || ''\n ).toUpperCase();\n if (options.type !== 'POST' && options.type !== 'PUT' &&\n options.type !== 'PATCH') {\n options.type = 'POST';\n }\n if (!options.formAcceptCharset) {\n options.formAcceptCharset = options.form.attr('accept-charset');\n }\n },\n\n _getAJAXSettings: function (data) {\n var options = $.extend({}, this.options, data);\n this._initFormSettings(options);\n this._initDataSettings(options);\n return options;\n },\n\n // jQuery 1.6 doesn't provide .state(),\n // while jQuery 1.8+ removed .isRejected() and .isResolved():\n _getDeferredState: function (deferred) {\n if (deferred.state) {\n return deferred.state();\n }\n if (deferred.isResolved()) {\n return 'resolved';\n }\n if (deferred.isRejected()) {\n return 'rejected';\n }\n return 'pending';\n },\n\n // Maps jqXHR callbacks to the equivalent\n // methods of the given Promise object:\n _enhancePromise: function (promise) {\n promise.success = promise.done;\n promise.error = promise.fail;\n promise.complete = promise.always;\n return promise;\n },\n\n // Creates and returns a Promise object enhanced with\n // the jqXHR methods abort, success, error and complete:\n _getXHRPromise: function (resolveOrReject, context, args) {\n var dfd = $.Deferred(),\n promise = dfd.promise();\n context = context || this.options.context || promise;\n if (resolveOrReject === true) {\n dfd.resolveWith(context, args);\n } else if (resolveOrReject === false) {\n dfd.rejectWith(context, args);\n }\n promise.abort = dfd.promise;\n return this._enhancePromise(promise);\n },\n\n // Adds convenience methods to the data callback argument:\n _addConvenienceMethods: function (e, data) {\n var that = this,\n getPromise = function (args) {\n return $.Deferred().resolveWith(that, args).promise();\n };\n data.process = function (resolveFunc, rejectFunc) {\n if (resolveFunc || rejectFunc) {\n data._processQueue = this._processQueue =\n (this._processQueue || getPromise([this])).pipe(\n function () {\n if (data.errorThrown) {\n return $.Deferred()\n .rejectWith(that, [data]).promise();\n }\n return getPromise(arguments);\n }\n ).pipe(resolveFunc, rejectFunc);\n }\n return this._processQueue || getPromise([this]);\n };\n data.submit = function () {\n if (this.state() !== 'pending') {\n data.jqXHR = this.jqXHR =\n (that._trigger(\n 'submit',\n $.Event('submit', {delegatedEvent: e}),\n this\n ) !== false) && that._onSend(e, this);\n }\n return this.jqXHR || that._getXHRPromise();\n };\n data.abort = function () {\n if (this.jqXHR) {\n return this.jqXHR.abort();\n }\n this.errorThrown = 'abort';\n that._trigger('fail', null, this);\n return that._getXHRPromise(false);\n };\n data.state = function () {\n if (this.jqXHR) {\n return that._getDeferredState(this.jqXHR);\n }\n if (this._processQueue) {\n return that._getDeferredState(this._processQueue);\n }\n };\n data.processing = function () {\n return !this.jqXHR && this._processQueue && that\n ._getDeferredState(this._processQueue) === 'pending';\n };\n data.progress = function () {\n return this._progress;\n };\n data.response = function () {\n return this._response;\n };\n },\n\n // Parses the Range header from the server response\n // and returns the uploaded bytes:\n _getUploadedBytes: function (jqXHR) {\n var range = jqXHR.getResponseHeader('Range'),\n parts = range && range.split('-'),\n upperBytesPos = parts && parts.length > 1 &&\n parseInt(parts[1], 10);\n return upperBytesPos && upperBytesPos + 1;\n },\n\n // Uploads a file in multiple, sequential requests\n // by splitting the file up in multiple blob chunks.\n // If the second parameter is true, only tests if the file\n // should be uploaded in chunks, but does not invoke any\n // upload requests:\n _chunkedUpload: function (options, testOnly) {\n options.uploadedBytes = options.uploadedBytes || 0;\n var that = this,\n file = options.files[0],\n fs = file.size,\n ub = options.uploadedBytes,\n mcs = options.maxChunkSize || fs,\n slice = this._blobSlice,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n upload;\n if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||\n options.data) {\n return false;\n }\n if (testOnly) {\n return true;\n }\n if (ub >= fs) {\n file.error = options.i18n('uploadedBytes');\n return this._getXHRPromise(\n false,\n options.context,\n [null, 'error', file.error]\n );\n }\n // The chunk upload method:\n upload = function () {\n // Clone the options object for each chunk upload:\n var o = $.extend({}, options),\n currentLoaded = o._progress.loaded;\n o.blob = slice.call(\n file,\n ub,\n ub + mcs,\n file.type\n );\n // Store the current chunk size, as the blob itself\n // will be dereferenced after data processing:\n o.chunkSize = o.blob.size;\n // Expose the chunk bytes position range:\n o.contentRange = 'bytes ' + ub + '-' +\n (ub + o.chunkSize - 1) + '/' + fs;\n // Process the upload data (the blob and potential form data):\n that._initXHRData(o);\n // Add progress listeners for this chunk upload:\n that._initProgressListener(o);\n jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\n that._getXHRPromise(false, o.context))\n .done(function (result, textStatus, jqXHR) {\n ub = that._getUploadedBytes(jqXHR) ||\n (ub + o.chunkSize);\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered\n // for this chunk:\n if (currentLoaded + o.chunkSize - o._progress.loaded) {\n that._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: ub - o.uploadedBytes,\n total: ub - o.uploadedBytes\n }), o);\n }\n options.uploadedBytes = o.uploadedBytes = ub;\n o.result = result;\n o.textStatus = textStatus;\n o.jqXHR = jqXHR;\n that._trigger('chunkdone', null, o);\n that._trigger('chunkalways', null, o);\n if (ub < fs) {\n // File upload not yet complete,\n // continue with the next chunk:\n upload();\n } else {\n dfd.resolveWith(\n o.context,\n [result, textStatus, jqXHR]\n );\n }\n })\n .fail(function (jqXHR, textStatus, errorThrown) {\n o.jqXHR = jqXHR;\n o.textStatus = textStatus;\n o.errorThrown = errorThrown;\n that._trigger('chunkfail', null, o);\n that._trigger('chunkalways', null, o);\n dfd.rejectWith(\n o.context,\n [jqXHR, textStatus, errorThrown]\n );\n });\n };\n this._enhancePromise(promise);\n promise.abort = function () {\n return jqXHR.abort();\n };\n upload();\n return promise;\n },\n\n _beforeSend: function (e, data) {\n if (this._active === 0) {\n // the start callback is triggered when an upload starts\n // and no other uploads are currently running,\n // equivalent to the global ajaxStart event:\n this._trigger('start');\n // Set timer for global bitrate progress calculation:\n this._bitrateTimer = new this._BitrateTimer();\n // Reset the global progress values:\n this._progress.loaded = this._progress.total = 0;\n this._progress.bitrate = 0;\n }\n // Make sure the container objects for the .response() and\n // .progress() methods on the data object are available\n // and reset to their initial state:\n this._initResponseObject(data);\n this._initProgressObject(data);\n data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n data._progress.total = data.total = this._getTotal(data.files) || 1;\n data._progress.bitrate = data.bitrate = 0;\n this._active += 1;\n // Initialize the global progress values:\n this._progress.loaded += data.loaded;\n this._progress.total += data.total;\n },\n\n _onDone: function (result, textStatus, jqXHR, options) {\n var total = options._progress.total,\n response = options._response;\n if (options._progress.loaded < total) {\n // Create a progress event if no final progress event\n // with loaded equaling total has been triggered:\n this._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: total,\n total: total\n }), options);\n }\n response.result = options.result = result;\n response.textStatus = options.textStatus = textStatus;\n response.jqXHR = options.jqXHR = jqXHR;\n this._trigger('done', null, options);\n },\n\n _onFail: function (jqXHR, textStatus, errorThrown, options) {\n var response = options._response;\n if (options.recalculateProgress) {\n // Remove the failed (error or abort) file upload from\n // the global progress calculation:\n this._progress.loaded -= options._progress.loaded;\n this._progress.total -= options._progress.total;\n }\n response.jqXHR = options.jqXHR = jqXHR;\n response.textStatus = options.textStatus = textStatus;\n response.errorThrown = options.errorThrown = errorThrown;\n this._trigger('fail', null, options);\n },\n\n _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\n // jqXHRorResult, textStatus and jqXHRorError are added to the\n // options object via done and fail callbacks\n this._trigger('always', null, options);\n },\n\n _onSend: function (e, data) {\n if (!data.submit) {\n this._addConvenienceMethods(e, data);\n }\n var that = this,\n jqXHR,\n aborted,\n slot,\n pipe,\n options = that._getAJAXSettings(data),\n send = function () {\n that._sending += 1;\n // Set timer for bitrate progress calculation:\n options._bitrateTimer = new that._BitrateTimer();\n jqXHR = jqXHR || (\n ((aborted || that._trigger(\n 'send',\n $.Event('send', {delegatedEvent: e}),\n options\n ) === false) &&\n that._getXHRPromise(false, options.context, aborted)) ||\n that._chunkedUpload(options) || $.ajax(options)\n ).done(function (result, textStatus, jqXHR) {\n that._onDone(result, textStatus, jqXHR, options);\n }).fail(function (jqXHR, textStatus, errorThrown) {\n that._onFail(jqXHR, textStatus, errorThrown, options);\n }).always(function (jqXHRorResult, textStatus, jqXHRorError) {\n that._onAlways(\n jqXHRorResult,\n textStatus,\n jqXHRorError,\n options\n );\n that._sending -= 1;\n that._active -= 1;\n if (options.limitConcurrentUploads &&\n options.limitConcurrentUploads > that._sending) {\n // Start the next queued upload,\n // that has not been aborted:\n var nextSlot = that._slots.shift();\n while (nextSlot) {\n if (that._getDeferredState(nextSlot) === 'pending') {\n nextSlot.resolve();\n break;\n }\n nextSlot = that._slots.shift();\n }\n }\n if (that._active === 0) {\n // The stop callback is triggered when all uploads have\n // been completed, equivalent to the global ajaxStop event:\n that._trigger('stop');\n }\n });\n return jqXHR;\n };\n this._beforeSend(e, options);\n if (this.options.sequentialUploads ||\n (this.options.limitConcurrentUploads &&\n this.options.limitConcurrentUploads <= this._sending)) {\n if (this.options.limitConcurrentUploads > 1) {\n slot = $.Deferred();\n this._slots.push(slot);\n pipe = slot.pipe(send);\n } else {\n this._sequence = this._sequence.pipe(send, send);\n pipe = this._sequence;\n }\n // Return the piped Promise object, enhanced with an abort method,\n // which is delegated to the jqXHR object of the current upload,\n // and jqXHR callbacks mapped to the equivalent Promise methods:\n pipe.abort = function () {\n aborted = [undefined, 'abort', 'abort'];\n if (!jqXHR) {\n if (slot) {\n slot.rejectWith(options.context, aborted);\n }\n return send();\n }\n return jqXHR.abort();\n };\n return this._enhancePromise(pipe);\n }\n return send();\n },\n\n _onAdd: function (e, data) {\n var that = this,\n result = true,\n options = $.extend({}, this.options, data),\n files = data.files,\n filesLength = files.length,\n limit = options.limitMultiFileUploads,\n limitSize = options.limitMultiFileUploadSize,\n overhead = options.limitMultiFileUploadSizeOverhead,\n batchSize = 0,\n paramName = this._getParamName(options),\n paramNameSet,\n paramNameSlice,\n fileSet,\n i,\n j = 0;\n if (!filesLength) {\n return false;\n }\n if (limitSize && files[0].size === undefined) {\n limitSize = undefined;\n }\n if (!(options.singleFileUploads || limit || limitSize) ||\n !this._isXHRUpload(options)) {\n fileSet = [files];\n paramNameSet = [paramName];\n } else if (!(options.singleFileUploads || limitSize) && limit) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i += limit) {\n fileSet.push(files.slice(i, i + limit));\n paramNameSlice = paramName.slice(i, i + limit);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n }\n } else if (!options.singleFileUploads && limitSize) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i = i + 1) {\n batchSize += files[i].size + overhead;\n if (i + 1 === filesLength ||\n ((batchSize + files[i + 1].size + overhead) > limitSize) ||\n (limit && i + 1 - j >= limit)) {\n fileSet.push(files.slice(j, i + 1));\n paramNameSlice = paramName.slice(j, i + 1);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n j = i + 1;\n batchSize = 0;\n }\n }\n } else {\n paramNameSet = paramName;\n }\n data.originalFiles = files;\n $.each(fileSet || files, function (index, element) {\n var newData = $.extend({}, data);\n newData.files = fileSet ? element : [element];\n newData.paramName = paramNameSet[index];\n that._initResponseObject(newData);\n that._initProgressObject(newData);\n that._addConvenienceMethods(e, newData);\n result = that._trigger(\n 'add',\n $.Event('add', {delegatedEvent: e}),\n newData\n );\n return result;\n });\n return result;\n },\n\n _replaceFileInput: function (data) {\n var input = data.fileInput,\n inputClone = input.clone(true);\n // Add a reference for the new cloned file input to the data argument:\n data.fileInputClone = inputClone;\n $('
                                ').append(inputClone)[0].reset();\n // Detaching allows to insert the fileInput on another form\n // without loosing the file input value:\n input.after(inputClone).detach();\n // Avoid memory leaks with the detached file input:\n $.cleanData(input.unbind('remove'));\n // Replace the original file input element in the fileInput\n // elements set with the clone, which has been copied including\n // event handlers:\n this.options.fileInput = this.options.fileInput.map(function (i, el) {\n if (el === input[0]) {\n return inputClone[0];\n }\n return el;\n });\n // If the widget has been initialized on the file input itself,\n // override this.element with the file input clone:\n if (input[0] === this.element[0]) {\n this.element = inputClone;\n }\n },\n\n _handleFileTreeEntry: function (entry, path) {\n var that = this,\n dfd = $.Deferred(),\n errorHandler = function (e) {\n if (e && !e.entry) {\n e.entry = entry;\n }\n // Since $.when returns immediately if one\n // Deferred is rejected, we use resolve instead.\n // This allows valid files and invalid items\n // to be returned together in one set:\n dfd.resolve([e]);\n },\n successHandler = function (entries) {\n that._handleFileTreeEntries(\n entries,\n path + entry.name + '/'\n ).done(function (files) {\n dfd.resolve(files);\n }).fail(errorHandler);\n },\n readEntries = function () {\n dirReader.readEntries(function (results) {\n if (!results.length) {\n successHandler(entries);\n } else {\n entries = entries.concat(results);\n readEntries();\n }\n }, errorHandler);\n },\n dirReader, entries = [];\n path = path || '';\n if (entry.isFile) {\n if (entry._file) {\n // Workaround for Chrome bug #149735\n entry._file.relativePath = path;\n dfd.resolve(entry._file);\n } else {\n entry.file(function (file) {\n file.relativePath = path;\n dfd.resolve(file);\n }, errorHandler);\n }\n } else if (entry.isDirectory) {\n dirReader = entry.createReader();\n readEntries();\n } else {\n // Return an empy list for file system items\n // other than files or directories:\n dfd.resolve([]);\n }\n return dfd.promise();\n },\n\n _handleFileTreeEntries: function (entries, path) {\n var that = this;\n return $.when.apply(\n $,\n $.map(entries, function (entry) {\n return that._handleFileTreeEntry(entry, path);\n })\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _getDroppedFiles: function (dataTransfer) {\n dataTransfer = dataTransfer || {};\n var items = dataTransfer.items;\n if (items && items.length && (items[0].webkitGetAsEntry ||\n items[0].getAsEntry)) {\n return this._handleFileTreeEntries(\n $.map(items, function (item) {\n var entry;\n if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n if (entry) {\n // Workaround for Chrome bug #149735:\n entry._file = item.getAsFile();\n }\n return entry;\n }\n return item.getAsEntry();\n })\n );\n }\n return $.Deferred().resolve(\n $.makeArray(dataTransfer.files)\n ).promise();\n },\n\n _getSingleFileInputFiles: function (fileInput) {\n fileInput = $(fileInput);\n var entries = fileInput.prop('webkitEntries') ||\n fileInput.prop('entries'),\n files,\n value;\n if (entries && entries.length) {\n return this._handleFileTreeEntries(entries);\n }\n files = $.makeArray(fileInput.prop('files'));\n if (!files.length) {\n value = fileInput.prop('value');\n if (!value) {\n return $.Deferred().resolve([]).promise();\n }\n // If the files property is not available, the browser does not\n // support the File API and we add a pseudo File object with\n // the input value as name with path information removed:\n files = [{name: value.replace(/^.*\\\\/, '')}];\n } else if (files[0].name === undefined && files[0].fileName) {\n // File normalization for Safari 4 and Firefox 3:\n $.each(files, function (index, file) {\n file.name = file.fileName;\n file.size = file.fileSize;\n });\n }\n return $.Deferred().resolve(files).promise();\n },\n\n _getFileInputFiles: function (fileInput) {\n if (!(fileInput instanceof $) || fileInput.length === 1) {\n return this._getSingleFileInputFiles(fileInput);\n }\n return $.when.apply(\n $,\n $.map(fileInput, this._getSingleFileInputFiles)\n ).pipe(function () {\n return Array.prototype.concat.apply(\n [],\n arguments\n );\n });\n },\n\n _onChange: function (e) {\n var that = this,\n data = {\n fileInput: $(e.target),\n form: $(e.target.form)\n };\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n if (that.options.replaceFileInput) {\n that._replaceFileInput(data);\n }\n if (that._trigger(\n 'change',\n $.Event('change', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n },\n\n _onPaste: function (e) {\n var items = e.originalEvent && e.originalEvent.clipboardData &&\n e.originalEvent.clipboardData.items,\n data = {files: []};\n if (items && items.length) {\n $.each(items, function (index, item) {\n var file = item.getAsFile && item.getAsFile();\n if (file) {\n data.files.push(file);\n }\n });\n if (this._trigger(\n 'paste',\n $.Event('paste', {delegatedEvent: e}),\n data\n ) !== false) {\n this._onAdd(e, data);\n }\n }\n },\n\n _onDrop: function (e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var that = this,\n dataTransfer = e.dataTransfer,\n data = {};\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n e.preventDefault();\n this._getDroppedFiles(dataTransfer).always(function (files) {\n data.files = files;\n if (that._trigger(\n 'drop',\n $.Event('drop', {delegatedEvent: e}),\n data\n ) !== false) {\n that._onAdd(e, data);\n }\n });\n }\n },\n\n _onDragOver: getDragHandler('dragover'),\n\n _onDragEnter: getDragHandler('dragenter'),\n\n _onDragLeave: getDragHandler('dragleave'),\n\n _initEventHandlers: function () {\n if (this._isXHRUpload(this.options)) {\n this._on(this.options.dropZone, {\n dragover: this._onDragOver,\n drop: this._onDrop,\n // event.preventDefault() on dragenter is required for IE10+:\n dragenter: this._onDragEnter,\n // dragleave is not required, but added for completeness:\n dragleave: this._onDragLeave\n });\n this._on(this.options.pasteZone, {\n paste: this._onPaste\n });\n }\n if ($.support.fileInput) {\n this._on(this.options.fileInput, {\n change: this._onChange\n });\n }\n },\n\n _destroyEventHandlers: function () {\n this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\n this._off(this.options.pasteZone, 'paste');\n this._off(this.options.fileInput, 'change');\n },\n\n _setOption: function (key, value) {\n var reinit = $.inArray(key, this._specialOptions) !== -1;\n if (reinit) {\n this._destroyEventHandlers();\n }\n this._super(key, value);\n if (reinit) {\n this._initSpecialOptions();\n this._initEventHandlers();\n }\n },\n\n _initSpecialOptions: function () {\n var options = this.options;\n if (options.fileInput === undefined) {\n options.fileInput = this.element.is('input[type=\"file\"]') ?\n this.element : this.element.find('input[type=\"file\"]');\n } else if (!(options.fileInput instanceof $)) {\n options.fileInput = $(options.fileInput);\n }\n if (!(options.dropZone instanceof $)) {\n options.dropZone = $(options.dropZone);\n }\n if (!(options.pasteZone instanceof $)) {\n options.pasteZone = $(options.pasteZone);\n }\n },\n\n _getRegExp: function (str) {\n var parts = str.split('/'),\n modifiers = parts.pop();\n parts.shift();\n return new RegExp(parts.join('/'), modifiers);\n },\n\n _isRegExpOption: function (key, value) {\n return key !== 'url' && $.type(value) === 'string' &&\n /^\\/.*\\/[igm]{0,3}$/.test(value);\n },\n\n _initDataAttributes: function () {\n var that = this,\n options = this.options,\n data = this.element.data();\n // Initialize options set via HTML5 data-attributes:\n $.each(\n this.element[0].attributes,\n function (index, attr) {\n var key = attr.name.toLowerCase(),\n value;\n if (/^data-/.test(key)) {\n // Convert hyphen-ated key to camelCase:\n key = key.slice(5).replace(/-[a-z]/g, function (str) {\n return str.charAt(1).toUpperCase();\n });\n value = data[key];\n if (that._isRegExpOption(key, value)) {\n value = that._getRegExp(value);\n }\n options[key] = value;\n }\n }\n );\n },\n\n _create: function () {\n this._initDataAttributes();\n this._initSpecialOptions();\n this._slots = [];\n this._sequence = this._getXHRPromise(true);\n this._sending = this._active = 0;\n this._initProgressObject(this);\n this._initEventHandlers();\n },\n\n // This method is exposed to the widget API and allows to query\n // the number of active uploads:\n active: function () {\n return this._active;\n },\n\n // This method is exposed to the widget API and allows to query\n // the widget upload progress.\n // It returns an object with loaded, total and bitrate properties\n // for the running uploads:\n progress: function () {\n return this._progress;\n },\n\n // This method is exposed to the widget API and allows adding files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files property and can contain additional options:\n // .fileupload('add', {files: filesList});\n add: function (data) {\n var that = this;\n if (!data || this.options.disabled) {\n return;\n }\n if (data.fileInput && !data.files) {\n this._getFileInputFiles(data.fileInput).always(function (files) {\n data.files = files;\n that._onAdd(null, data);\n });\n } else {\n data.files = $.makeArray(data.files);\n this._onAdd(null, data);\n }\n },\n\n // This method is exposed to the widget API and allows sending files\n // using the fileupload API. The data parameter accepts an object which\n // must have a files or fileInput property and can contain additional options:\n // .fileupload('send', {files: filesList});\n // The method returns a Promise object for the file upload call.\n send: function (data) {\n if (data && !this.options.disabled) {\n if (data.fileInput && !data.files) {\n var that = this,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n aborted;\n promise.abort = function () {\n aborted = true;\n if (jqXHR) {\n return jqXHR.abort();\n }\n dfd.reject(null, 'abort', 'abort');\n return promise;\n };\n this._getFileInputFiles(data.fileInput).always(\n function (files) {\n if (aborted) {\n return;\n }\n if (!files.length) {\n dfd.reject();\n return;\n }\n data.files = files;\n jqXHR = that._onSend(null, data);\n jqXHR.then(\n function (result, textStatus, jqXHR) {\n dfd.resolve(result, textStatus, jqXHR);\n },\n function (jqXHR, textStatus, errorThrown) {\n dfd.reject(jqXHR, textStatus, errorThrown);\n }\n );\n }\n );\n return this._enhancePromise(promise);\n }\n data.files = $.makeArray(data.files);\n if (data.files.length) {\n return this._onSend(null, data);\n }\n }\n return this._getXHRPromise(false, data && data.context);\n }\n\n });\n\n}));\n","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under the MIT license\n */\n\nif (typeof jQuery === 'undefined') {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery')\n}\n\n+function ($) {\n 'use strict';\n var version = $.fn.jquery.split(' ')[0].split('.')\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {\n throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')\n }\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: transition.js v3.3.6\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: alert.js v3.3.6\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.6'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: button.js v3.3.6\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.6'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: carousel.js v3.3.6\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.6'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.3.6\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.6'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.3.6\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.6'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: modal.js v3.3.6\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.6'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tooltip.js v3.3.6\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.6'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
                                ',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: popover.js v3.3.6\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.6'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

                                '\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.6\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.6'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: tab.js v3.3.6\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.6'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n\n/* ========================================================================\n * Bootstrap: affix.js v3.3.6\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.6'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n",";(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.\n\t *\n\t * @codingstandard ftlabs-jsv2\n\t * @copyright The Financial Times Limited [All Rights Reserved]\n\t * @license MIT License (see LICENSE.txt)\n\t */\n\n\t/*jslint browser:true, node:true*/\n\t/*global define, Event, Node*/\n\n\n\t/**\n\t * Instantiate fast-clicking listeners on the specified layer.\n\t *\n\t * @constructor\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tfunction FastClick(layer, options) {\n\t\tvar oldOnClick;\n\n\t\toptions = options || {};\n\n\t\t/**\n\t\t * Whether a click is currently being tracked.\n\t\t *\n\t\t * @type boolean\n\t\t */\n\t\tthis.trackingClick = false;\n\n\n\t\t/**\n\t\t * Timestamp for when click tracking started.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.trackingClickStart = 0;\n\n\n\t\t/**\n\t\t * The element being tracked for a click.\n\t\t *\n\t\t * @type EventTarget\n\t\t */\n\t\tthis.targetElement = null;\n\n\n\t\t/**\n\t\t * X-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartX = 0;\n\n\n\t\t/**\n\t\t * Y-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartY = 0;\n\n\n\t\t/**\n\t\t * ID of the last touch, retrieved from Touch.identifier.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.lastTouchIdentifier = 0;\n\n\n\t\t/**\n\t\t * Touchmove boundary, beyond which a click will be cancelled.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchBoundary = options.touchBoundary || 10;\n\n\n\t\t/**\n\t\t * The FastClick layer.\n\t\t *\n\t\t * @type Element\n\t\t */\n\t\tthis.layer = layer;\n\n\t\t/**\n\t\t * The minimum time between tap(touchstart and touchend) events\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapDelay = options.tapDelay || 200;\n\n\t\t/**\n\t\t * The maximum time for a tap\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapTimeout = options.tapTimeout || 700;\n\n\t\tif (FastClick.notNeeded(layer)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Some old versions of Android don't have Function.prototype.bind\n\t\tfunction bind(method, context) {\n\t\t\treturn function() { return method.apply(context, arguments); };\n\t\t}\n\n\n\t\tvar methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];\n\t\tvar context = this;\n\t\tfor (var i = 0, l = methods.length; i < l; i++) {\n\t\t\tcontext[methods[i]] = bind(context[methods[i]], context);\n\t\t}\n\n\t\t// Set up event handlers as required\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.addEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.addEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.addEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.addEventListener('click', this.onClick, true);\n\t\tlayer.addEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.addEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.addEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.addEventListener('touchcancel', this.onTouchCancel, false);\n\n\t\t// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick\n\t\t// layer when they are cancelled.\n\t\tif (!Event.prototype.stopImmediatePropagation) {\n\t\t\tlayer.removeEventListener = function(type, callback, capture) {\n\t\t\t\tvar rmv = Node.prototype.removeEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\trmv.call(layer, type, callback.hijacked || callback, capture);\n\t\t\t\t} else {\n\t\t\t\t\trmv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlayer.addEventListener = function(type, callback, capture) {\n\t\t\t\tvar adv = Node.prototype.addEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\tadv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {\n\t\t\t\t\t\tif (!event.propagationStopped) {\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}), capture);\n\t\t\t\t} else {\n\t\t\t\t\tadv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// If a handler is already declared in the element's onclick attribute, it will be fired before\n\t\t// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and\n\t\t// adding it as listener.\n\t\tif (typeof layer.onclick === 'function') {\n\n\t\t\t// Android browser on at least 3.2 requires a new reference to the function in layer.onclick\n\t\t\t// - the old one won't work if passed to addEventListener directly.\n\t\t\toldOnClick = layer.onclick;\n\t\t\tlayer.addEventListener('click', function(event) {\n\t\t\t\toldOnClick(event);\n\t\t\t}, false);\n\t\t\tlayer.onclick = null;\n\t\t}\n\t}\n\n\t/**\n\t* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.\n\t*\n\t* @type boolean\n\t*/\n\tvar deviceIsWindowsPhone = navigator.userAgent.indexOf(\"Windows Phone\") >= 0;\n\n\t/**\n\t * Android requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS 4 requires an exception for select elements.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS4 = deviceIsIOS && (/OS 4_\\d(_\\d)?/).test(navigator.userAgent);\n\n\n\t/**\n\t * iOS 6.0-7.* requires the target element to be manually derived\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\\d/).test(navigator.userAgent);\n\n\t/**\n\t * BlackBerry requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;\n\n\t/**\n\t * Determine whether a given element requires a native click.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element needs a native click\n\t */\n\tFastClick.prototype.needsClick = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\n\t\t// Don't send a synthetic click to disabled inputs (issue #62)\n\t\tcase 'button':\n\t\tcase 'select':\n\t\tcase 'textarea':\n\t\t\tif (target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'input':\n\n\t\t\t// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)\n\t\t\tif ((deviceIsIOS && target.type === 'file') || target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'label':\n\t\tcase 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames\n\t\tcase 'video':\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (/\\bneedsclick\\b/).test(target.className);\n\t};\n\n\n\t/**\n\t * Determine whether a given element requires a call to focus to simulate click into element.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.\n\t */\n\tFastClick.prototype.needsFocus = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\t\tcase 'textarea':\n\t\t\treturn true;\n\t\tcase 'select':\n\t\t\treturn !deviceIsAndroid;\n\t\tcase 'input':\n\t\t\tswitch (target.type) {\n\t\t\tcase 'button':\n\t\t\tcase 'checkbox':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'radio':\n\t\t\tcase 'submit':\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// No point in attempting to focus disabled inputs\n\t\t\treturn !target.disabled && !target.readOnly;\n\t\tdefault:\n\t\t\treturn (/\\bneedsfocus\\b/).test(target.className);\n\t\t}\n\t};\n\n\n\t/**\n\t * Send a click event to the specified element.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t * @param {Event} event\n\t */\n\tFastClick.prototype.sendClick = function(targetElement, event) {\n\t\tvar clickEvent, touch;\n\n\t\t// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)\n\t\tif (document.activeElement && document.activeElement !== targetElement) {\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\n\t\ttouch = event.changedTouches[0];\n\n\t\t// Synthesise a click event, with an extra attribute so it can be tracked\n\t\tclickEvent = document.createEvent('MouseEvents');\n\t\tclickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);\n\t\tclickEvent.forwardedTouchEvent = true;\n\t\ttargetElement.dispatchEvent(clickEvent);\n\t};\n\n\tFastClick.prototype.determineEventType = function(targetElement) {\n\n\t\t//Issue #159: Android Chrome Select Box does not open with a synthetic click event\n\t\tif (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {\n\t\t\treturn 'mousedown';\n\t\t}\n\n\t\treturn 'click';\n\t};\n\n\n\t/**\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.focus = function(targetElement) {\n\t\tvar length;\n\n\t\t// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.\n\t\tif (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {\n\t\t\tlength = targetElement.value.length;\n\t\t\ttargetElement.setSelectionRange(length, length);\n\t\t} else {\n\t\t\ttargetElement.focus();\n\t\t}\n\t};\n\n\n\t/**\n\t * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.updateScrollParent = function(targetElement) {\n\t\tvar scrollParent, parentElement;\n\n\t\tscrollParent = targetElement.fastClickScrollParent;\n\n\t\t// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the\n\t\t// target element was moved to another parent.\n\t\tif (!scrollParent || !scrollParent.contains(targetElement)) {\n\t\t\tparentElement = targetElement;\n\t\t\tdo {\n\t\t\t\tif (parentElement.scrollHeight > parentElement.offsetHeight) {\n\t\t\t\t\tscrollParent = parentElement;\n\t\t\t\t\ttargetElement.fastClickScrollParent = parentElement;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparentElement = parentElement.parentElement;\n\t\t\t} while (parentElement);\n\t\t}\n\n\t\t// Always update the scroll top tracker if possible.\n\t\tif (scrollParent) {\n\t\t\tscrollParent.fastClickLastScrollTop = scrollParent.scrollTop;\n\t\t}\n\t};\n\n\n\t/**\n\t * @param {EventTarget} targetElement\n\t * @returns {Element|EventTarget}\n\t */\n\tFastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {\n\n\t\t// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.\n\t\tif (eventTarget.nodeType === Node.TEXT_NODE) {\n\t\t\treturn eventTarget.parentNode;\n\t\t}\n\n\t\treturn eventTarget;\n\t};\n\n\n\t/**\n\t * On touch start, record the position and scroll offset.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchStart = function(event) {\n\t\tvar targetElement, touch, selection;\n\n\t\t// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).\n\t\tif (event.targetTouches.length > 1) {\n\t\t\treturn true;\n\t\t}\n\n\t\ttargetElement = this.getTargetElementFromEventTarget(event.target);\n\t\ttouch = event.targetTouches[0];\n\n\t\tif (deviceIsIOS) {\n\n\t\t\t// Only trusted events will deselect text on iOS (issue #49)\n\t\t\tselection = window.getSelection();\n\t\t\tif (selection.rangeCount && !selection.isCollapsed) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!deviceIsIOS4) {\n\n\t\t\t\t// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):\n\t\t\t\t// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched\n\t\t\t\t// with the same identifier as the touch event that previously triggered the click that triggered the alert.\n\t\t\t\t// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an\n\t\t\t\t// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.\n\t\t\t\t// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,\n\t\t\t\t// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,\n\t\t\t\t// random integers, it's safe to to continue if the identifier is 0 here.\n\t\t\t\tif (touch.identifier && touch.identifier === this.lastTouchIdentifier) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastTouchIdentifier = touch.identifier;\n\n\t\t\t\t// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:\n\t\t\t\t// 1) the user does a fling scroll on the scrollable layer\n\t\t\t\t// 2) the user stops the fling scroll with another tap\n\t\t\t\t// then the event.target of the last 'touchend' event will be the element that was under the user's finger\n\t\t\t\t// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check\n\t\t\t\t// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).\n\t\t\t\tthis.updateScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackingClick = true;\n\t\tthis.trackingClickStart = event.timeStamp;\n\t\tthis.targetElement = targetElement;\n\n\t\tthis.touchStartX = touch.pageX;\n\t\tthis.touchStartY = touch.pageY;\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.touchHasMoved = function(event) {\n\t\tvar touch = event.changedTouches[0], boundary = this.touchBoundary;\n\n\t\tif (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Update the last position.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchMove = function(event) {\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the touch has moved, cancel the click tracking\n\t\tif (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {\n\t\t\tthis.trackingClick = false;\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Attempt to find the labelled control for the given label element.\n\t *\n\t * @param {EventTarget|HTMLLabelElement} labelElement\n\t * @returns {Element|null}\n\t */\n\tFastClick.prototype.findControl = function(labelElement) {\n\n\t\t// Fast path for newer browsers supporting the HTML5 control attribute\n\t\tif (labelElement.control !== undefined) {\n\t\t\treturn labelElement.control;\n\t\t}\n\n\t\t// All browsers under test that support touch events also support the HTML5 htmlFor attribute\n\t\tif (labelElement.htmlFor) {\n\t\t\treturn document.getElementById(labelElement.htmlFor);\n\t\t}\n\n\t\t// If no for attribute exists, attempt to retrieve the first labellable descendant element\n\t\t// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label\n\t\treturn labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');\n\t};\n\n\n\t/**\n\t * On touch end, determine whether to send a click event at once.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchEnd = function(event) {\n\t\tvar forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;\n\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tthis.cancelNextClick = true;\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Reset to prevent wrong click cancel on input (issue #156).\n\t\tthis.cancelNextClick = false;\n\n\t\tthis.lastClickTime = event.timeStamp;\n\n\t\ttrackingClickStart = this.trackingClickStart;\n\t\tthis.trackingClick = false;\n\t\tthis.trackingClickStart = 0;\n\n\t\t// On some iOS devices, the targetElement supplied with the event is invalid if the layer\n\t\t// is performing a transition or scroll, and has to be re-detected manually. Note that\n\t\t// for this to function correctly, it must be called *after* the event target is checked!\n\t\t// See issue #57; also filed as rdar://13048589 .\n\t\tif (deviceIsIOSWithBadTarget) {\n\t\t\ttouch = event.changedTouches[0];\n\n\t\t\t// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null\n\t\t\ttargetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;\n\t\t\ttargetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;\n\t\t}\n\n\t\ttargetTagName = targetElement.tagName.toLowerCase();\n\t\tif (targetTagName === 'label') {\n\t\t\tforElement = this.findControl(targetElement);\n\t\t\tif (forElement) {\n\t\t\t\tthis.focus(targetElement);\n\t\t\t\tif (deviceIsAndroid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\ttargetElement = forElement;\n\t\t\t}\n\t\t} else if (this.needsFocus(targetElement)) {\n\n\t\t\t// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.\n\t\t\t// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).\n\t\t\tif ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.focus(targetElement);\n\t\t\tthis.sendClick(targetElement, event);\n\n\t\t\t// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.\n\t\t\t// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)\n\t\t\tif (!deviceIsIOS || targetTagName !== 'select') {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (deviceIsIOS && !deviceIsIOS4) {\n\n\t\t\t// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled\n\t\t\t// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).\n\t\t\tscrollParent = targetElement.fastClickScrollParent;\n\t\t\tif (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Prevent the actual click from going though - unless the target node is marked as requiring\n\t\t// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.\n\t\tif (!this.needsClick(targetElement)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendClick(targetElement, event);\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * On touch cancel, stop tracking the click.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.onTouchCancel = function() {\n\t\tthis.trackingClick = false;\n\t\tthis.targetElement = null;\n\t};\n\n\n\t/**\n\t * Determine mouse events which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onMouse = function(event) {\n\n\t\t// If a target element was never set (because a touch event was never fired) allow the event\n\t\tif (!this.targetElement) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (event.forwardedTouchEvent) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Programmatically generated events targeting a specific element should be permitted\n\t\tif (!event.cancelable) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Derive and check the target element to see whether the mouse event needs to be permitted;\n\t\t// unless explicitly enabled, prevent non-touch click events from triggering actions,\n\t\t// to prevent ghost/doubleclicks.\n\t\tif (!this.needsClick(this.targetElement) || this.cancelNextClick) {\n\n\t\t\t// Prevent any user-added listeners declared on FastClick element from being fired.\n\t\t\tif (event.stopImmediatePropagation) {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t} else {\n\n\t\t\t\t// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t\t\tevent.propagationStopped = true;\n\t\t\t}\n\n\t\t\t// Cancel the event\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the mouse event is permitted, return true for the action to go through.\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * On actual clicks, determine whether this is a touch-generated click, a click action occurring\n\t * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or\n\t * an actual click which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onClick = function(event) {\n\t\tvar permitted;\n\n\t\t// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.\n\t\tif (this.trackingClick) {\n\t\t\tthis.targetElement = null;\n\t\t\tthis.trackingClick = false;\n\t\t\treturn true;\n\t\t}\n\n\t\t// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.\n\t\tif (event.target.type === 'submit' && event.detail === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tpermitted = this.onMouse(event);\n\n\t\t// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.\n\t\tif (!permitted) {\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\t// If clicks are permitted, return true for the action to go through.\n\t\treturn permitted;\n\t};\n\n\n\t/**\n\t * Remove all FastClick's event listeners.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.destroy = function() {\n\t\tvar layer = this.layer;\n\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.removeEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.removeEventListener('click', this.onClick, true);\n\t\tlayer.removeEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.removeEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.removeEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.removeEventListener('touchcancel', this.onTouchCancel, false);\n\t};\n\n\n\t/**\n\t * Check whether FastClick is needed.\n\t *\n\t * @param {Element} layer The layer to listen on\n\t */\n\tFastClick.notNeeded = function(layer) {\n\t\tvar metaViewport;\n\t\tvar chromeVersion;\n\t\tvar blackberryVersion;\n\t\tvar firefoxVersion;\n\n\t\t// Devices that don't support touch don't need FastClick\n\t\tif (typeof window.ontouchstart === 'undefined') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Chrome version - zero for other browsers\n\t\tchromeVersion = +(/Chrome\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (chromeVersion) {\n\n\t\t\tif (deviceIsAndroid) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// Chrome on Android with user-scalable=\"no\" doesn't need FastClick (issue #89)\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Chrome 32 and above with width=device-width or less don't need FastClick\n\t\t\t\t\tif (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Chrome desktop doesn't need FastClick (issue #15)\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (deviceIsBlackBerry10) {\n\t\t\tblackberryVersion = navigator.userAgent.match(/Version\\/([0-9]*)\\.([0-9]*)/);\n\n\t\t\t// BlackBerry 10.3+ does not require Fastclick library.\n\t\t\t// https://github.com/ftlabs/fastclick/issues/251\n\t\t\tif (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// user-scalable=no eliminates click delay.\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// width=device-width (or less than device-width) eliminates click delay.\n\t\t\t\t\tif (document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)\n\t\tif (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Firefox version - zero for other browsers\n\t\tfirefoxVersion = +(/Firefox\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (firefoxVersion >= 27) {\n\t\t\t// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896\n\n\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\t\t\tif (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version\n\t\t// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx\n\t\tif (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Factory method for creating a FastClick object\n\t *\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tFastClick.attach = function(layer, options) {\n\t\treturn new FastClick(layer, options);\n\t};\n\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(function() {\n\t\t\treturn FastClick;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = FastClick.attach;\n\t\tmodule.exports.FastClick = FastClick;\n\t} else {\n\t\twindow.FastClick = FastClick;\n\t}\n}());\n","/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n *\n * Version: 1.3.3\n *\n */\n(function ($) {\n\n $.fn.extend({\n slimScroll: function (options) {\n\n var defaults = {\n // width in pixels of the visible scroll area\n width: 'auto',\n // height in pixels of the visible scroll area\n height: '250px',\n // width in pixels of the scrollbar and rail\n size: '7px',\n // scrollbar color, accepts any hex/color value\n color: '#000',\n // scrollbar position - left/right\n position: 'right',\n // distance in pixels between the side edge and the scrollbar\n distance: '1px',\n // default scroll position on load - top / bottom / $('selector')\n start: 'top',\n // sets scrollbar opacity\n opacity: .4,\n // enables always-on mode for the scrollbar\n alwaysVisible: false,\n // check if we should hide the scrollbar when user is hovering over\n disableFadeOut: false,\n // sets visibility of the rail\n railVisible: false,\n // sets rail color\n railColor: '#333',\n // sets rail opacity\n railOpacity: .2,\n // whether we should use jQuery UI Draggable to enable bar dragging\n railDraggable: true,\n // defautlt CSS class of the slimscroll rail\n railClass: 'slimScrollRail',\n // defautlt CSS class of the slimscroll bar\n barClass: 'slimScrollBar',\n // defautlt CSS class of the slimscroll wrapper\n wrapperClass: 'slimScrollDiv',\n // check if mousewheel should scroll the window if we reach top/bottom\n allowPageScroll: false,\n // scroll amount applied to each mouse wheel step\n wheelStep: 20,\n // scroll amount applied when user is using gestures\n touchScrollStep: 200,\n // sets border radius\n borderRadius: '7px',\n // sets border radius of the rail\n railBorderRadius: '7px'\n };\n\n var o = $.extend(defaults, options);\n\n // do it for every element that matches selector\n this.each(function () {\n\n var isOverPanel, isOverBar, isDragg, queueHide, touchDif,\n barHeight, percentScroll, lastScroll,\n divS = '
                                ',\n minBarHeight = 30,\n releaseScroll = false;\n\n // used in event handlers and for better minification\n var me = $(this);\n\n // ensure we are not binding it again\n if (me.parent().hasClass(o.wrapperClass))\n {\n // start from last bar position\n var offset = me.scrollTop();\n\n // find bar and rail\n bar = me.parent().find('.' + o.barClass);\n rail = me.parent().find('.' + o.railClass);\n\n getBarHeight();\n\n // check if we should scroll existing instance\n if ($.isPlainObject(options))\n {\n // Pass height: auto to an existing slimscroll object to force a resize after contents have changed\n if ('height' in options && options.height == 'auto') {\n me.parent().css('height', 'auto');\n me.css('height', 'auto');\n var height = me.parent().parent().height();\n me.parent().css('height', height);\n me.css('height', height);\n }\n\n if ('scrollTo' in options)\n {\n // jump to a static point\n offset = parseInt(o.scrollTo);\n }\n else if ('scrollBy' in options)\n {\n // jump by value pixels\n offset += parseInt(o.scrollBy);\n }\n else if ('destroy' in options)\n {\n // remove slimscroll elements\n bar.remove();\n rail.remove();\n me.unwrap();\n return;\n }\n\n // scroll content by the given offset\n scrollContent(offset, false, true);\n }\n\n return;\n }\n else if ($.isPlainObject(options))\n {\n if ('destroy' in options)\n {\n return;\n }\n }\n\n // optionally set height to the parent's height\n o.height = (o.height == 'auto') ? me.parent().height() : o.height;\n\n // wrap content\n var wrapper = $(divS)\n .addClass(o.wrapperClass)\n .css({\n position: 'relative',\n overflow: 'hidden',\n width: o.width,\n height: o.height\n });\n\n // update style for the div\n me.css({\n overflow: 'hidden',\n width: o.width,\n height: o.height,\n //Fix for IE10\n \"-ms-touch-action\": \"none\"\n });\n\n // create scrollbar rail\n var rail = $(divS)\n .addClass(o.railClass)\n .css({\n width: o.size,\n height: '100%',\n position: 'absolute',\n top: 0,\n display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none',\n 'border-radius': o.railBorderRadius,\n background: o.railColor,\n opacity: o.railOpacity,\n zIndex: 90\n });\n\n // create scrollbar\n var bar = $(divS)\n .addClass(o.barClass)\n .css({\n background: o.color,\n width: o.size,\n position: 'absolute',\n top: 0,\n opacity: o.opacity,\n display: o.alwaysVisible ? 'block' : 'none',\n 'border-radius': o.borderRadius,\n BorderRadius: o.borderRadius,\n MozBorderRadius: o.borderRadius,\n WebkitBorderRadius: o.borderRadius,\n zIndex: 99\n });\n\n // set position\n var posCss = (o.position == 'right') ? {right: o.distance} : {left: o.distance};\n rail.css(posCss);\n bar.css(posCss);\n\n // wrap it\n me.wrap(wrapper);\n\n // append to parent div\n me.parent().append(bar);\n me.parent().append(rail);\n\n // make it draggable and no longer dependent on the jqueryUI\n if (o.railDraggable) {\n bar.bind(\"mousedown\", function (e) {\n var $doc = $(document);\n isDragg = true;\n t = parseFloat(bar.css('top'));\n pageY = e.pageY;\n\n $doc.bind(\"mousemove.slimscroll\", function (e) {\n currTop = t + e.pageY - pageY;\n bar.css('top', currTop);\n scrollContent(0, bar.position().top, false);// scroll content\n });\n\n $doc.bind(\"mouseup.slimscroll\", function (e) {\n isDragg = false;\n hideBar();\n $doc.unbind('.slimscroll');\n });\n return false;\n }).bind(\"selectstart.slimscroll\", function (e) {\n e.stopPropagation();\n e.preventDefault();\n return false;\n });\n }\n\n // on rail over\n rail.hover(function () {\n showBar();\n }, function () {\n hideBar();\n });\n\n // on bar over\n bar.hover(function () {\n isOverBar = true;\n }, function () {\n isOverBar = false;\n });\n\n // show on parent mouseover\n me.hover(function () {\n isOverPanel = true;\n showBar();\n hideBar();\n }, function () {\n isOverPanel = false;\n hideBar();\n });\n\n if (window.navigator.msPointerEnabled) { \n // support for mobile\n me.bind('MSPointerDown', function (e, b) {\n if (e.originalEvent.targetTouches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.targetTouches[0].pageY;\n }\n });\n\n me.bind('MSPointerMove', function (e) {\n // prevent scrolling the page if necessary\n e.originalEvent.preventDefault();\n if (e.originalEvent.targetTouches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.targetTouches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.targetTouches[0].pageY;\n \n }\n });\n } else {\n // support for mobile\n me.bind('touchstart', function (e, b) {\n if (e.originalEvent.touches.length)\n {\n // record where touch started\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n\n me.bind('touchmove', function (e) {\n // prevent scrolling the page if necessary\n if (!releaseScroll)\n {\n e.originalEvent.preventDefault();\n }\n if (e.originalEvent.touches.length)\n {\n // see how far user swiped\n var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep;\n // scroll content\n scrollContent(diff, true);\n touchDif = e.originalEvent.touches[0].pageY;\n }\n });\n }\n\n // set up initial height\n getBarHeight();\n\n // check start position\n if (o.start === 'bottom')\n {\n // scroll content to bottom\n bar.css({top: me.outerHeight() - bar.outerHeight()});\n scrollContent(0, true);\n }\n else if (o.start !== 'top')\n {\n // assume jQuery selector\n scrollContent($(o.start).position().top, null, true);\n\n // make sure bar stays hidden\n if (!o.alwaysVisible) {\n bar.hide();\n }\n }\n\n // attach scroll events\n attachWheel();\n\n function _onWheel(e)\n {\n // use mouse wheel only when mouse is over\n if (!isOverPanel) {\n return;\n }\n\n var e = e || window.event;\n\n var delta = 0;\n if (e.wheelDelta) {\n delta = -e.wheelDelta / 120;\n }\n if (e.detail) {\n delta = e.detail / 3;\n }\n\n var target = e.target || e.srcTarget || e.srcElement;\n if ($(target).closest('.' + o.wrapperClass).is(me.parent())) {\n // scroll content\n scrollContent(delta, true);\n }\n\n // stop window scroll\n if (e.preventDefault && !releaseScroll) {\n e.preventDefault();\n }\n if (!releaseScroll) {\n e.returnValue = false;\n }\n }\n\n function scrollContent(y, isWheel, isJump)\n {\n releaseScroll = false;\n var delta = y;\n var maxTop = me.outerHeight() - bar.outerHeight();\n\n if (isWheel)\n {\n // move bar with mouse wheel\n delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight();\n\n // move bar, make sure it doesn't go out\n delta = Math.min(Math.max(delta, 0), maxTop);\n\n // if scrolling down, make sure a fractional change to the\n // scroll position isn't rounded away when the scrollbar's CSS is set\n // this flooring of delta would happened automatically when\n // bar.css is set below, but we floor here for clarity\n delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta);\n\n // scroll the scrollbar\n bar.css({top: delta + 'px'});\n }\n\n // calculate actual scroll amount\n percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight());\n delta = percentScroll * (me[0].scrollHeight - me.outerHeight());\n\n if (isJump)\n {\n delta = y;\n var offsetTop = delta / me[0].scrollHeight * me.outerHeight();\n offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);\n bar.css({top: offsetTop + 'px'});\n }\n\n // scroll content\n me.scrollTop(delta);\n\n // fire scrolling event\n me.trigger('slimscrolling', ~~delta);\n\n // ensure bar is visible\n showBar();\n\n // trigger hide when scroll is stopped\n hideBar();\n }\n\n function attachWheel()\n {\n if (window.addEventListener)\n {\n this.addEventListener('DOMMouseScroll', _onWheel, false);\n this.addEventListener('mousewheel', _onWheel, false);\n }\n else\n {\n document.attachEvent(\"onmousewheel\", _onWheel)\n }\n }\n\n function getBarHeight()\n {\n // calculate scrollbar height and make sure it is not too small\n barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight);\n bar.css({height: barHeight + 'px'});\n\n // hide scrollbar if content is not long enough\n var display = barHeight == me.outerHeight() ? 'none' : 'block';\n bar.css({display: display});\n }\n\n function showBar()\n {\n // recalculate bar height\n getBarHeight();\n clearTimeout(queueHide);\n\n // when bar reached top or bottom\n if (percentScroll == ~~percentScroll)\n {\n //release wheel\n releaseScroll = o.allowPageScroll;\n\n // publish approporiate event\n if (lastScroll != percentScroll)\n {\n var msg = (~~percentScroll == 0) ? 'top' : 'bottom';\n me.trigger('slimscroll', msg);\n }\n }\n else\n {\n releaseScroll = false;\n }\n lastScroll = percentScroll;\n\n // show only when required\n if (barHeight >= me.outerHeight()) {\n //allow window scroll\n releaseScroll = true;\n return;\n }\n bar.stop(true, true).fadeIn('fast');\n if (o.railVisible) {\n rail.stop(true, true).fadeIn('fast');\n }\n }\n\n function hideBar()\n {\n // only hide when options allow it\n if (!o.alwaysVisible)\n {\n queueHide = setTimeout(function () {\n if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg)\n {\n bar.fadeOut('slow');\n rail.fadeOut('slow');\n }\n }, 1000);\n }\n }\n\n });\n\n // maintain chainability\n return this;\n }\n });\n\n $.fn.extend({\n slimscroll: $.fn.slimScroll\n });\n\n})(jQuery);\n","/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){\"function\"==typeof define&&define.amd?define([\"jquery\"],a):a(\"object\"==typeof exports?require(\"jquery\"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split(\"/\"),o=s.map,p=o&&o[\"*\"]||{};if(a&&\".\"===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split(\"/\"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,\"\")),a=n.concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join(\"/\")}else 0===a.indexOf(\"./\")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split(\"/\"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join(\"/\"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join(\"/\")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join(\"/\"))}return a}function g(a,c){return function(){return n.apply(b,v.call(arguments,0).concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error(\"No \"+a);return q[a]}function k(a){var b,c=a?a.indexOf(\"!\"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+\"!\"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return\"undefined\"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:\"\",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,\"undefined\"===v||\"function\"===v){for(c=!c.length&&d.length?[\"require\",\"exports\",\"module\"]:c,n=0;n0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;hc;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b=\"\",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split(\"-\"),d=a;if(1!==c.length){for(var e=0;e\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\"};return\"string\"!=typeof a?a:String(a).replace(/[&<>\"'\\/\\\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if(\"1.7\"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define(\"select2/results\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
                                  ');return this.options.get(\"multiple\")&&b.attr(\"aria-multiselectable\",\"true\"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var d=a('
                                • '),e=this.options.get(\"translations\").get(b.message);d.append(c(e(b.args))),this.$results.append(d)},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger(\"results:message\",{message:\"noResults\"}));a.results=this.sort(a.results);for(var c=0;c-1?b.attr(\"aria-selected\",\"true\"):b.attr(\"aria-selected\",\"false\")});var f=e.filter(\"[aria-selected=true]\");f.length>0?f.first().trigger(\"mouseenter\"):e.first().trigger(\"mouseenter\")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get(\"translations\").get(\"searching\"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=\" loading-results\",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(\".loading-results\").remove()},c.prototype.option=function(b){var c=document.createElement(\"li\");c.className=\"select2-results__option\";var d={role:\"treeitem\",\"aria-selected\":\"false\"};b.disabled&&(delete d[\"aria-selected\"],d[\"aria-disabled\"]=\"true\"),null==b.id&&delete d[\"aria-selected\"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role=\"group\",d[\"aria-label\"]=b.text,delete d[\"aria-selected\"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement(\"strong\");h.className=\"select2-results__group\";{a(h)}this.template(b,h);for(var i=[],j=0;j\",{\"class\":\"select2-results__options select2-results__options--nested\"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,\"data\",b),c},c.prototype.bind=function(b){var c=this,d=b.id+\"-results\";this.$results.attr(\"id\",d),b.on(\"results:all\",function(a){c.clear(),c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"results:append\",function(a){c.append(a.data),b.isOpen()&&c.setClasses()}),b.on(\"query\",function(a){c.showLoading(a)}),b.on(\"select\",function(){b.isOpen()&&c.setClasses()}),b.on(\"unselect\",function(){b.isOpen()&&c.setClasses()}),b.on(\"open\",function(){c.$results.attr(\"aria-expanded\",\"true\"),c.$results.attr(\"aria-hidden\",\"false\"),c.setClasses(),c.ensureHighlightVisible()}),b.on(\"close\",function(){c.$results.attr(\"aria-expanded\",\"false\"),c.$results.attr(\"aria-hidden\",\"true\"),c.$results.removeAttr(\"aria-activedescendant\")}),b.on(\"results:toggle\",function(){var a=c.getHighlightedResults();0!==a.length&&a.trigger(\"mouseup\")}),b.on(\"results:select\",function(){var a=c.getHighlightedResults();if(0!==a.length){var b=a.data(\"data\");\"true\"==a.attr(\"aria-selected\")?c.trigger(\"close\"):c.trigger(\"select\",{data:b})}}),b.on(\"results:previous\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a);if(0!==d){var e=d-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top,h=f.offset().top,i=c.$results.scrollTop()+(h-g);0===e?c.$results.scrollTop(0):0>h-g&&c.$results.scrollTop(i)}}),b.on(\"results:next\",function(){var a=c.getHighlightedResults(),b=c.$results.find(\"[aria-selected]\"),d=b.index(a),e=d+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger(\"mouseenter\");var g=c.$results.offset().top+c.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=c.$results.scrollTop()+h-g;0===e?c.$results.scrollTop(0):h>g&&c.$results.scrollTop(i)}}),b.on(\"results:focus\",function(a){a.element.addClass(\"select2-results__option--highlighted\")}),b.on(\"results:message\",function(a){c.displayMessage(a)}),a.fn.mousewheel&&this.$results.on(\"mousewheel\",function(a){var b=c.$results.scrollTop(),d=c.$results.get(0).scrollHeight-c.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&d<=c.$results.height();e?(c.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(c.$results.scrollTop(c.$results.get(0).scrollHeight-c.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on(\"mouseup\",\".select2-results__option[aria-selected]\",function(b){var d=a(this),e=d.data(\"data\");return\"true\"===d.attr(\"aria-selected\")?void(c.options.get(\"multiple\")?c.trigger(\"unselect\",{originalEvent:b,data:e}):c.trigger(\"close\")):void c.trigger(\"select\",{originalEvent:b,data:e})}),this.$results.on(\"mouseenter\",\".select2-results__option[aria-selected]\",function(){var b=a(this).data(\"data\");c.getHighlightedResults().removeClass(\"select2-results__option--highlighted\"),c.trigger(\"results:focus\",{data:b,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(\".select2-results__option--highlighted\");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find(\"[aria-selected]\"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get(\"templateResult\"),e=this.options.get(\"escapeMarkup\"),f=d(b);null==f?c.style.display=\"none\":\"string\"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define(\"select2/keys\",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define(\"select2/selection/base\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('');return this._tabindex=0,null!=this.$element.data(\"old-tabindex\")?this._tabindex=this.$element.data(\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),b.attr(\"title\",this.$element.attr(\"title\")),b.attr(\"tabindex\",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a){var b=this,d=(a.id+\"-container\",a.id+\"-results\");this.container=a,this.$selection.on(\"focus\",function(a){b.trigger(\"focus\",a)}),this.$selection.on(\"blur\",function(a){b.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",function(a){b.trigger(\"keypress\",a),a.which===c.SPACE&&a.preventDefault()}),a.on(\"results:focus\",function(a){b.$selection.attr(\"aria-activedescendant\",a.data._resultId)}),a.on(\"selection:update\",function(a){b.update(a.data)}),a.on(\"open\",function(){b.$selection.attr(\"aria-expanded\",\"true\"),b.$selection.attr(\"aria-owns\",d),b._attachCloseHandler(a)}),a.on(\"close\",function(){b.$selection.attr(\"aria-expanded\",\"false\"),b.$selection.removeAttr(\"aria-activedescendant\"),b.$selection.removeAttr(\"aria-owns\"),b.$selection.focus(),b._detachCloseHandler(a)}),a.on(\"enable\",function(){b.$selection.attr(\"tabindex\",b._tabindex)}),a.on(\"disable\",function(){b.$selection.attr(\"tabindex\",\"-1\")})},d.prototype._attachCloseHandler=function(b){a(document.body).on(\"mousedown.select2.\"+b.id,function(b){var c=a(b.target),d=c.closest(\".select2\"),e=a(\".select2.select2-container--open\");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data(\"element\");c.select2(\"close\")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off(\"mousedown.select2.\"+b.id)},d.prototype.position=function(a,b){var c=b.find(\".selection\");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(){throw new Error(\"The `update` method must be defined in child classes.\")},d}),b.define(\"select2/selection/single\",[\"jquery\",\"./base\",\"../utils\",\"../keys\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--single\"),a.html(''),a},d.prototype.bind=function(a){var b=this;d.__super__.bind.apply(this,arguments);var c=a.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",c),this.$selection.attr(\"aria-labelledby\",c),this.$selection.on(\"mousedown\",function(a){1===a.which&&b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"focus\",function(){}),this.$selection.on(\"blur\",function(){}),a.on(\"selection:update\",function(a){b.update(a.data)})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){return a(\"\")},d.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.display(b),d=this.$selection.find(\".select2-selection__rendered\");d.empty().append(c),d.prop(\"title\",b.title||b.text)},d}),b.define(\"select2/selection/multiple\",[\"jquery\",\"./base\",\"../utils\"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass(\"select2-selection--multiple\"),a.html('
                                    '),a},d.prototype.bind=function(){var b=this;d.__super__.bind.apply(this,arguments),this.$selection.on(\"click\",function(a){b.trigger(\"toggle\",{originalEvent:a})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(c){var d=a(this),e=d.parent(),f=e.data(\"data\");b.trigger(\"unselect\",{originalEvent:c,data:f})})},d.prototype.clear=function(){this.$selection.find(\".select2-selection__rendered\").empty()},d.prototype.display=function(a){var b=this.options.get(\"templateSelection\"),c=this.options.get(\"escapeMarkup\");return c(b(a))},d.prototype.selectionContainer=function(){var b=a('
                                  • ×
                                  • ');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(\".select2-selection__rendered\").append(e)},a}),b.define(\"select2/selection/allowClear\",[\"jquery\",\"../keys\"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get(\"debug\")&&window.console&&console.error&&console.error(\"Select2: The `allowClear` option should be used in combination with the `placeholder` option.\"),this.$selection.on(\"mousedown\",\".select2-selection__clear\",function(a){d._handleClear(a)}),b.on(\"keypress\",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get(\"disabled\")){var c=this.$selection.find(\".select2-selection__clear\");if(0!==c.length){b.stopPropagation();for(var d=c.data(\"data\"),e=0;e0||0===c.length)){var d=a('×');d.data(\"data\",c),this.$selection.find(\".select2-selection__rendered\").prepend(d)}},c}),b.define(\"select2/selection/search\",[\"jquery\",\"../utils\",\"../keys\"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('');this.$searchContainer=c,this.$search=c.find(\"input\");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus()}),b.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\"),e.$search.focus()}),b.on(\"enable\",function(){e.$search.prop(\"disabled\",!1)}),b.on(\"disable\",function(){e.$search.prop(\"disabled\",!0)}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(a){e.trigger(\"focus\",a)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(a){e.trigger(\"blur\",a)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(a){a.stopPropagation(),e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&\"\"===e.$search.val()){var d=e.$searchContainer.prev(\".select2-selection__choice\");if(d.length>0){var f=d.data(\"data\");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on(\"input\",\".select2-search--inline\",function(){e.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input\",\".select2-search--inline\",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr(\"placeholder\",b.text)},d.prototype.update=function(a,b){this.$search.attr(\"placeholder\",\"\"),a.call(this,b),this.$selection.find(\".select2-selection__rendered\").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger(\"unselect\",{data:b}),this.trigger(\"open\"),this.$search.val(b.text+\" \")},d.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var a=\"\";if(\"\"!==this.$search.attr(\"placeholder\"))a=this.$selection.find(\".select2-selection__rendered\").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+\"em\"}this.$search.css(\"width\",a)},d}),b.define(\"select2/selection/eventRelay\",[\"jquery\"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\"],g=[\"opening\",\"closing\",\"selecting\",\"unselecting\"];b.call(this,c,d),c.on(\"*\",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event(\"select2:\"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define(\"select2/translation\",[\"jquery\",\"require\"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define(\"select2/diacritics\",[],function(){var a={\"Ⓐ\":\"A\",\"A\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"B\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"C\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"D\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"DZ\":\"DZ\",\"DŽ\":\"DZ\",\"Dz\":\"Dz\",\"Dž\":\"Dz\",\"Ⓔ\":\"E\",\"E\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"F\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"G\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"H\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"I\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"J\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"K\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"L\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"LJ\":\"LJ\",\"Lj\":\"Lj\",\"Ⓜ\":\"M\",\"M\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"N\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"NJ\":\"NJ\",\"Nj\":\"Nj\",\"Ⓞ\":\"O\",\"O\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"P\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Q\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"R\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"S\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"T\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"U\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"V\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"W\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"X\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Y\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Z\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"a\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"b\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"c\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"d\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"dz\":\"dz\",\"dž\":\"dz\",\"ⓔ\":\"e\",\"e\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"f\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"g\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"h\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"i\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"j\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"k\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"l\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"lj\":\"lj\",\"ⓜ\":\"m\",\"m\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"n\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ʼn\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"nj\":\"nj\",\"ⓞ\":\"o\",\"o\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"p\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"q\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"r\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"s\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"t\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"u\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"v\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"w\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"x\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"y\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"z\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ω\":\"ω\",\"ς\":\"σ\"};return a}),b.define(\"select2/data/base\",[\"../utils\"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error(\"The `current` method must be defined in child classes.\")},b.prototype.query=function(){throw new Error(\"The `query` method must be defined in child classes.\")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+\"-result-\";return d+=a.generateChars(4),d+=null!=c.id?\"-\"+c.id.toString():\"-\"+a.generateChars(4)},b}),b.define(\"select2/data/select\",[\"./base\",\"../utils\",\"jquery\"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(\":selected\").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is(\"option\"))return a.element.selected=!0,void this.$element.trigger(\"change\");if(this.$element.prop(\"multiple\"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define(\"select2/data/ajax\",[\"./array\",\"../utils\",\"jquery\"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get(\"ajax\")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get(\"debug\")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error(\"Select2: The AJAX results did not return an array in the `results` key of the response.\")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:\"GET\"},this.ajaxOptions);\"function\"==typeof f.url&&(f.url=f.url(a)),\"function\"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&\"\"!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define(\"select2/data/tags\",[\"jquery\"],function(a){function b(b,c,d){var e=d.get(\"tags\"),f=d.get(\"createTag\");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g0&&b.term.length>this.maximumInputLength?void this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define(\"select2/data/maximumSelectionLength\",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get(\"maximumSelectionLength\"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define(\"select2/dropdown\",[\"jquery\",\"./utils\"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define(\"select2/dropdown/search\",[\"jquery\",\"../utils\"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('');return this.$searchContainer=d,this.$search=d.find(\"input\"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on(\"keydown\",function(a){e.trigger(\"keypress\",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on(\"input\",function(){a(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(a){e.handleSearch(a)}),c.on(\"open\",function(){e.$search.attr(\"tabindex\",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on(\"close\",function(){e.$search.attr(\"tabindex\",-1),e.$search.val(\"\")}),c.on(\"results:all\",function(a){if(null==a.query.term||\"\"===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass(\"select2-search--hide\"):e.$searchContainer.addClass(\"select2-search--hide\")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger(\"query\",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define(\"select2/dropdown/hidePlaceholder\",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get(\"placeholder\")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return\"string\"==typeof b&&(b={id:\"\",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define(\"select2/dropdown/infiniteScroll\",[\"jquery\"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on(\"query\",function(a){e.lastParams=a,e.loading=!0}),c.on(\"query:append\",function(a){e.lastParams=a,e.loading=!0}),this.$results.on(\"scroll\",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger(\"query:append\",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('
                                  • '),c=this.options.get(\"translations\").get(\"loadingMore\");return b.html(c(this.lastParams)),b},b}),b.define(\"select2/dropdown/attachBody\",[\"jquery\",\"../utils\"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get(\"dropdownParent\")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on(\"open\",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on(\"results:all\",function(){d._positionDropdown(),d._resizeDropdown()}),b.on(\"results:append\",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on(\"close\",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on(\"mousedown\",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr(\"class\",c.attr(\"class\")),b.removeClass(\"select2\"),b.addClass(\"select2-container--open\"),b.css({position:\"absolute\",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a(\"\"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c){var d=this,e=\"scroll.select2.\"+c.id,f=\"resize.select2.\"+c.id,g=\"orientationchange.select2.\"+c.id,h=this.$container.parents().filter(b.hasScroll);h.each(function(){a(this).data(\"select2-scroll-position\",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),h.on(e,function(){var b=a(this).data(\"select2-scroll-position\");a(this).scrollTop(b.y)}),a(window).on(e+\" \"+f+\" \"+g,function(){d._positionDropdown(),d._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c){var d=\"scroll.select2.\"+c.id,e=\"resize.select2.\"+c.id,f=\"orientationchange.select2.\"+c.id,g=this.$container.parents().filter(b.hasScroll);g.off(d),a(window).off(d+\" \"+e+\" \"+f)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass(\"select2-dropdown--above\"),d=this.$dropdown.hasClass(\"select2-dropdown--below\"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.topf.bottom+h.height,l={left:f.left,top:g.bottom};c||d||(e=\"below\"),k||!j||c?!j&&k&&c&&(e=\"below\"):e=\"above\",(\"above\"==e||c&&\"below\"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass(\"select2-dropdown--below select2-dropdown--above\").addClass(\"select2-dropdown--\"+e),this.$container.removeClass(\"select2-container--below select2-container--above\").addClass(\"select2-container--\"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){this.$dropdownContainer.width();var a={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(a.minWidth=a.width,a.width=\"auto\"),this.$dropdown.css(a)},c.prototype._showDropdown=function(){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define(\"select2/dropdown/minimumResultsForSearch\",[],function(){function a(b){for(var c=0,d=0;d0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+\"compat/query\");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+\"compat/initSelection\");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+\"compat/dropdownCss\");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+\"compat/containerCss\");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if(\"string\"==typeof l.language)if(l.language.indexOf(\"-\")>0){var H=l.language.split(\"-\"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push(\"en\");for(var K=l.language,L=0;L0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:\"./\",amdLanguageBase:\"./i18n/\",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:\"default\",width:\"resolve\"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define(\"select2/options\",[\"require\",\"jquery\",\"./defaults\",\"./utils\"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is(\"input\")){var f=a(this.get(\"amdBase\")+\"compat/inputData\");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=[\"select2\"];null==this.options.multiple&&(this.options.multiple=a.prop(\"multiple\")),null==this.options.disabled&&(this.options.disabled=a.prop(\"disabled\")),null==this.options.language&&(a.prop(\"lang\")?this.options.language=a.prop(\"lang\").toLowerCase():a.closest(\"[lang]\").prop(\"lang\")&&(this.options.language=a.closest(\"[lang]\").prop(\"lang\"))),null==this.options.dir&&(this.options.dir=a.prop(\"dir\")?a.prop(\"dir\"):a.closest(\"[dir]\").prop(\"dir\")?a.closest(\"[dir]\").prop(\"dir\"):\"ltr\"),a.prop(\"disabled\",this.options.disabled),a.prop(\"multiple\",this.options.multiple),a.data(\"select2Tags\")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags=\"true\"` attributes and will be removed in future versions of Select2.'),a.data(\"data\",a.data(\"select2Tags\")),a.data(\"tags\",!0)),a.data(\"ajaxUrl\")&&(this.options.debug&&window.console&&console.warn&&console.warn(\"Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2.\"),a.attr(\"ajax--url\",a.data(\"ajaxUrl\")),a.data(\"ajax--url\",a.data(\"ajaxUrl\")));var e={};e=b.fn.jquery&&\"1.\"==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define(\"select2/core\",[\"jquery\",\"./options\",\"./utils\",\"./keys\"],function(a,b,c,d){var e=function(a,c){null!=a.data(\"select2\")&&a.data(\"select2\").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr(\"tabindex\")||0;a.data(\"old-tabindex\",d),a.attr(\"tabindex\",\"-1\");var f=this.options.get(\"dataAdapter\");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get(\"selectionAdapter\");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get(\"dropdownAdapter\");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get(\"resultsAdapter\");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger(\"selection:update\",{data:a})}),a.addClass(\"select2-hidden-accessible\"),a.attr(\"aria-hidden\",\"true\"),this._syncAttributes(),a.data(\"select2\",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b=\"\";return b=null!=a.attr(\"id\")?a.attr(\"id\"):null!=a.attr(\"name\")?a.attr(\"name\")+\"-\"+c.generateChars(2):c.generateChars(4),b=\"select2-\"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get(\"width\"));null!=b&&a.css(\"width\",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if(\"resolve\"==b){var d=this._resolveWidth(a,\"style\");return null!=d?d:this._resolveWidth(a,\"element\")}if(\"element\"==b){var e=a.outerWidth(!1);return 0>=e?\"auto\":e+\"px\"}if(\"style\"==b){var f=a.attr(\"style\");if(\"string\"!=typeof f)return null;for(var g=f.split(\";\"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\\s/g,\"\"),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on(\"change.select2\",function(){b.dataAdapter.current(function(a){b.trigger(\"selection:update\",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent(\"onpropertychange\",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener(\"DOMAttrModified\",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=[\"toggle\"];this.selection.on(\"toggle\",function(){b.toggleDropdown()}),this.selection.on(\"*\",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on(\"*\",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on(\"open\",function(){a.$container.addClass(\"select2-container--open\")}),this.on(\"close\",function(){a.$container.removeClass(\"select2-container--open\")}),this.on(\"enable\",function(){a.$container.removeClass(\"select2-container--disabled\")}),this.on(\"disable\",function(){a.$container.addClass(\"select2-container--disabled\")}),this.on(\"focus\",function(){a.$container.addClass(\"select2-container--focus\")}),this.on(\"blur\",function(){a.$container.removeClass(\"select2-container--focus\")}),this.on(\"query\",function(b){a.isOpen()||a.trigger(\"open\"),this.dataAdapter.query(b,function(c){a.trigger(\"results:all\",{data:c,query:b})})}),this.on(\"query:append\",function(b){this.dataAdapter.query(b,function(c){a.trigger(\"results:append\",{data:c,query:b})})}),this.on(\"keypress\",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger(\"results:select\"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger(\"results:toggle\"),b.preventDefault()):c===d.UP?(a.trigger(\"results:previous\"),b.preventDefault()):c===d.DOWN?(a.trigger(\"results:next\"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set(\"disabled\",this.$element.prop(\"disabled\")),this.options.get(\"disabled\")?(this.isOpen()&&this.close(),this.trigger(\"disable\")):this.trigger(\"enable\")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:\"opening\",close:\"closing\",select:\"selecting\",unselect:\"unselecting\"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get(\"disabled\")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger(\"query\",{}),this.trigger(\"open\"))},e.prototype.close=function(){this.isOpen()&&this.trigger(\"close\")},e.prototype.isOpen=function(){return this.$container.hasClass(\"select2-container--open\")},e.prototype.enable=function(a){this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"enable\")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop(\"disabled\") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop(\"disabled\",b)},e.prototype.data=function(){this.options.get(\"debug\")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2(\"data\")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get(\"debug\")&&window.console&&console.warn&&console.warn('Select2: The `select2(\"val\")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger(\"change\")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent(\"onpropertychange\",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener(\"DOMAttrModified\",this._sync,!1),this._sync=null,this.$element.off(\".select2\"),this.$element.attr(\"tabindex\",this.$element.data(\"old-tabindex\")),this.$element.removeClass(\"select2-hidden-accessible\"),this.$element.attr(\"aria-hidden\",\"false\"),this.$element.removeData(\"select2\"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('');return b.attr(\"dir\",this.options.get(\"dir\")),this.$container=b,this.$container.addClass(\"select2-container--\"+this.options.get(\"theme\")),b.data(\"element\",this.$element),b},e}),b.define(\"select2/compat/utils\",[\"jquery\"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0===this.indexOf(\"select2-\")&&g.push(this)})),e=a.trim(c.attr(\"class\")),e&&(e=\"\"+e,a(e.split(/\\s+/)).each(function(){0!==this.indexOf(\"select2-\")&&(f=d(this),null!=f&&g.push(f))})),b.attr(\"class\",g.join(\" \"))}return{syncCssClasses:b}}),b.define(\"select2/compat/containerCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"containerCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptContainerCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"containerCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/dropdownCss\",[\"jquery\",\"./utils\"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get(\"dropdownCssClass\")||\"\";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get(\"adaptDropdownCssClass\");if(g=g||c,-1!==f.indexOf(\":all:\")){f=f.replace(\":all\",\"\");var h=g;g=function(a){var b=h(a);return null!=b?b+\" \"+a:a}}var i=this.options.get(\"dropdownCss\")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define(\"select2/compat/initSelection\",[\"jquery\"],function(a){function b(a,b,c){c.get(\"debug\")&&window.console&&console.warn&&console.warn(\"Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2\"),this.initSelection=c.get(\"initSelection\"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;return this._isInitialized?void b.call(this,c):void this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define(\"select2/compat/inputData\",[\"jquery\"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get(\"valueSeparator\")||\",\",\"hidden\"===b.prop(\"type\")&&c.get(\"debug\")&&console&&console.warn&&console.warn(\"Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `';\n }\n that.header.stateField = column.field;\n }\n if (column.radio) {\n text = '';\n that.header.stateField = column.field;\n that.options.singleSelect = true;\n }\n\n html.push(text);\n html.push('
                                    ');\n html.push('
                                    ');\n html.push('');\n html.push('');\n });\n html.push('');\n });\n\n this.$header.html(html.join(''));\n this.$header.find('th[data-field]').each(function (i) {\n $(this).data(visibleColumns[$(this).data('field')]);\n });\n this.$container.off('click', '.th-inner').on('click', '.th-inner', function (event) {\n if (that.options.sortable && $(this).parent().data().sortable) {\n that.onSort(event);\n }\n });\n\n this.$header.children().children().off('keypress').on('keypress', function (event) {\n if (that.options.sortable && $(this).data().sortable) {\n var code = event.keyCode || event.which;\n if (code == 13) { //Enter keycode\n that.onSort(event);\n }\n }\n });\n\n if (!this.options.showHeader || this.options.cardView) {\n this.$header.hide();\n this.$tableHeader.hide();\n this.$tableLoading.css('top', 0);\n } else {\n this.$header.show();\n this.$tableHeader.show();\n this.$tableLoading.css('top', this.$header.outerHeight() + 1);\n // Assign the correct sortable arrow\n this.getCaret();\n }\n\n this.$selectAll = this.$header.find('[name=\"btSelectAll\"]');\n this.$container.off('click', '[name=\"btSelectAll\"]')\n .on('click', '[name=\"btSelectAll\"]', function () {\n var checked = $(this).prop('checked');\n that[checked ? 'checkAll' : 'uncheckAll']();\n that.updateSelected();\n });\n };\n\n BootstrapTable.prototype.initFooter = function () {\n if (!this.options.showFooter || this.options.cardView) {\n this.$tableFooter.hide();\n } else {\n this.$tableFooter.show();\n }\n };\n\n /**\n * @param data\n * @param type: append / prepend\n */\n BootstrapTable.prototype.initData = function (data, type) {\n if (type === 'append') {\n this.data = this.data.concat(data);\n } else if (type === 'prepend') {\n this.data = [].concat(data).concat(this.data);\n } else {\n this.data = data || this.options.data;\n }\n\n // Fix #839 Records deleted when adding new row on filtered table\n if (type === 'append') {\n this.options.data = this.options.data.concat(data);\n } else if (type === 'prepend') {\n this.options.data = [].concat(data).concat(this.options.data);\n } else {\n this.options.data = this.data;\n }\n\n if (this.options.sidePagination === 'server') {\n return;\n }\n this.initSort();\n };\n\n BootstrapTable.prototype.initSort = function () {\n var that = this,\n name = this.options.sortName,\n order = this.options.sortOrder === 'desc' ? -1 : 1,\n index = $.inArray(this.options.sortName, this.header.fields);\n\n if (index !== -1) {\n this.data.sort(function (a, b) {\n if (that.header.sortNames[index]) {\n name = that.header.sortNames[index];\n }\n var aa = getItemField(a, name),\n bb = getItemField(b, name),\n value = calculateObjectValue(that.header, that.header.sorters[index], [aa, bb]);\n\n if (value !== undefined) {\n return order * value;\n }\n\n // Fix #161: undefined or null string sort bug.\n if (aa === undefined || aa === null) {\n aa = '';\n }\n if (bb === undefined || bb === null) {\n bb = '';\n }\n\n // IF both values are numeric, do a numeric comparison\n if ($.isNumeric(aa) && $.isNumeric(bb)) {\n // Convert numerical values form string to float.\n aa = parseFloat(aa);\n bb = parseFloat(bb);\n if (aa < bb) {\n return order * -1;\n }\n return order;\n }\n\n if (aa === bb) {\n return 0;\n }\n\n // If value is not a string, convert to string\n if (typeof aa !== 'string') {\n aa = aa.toString();\n }\n\n if (aa.localeCompare(bb) === -1) {\n return order * -1;\n }\n\n return order;\n });\n }\n };\n\n BootstrapTable.prototype.onSort = function (event) {\n var $this = event.type === \"keypress\" ? $(event.currentTarget) : $(event.currentTarget).parent(),\n $this_ = this.$header.find('th').eq($this.index());\n\n this.$header.add(this.$header_).find('span.order').remove();\n\n if (this.options.sortName === $this.data('field')) {\n this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';\n } else {\n this.options.sortName = $this.data('field');\n this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';\n }\n this.trigger('sort', this.options.sortName, this.options.sortOrder);\n\n $this.add($this_).data('order', this.options.sortOrder);\n\n // Assign the correct sortable arrow\n this.getCaret();\n\n if (this.options.sidePagination === 'server') {\n this.initServer(this.options.silentSort);\n return;\n }\n\n this.initSort();\n this.initBody();\n };\n\n BootstrapTable.prototype.initToolbar = function () {\n var that = this,\n html = [],\n timeoutId = 0,\n $keepOpen,\n $search,\n switchableCount = 0;\n\n this.$toolbar.html('');\n\n if (typeof this.options.toolbar === 'string' || typeof this.options.toolbar === 'object') {\n $(sprintf('
                                    ', this.options.toolbarAlign))\n .appendTo(this.$toolbar)\n .append($(this.options.toolbar));\n }\n\n // showColumns, showToggle, showRefresh\n html = [sprintf('
                                    ',\n this.options.buttonsAlign, this.options.buttonsAlign)];\n\n if (typeof this.options.icons === 'string') {\n this.options.icons = calculateObjectValue(null, this.options.icons);\n }\n\n if (this.options.showPaginationSwitch) {\n html.push(sprintf('');\n }\n\n if (this.options.showRefresh) {\n html.push(sprintf('');\n }\n\n if (this.options.showToggle) {\n html.push(sprintf('');\n }\n\n if (this.options.showColumns) {\n html.push(sprintf('
                                    ',\n this.options.formatColumns()),\n '',\n '
                                      ');\n\n $.each(this.columns, function (i, column) {\n if (column.radio || column.checkbox) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n var checked = column.visible ? ' checked=\"checked\"' : '';\n\n if (column.switchable) {\n html.push(sprintf('
                                    • ' +\n '' +\n '
                                    • ', column.field, i, checked, column.title));\n switchableCount++;\n }\n });\n html.push('
                                    ',\n '
                                    ');\n }\n\n html.push('
                                    ');\n\n // Fix #188: this.showToolbar is for extentions\n if (this.showToolbar || html.length > 2) {\n this.$toolbar.append(html.join(''));\n }\n\n if (this.options.showPaginationSwitch) {\n this.$toolbar.find('button[name=\"paginationSwitch\"]')\n .off('click').on('click', $.proxy(this.togglePagination, this));\n }\n\n if (this.options.showRefresh) {\n this.$toolbar.find('button[name=\"refresh\"]')\n .off('click').on('click', $.proxy(this.refresh, this));\n }\n\n if (this.options.showToggle) {\n this.$toolbar.find('button[name=\"toggle\"]')\n .off('click').on('click', function () {\n that.toggleView();\n });\n }\n\n if (this.options.showColumns) {\n $keepOpen = this.$toolbar.find('.keep-open');\n\n if (switchableCount <= this.options.minimumCountColumns) {\n $keepOpen.find('input').prop('disabled', true);\n }\n\n $keepOpen.find('li').off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n });\n $keepOpen.find('input').off('click').on('click', function () {\n var $this = $(this);\n\n that.toggleColumn(getFieldIndex(that.columns,\n $(this).data('field')), $this.prop('checked'), false);\n that.trigger('column-switch', $(this).data('field'), $this.prop('checked'));\n });\n }\n\n if (this.options.search) {\n html = [];\n html.push(\n '
                                    ',\n sprintf('',\n this.options.formatSearch()),\n '
                                    ');\n\n this.$toolbar.append(html.join(''));\n $search = this.$toolbar.find('.search input');\n $search.off('keyup drop').on('keyup drop', function (event) {\n clearTimeout(timeoutId); // doesn't matter if it's 0\n timeoutId = setTimeout(function () {\n that.onSearch(event);\n }, that.options.searchTimeOut);\n });\n }\n };\n\n BootstrapTable.prototype.onSearch = function (event) {\n var text = $.trim($(event.currentTarget).val());\n\n // trim search input\n if (this.options.trimOnSearch && $(event.currentTarget).val() !== text) {\n $(event.currentTarget).val(text);\n }\n\n if (text === this.searchText) {\n return;\n }\n this.searchText = text;\n\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n this.trigger('search', text);\n };\n\n BootstrapTable.prototype.initSearch = function () {\n var that = this;\n\n if (this.options.sidePagination !== 'server') {\n var s = this.searchText && this.searchText.toLowerCase();\n var f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns;\n\n // Check filter\n this.data = f ? $.grep(this.options.data, function (item, i) {\n for (var key in f) {\n if ($.isArray(f[key])) {\n if ($.inArray(item[key], f[key]) === -1) {\n return false;\n }\n } else if (item[key] !== f[key]) {\n return false;\n }\n }\n return true;\n }) : this.options.data;\n\n this.data = s ? $.grep(this.data, function (item, i) {\n for (var key in item) {\n key = $.isNumeric(key) ? parseInt(key, 10) : key;\n var value = item[key],\n column = that.columns[getFieldIndex(that.columns, key)],\n j = $.inArray(key, that.header.fields);\n\n // Fix #142: search use formated data\n if (column && column.searchFormatter) {\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n }\n\n var index = $.inArray(key, that.header.fields);\n if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) {\n if (that.options.strictSearch) {\n if ((value + '').toLowerCase() === s) {\n return true;\n }\n } else {\n if ((value + '').toLowerCase().indexOf(s) !== -1) {\n return true;\n }\n }\n }\n }\n return false;\n }) : this.data;\n }\n };\n\n BootstrapTable.prototype.initPagination = function () {\n if (!this.options.pagination) {\n this.$pagination.hide();\n return;\n } else {\n this.$pagination.show();\n }\n\n var that = this,\n html = [],\n $allSelected = false,\n i, from, to,\n $pageList,\n $first, $pre,\n $next, $last,\n $number,\n data = this.getData();\n\n if (this.options.sidePagination !== 'server') {\n this.options.totalRows = data.length;\n }\n\n this.totalPages = 0;\n if (this.options.totalRows) {\n if (this.options.pageSize === this.options.formatAllRows()) {\n this.options.pageSize = this.options.totalRows;\n $allSelected = true;\n } else if (this.options.pageSize === this.options.totalRows) {\n // Fix #667 Table with pagination,\n // multiple pages and a search that matches to one page throws exception\n var pageLst = typeof this.options.pageList === 'string' ?\n this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').toLowerCase().split(',') : this.options.pageList;\n if ($.inArray(this.options.formatAllRows().toLowerCase(), pageLst) > -1) {\n $allSelected = true;\n }\n }\n\n this.totalPages = ~~((this.options.totalRows - 1) / this.options.pageSize) + 1;\n\n this.options.totalPages = this.totalPages;\n }\n if (this.totalPages > 0 && this.options.pageNumber > this.totalPages) {\n this.options.pageNumber = this.totalPages;\n }\n\n this.pageFrom = (this.options.pageNumber - 1) * this.options.pageSize + 1;\n this.pageTo = this.options.pageNumber * this.options.pageSize;\n if (this.pageTo > this.options.totalRows) {\n this.pageTo = this.options.totalRows;\n }\n\n html.push(\n '
                                    ',\n '',\n this.options.onlyInfoPagination ? this.options.formatDetailPagination(this.options.totalRows) :\n this.options.formatShowingRows(this.pageFrom, this.pageTo, this.options.totalRows),\n '');\n\n if (!this.options.onlyInfoPagination) {\n html.push('');\n\n var pageNumber = [\n sprintf('',\n this.options.paginationVAlign === 'top' || this.options.paginationVAlign === 'both' ?\n 'dropdown' : 'dropup'),\n '',\n '
                                      '\n ],\n pageList = this.options.pageList;\n\n if (typeof this.options.pageList === 'string') {\n var list = this.options.pageList.replace('[', '').replace(']', '')\n .replace(/ /g, '').split(',');\n\n pageList = [];\n $.each(list, function (i, value) {\n pageList.push(value.toUpperCase() === that.options.formatAllRows().toUpperCase() ?\n that.options.formatAllRows() : +value);\n });\n }\n\n $.each(pageList, function (i, page) {\n if (!that.options.smartDisplay || i === 0 || pageList[i - 1] <= that.options.totalRows) {\n var active;\n if ($allSelected) {\n active = page === that.options.formatAllRows() ? ' class=\"active\"' : '';\n } else {\n active = page === that.options.pageSize ? ' class=\"active\"' : '';\n }\n pageNumber.push(sprintf('%s', active, page));\n }\n });\n pageNumber.push('
                                    ');\n\n html.push(this.options.formatRecordsPerPage(pageNumber.join('')));\n html.push('
                                    ');\n\n html.push('
                                    ',\n '
                                    ',\n '',\n '
                                    ');\n\n }\n this.$pagination.html(html.join(''));\n\n if (!this.options.onlyInfoPagination) {\n $pageList = this.$pagination.find('.page-list a');\n $first = this.$pagination.find('.page-first');\n $pre = this.$pagination.find('.page-pre');\n $next = this.$pagination.find('.page-next');\n $last = this.$pagination.find('.page-last');\n $number = this.$pagination.find('.page-number');\n\n if (this.options.pageNumber <= 1) {\n $first.addClass('disabled');\n $pre.addClass('disabled');\n }\n if (this.options.pageNumber >= this.totalPages) {\n $next.addClass('disabled');\n $last.addClass('disabled');\n }\n if (this.options.smartDisplay) {\n if (this.totalPages <= 1) {\n this.$pagination.find('div.pagination').hide();\n }\n if (pageList.length < 2 || this.options.totalRows <= pageList[0]) {\n this.$pagination.find('span.page-list').hide();\n }\n\n // when data is empty, hide the pagination\n this.$pagination[this.getData().length ? 'show' : 'hide']();\n }\n if ($allSelected) {\n this.options.pageSize = this.options.formatAllRows();\n }\n $pageList.off('click').on('click', $.proxy(this.onPageListChange, this));\n $first.off('click').on('click', $.proxy(this.onPageFirst, this));\n $pre.off('click').on('click', $.proxy(this.onPagePre, this));\n $next.off('click').on('click', $.proxy(this.onPageNext, this));\n $last.off('click').on('click', $.proxy(this.onPageLast, this));\n $number.off('click').on('click', $.proxy(this.onPageNumber, this));\n }\n };\n\n BootstrapTable.prototype.updatePagination = function (event) {\n // Fix #171: IE disabled button can be clicked bug.\n if (event && $(event.currentTarget).hasClass('disabled')) {\n return;\n }\n\n if (!this.options.maintainSelected) {\n this.resetRows();\n }\n\n this.initPagination();\n if (this.options.sidePagination === 'server') {\n this.initServer();\n } else {\n this.initBody();\n }\n\n this.trigger('page-change', this.options.pageNumber, this.options.pageSize);\n };\n\n BootstrapTable.prototype.onPageListChange = function (event) {\n var $this = $(event.currentTarget);\n\n $this.parent().addClass('active').siblings().removeClass('active');\n this.options.pageSize = $this.text().toUpperCase() === this.options.formatAllRows().toUpperCase() ?\n this.options.formatAllRows() : +$this.text();\n this.$toolbar.find('.page-size').text(this.options.pageSize);\n\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageFirst = function (event) {\n this.options.pageNumber = 1;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPagePre = function (event) {\n this.options.pageNumber--;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNext = function (event) {\n this.options.pageNumber++;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageLast = function (event) {\n this.options.pageNumber = this.totalPages;\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.onPageNumber = function (event) {\n if (this.options.pageNumber === +$(event.currentTarget).text()) {\n return;\n }\n this.options.pageNumber = +$(event.currentTarget).text();\n this.updatePagination(event);\n };\n\n BootstrapTable.prototype.initBody = function (fixedScroll) {\n var that = this,\n html = [],\n data = this.getData();\n\n this.trigger('pre-body', data);\n\n this.$body = this.$el.find('>tbody');\n if (!this.$body.length) {\n this.$body = $('').appendTo(this.$el);\n }\n\n //Fix #389 Bootstrap-table-flatJSON is not working\n\n if (!this.options.pagination || this.options.sidePagination === 'server') {\n this.pageFrom = 1;\n this.pageTo = data.length;\n }\n\n for (var i = this.pageFrom - 1; i < this.pageTo; i++) {\n var key,\n item = data[i],\n style = {},\n csses = [],\n data_ = '',\n attributes = {},\n htmlAttributes = [];\n\n style = calculateObjectValue(this.options, this.options.rowStyle, [item, i], style);\n\n if (style && style.css) {\n for (key in style.css) {\n csses.push(key + ': ' + style.css[key]);\n }\n }\n\n attributes = calculateObjectValue(this.options,\n this.options.rowAttributes, [item, i], attributes);\n\n if (attributes) {\n for (key in attributes) {\n htmlAttributes.push(sprintf('%s=\"%s\"', key, escapeHTML(attributes[key])));\n }\n }\n\n if (item._data && !$.isEmptyObject(item._data)) {\n $.each(item._data, function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n html.push(''\n );\n\n if (this.options.cardView) {\n html.push(sprintf('', this.header.fields.length));\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('',\n '',\n sprintf('', this.options.iconsPrefix, this.options.icons.detailOpen),\n '',\n '');\n }\n\n $.each(this.header.fields, function (j, field) {\n var text = '',\n value = getItemField(item, field),\n type = '',\n cellStyle = {},\n id_ = '',\n class_ = that.header.classes[j],\n data_ = '',\n rowspan_ = '',\n title_ = '',\n column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n\n style = sprintf('style=\"%s\"', csses.concat(that.header.styles[j]).join('; '));\n\n value = calculateObjectValue(column,\n that.header.formatters[j], [value, item, i], value);\n\n // handle td's id and class\n if (item['_' + field + '_id']) {\n id_ = sprintf(' id=\"%s\"', item['_' + field + '_id']);\n }\n if (item['_' + field + '_class']) {\n class_ = sprintf(' class=\"%s\"', item['_' + field + '_class']);\n }\n if (item['_' + field + '_rowspan']) {\n rowspan_ = sprintf(' rowspan=\"%s\"', item['_' + field + '_rowspan']);\n }\n if (item['_' + field + '_title']) {\n title_ = sprintf(' title=\"%s\"', item['_' + field + '_title']);\n }\n cellStyle = calculateObjectValue(that.header,\n that.header.cellStyles[j], [value, item, i], cellStyle);\n if (cellStyle.classes) {\n class_ = sprintf(' class=\"%s\"', cellStyle.classes);\n }\n if (cellStyle.css) {\n var csses_ = [];\n for (var key in cellStyle.css) {\n csses_.push(key + ': ' + cellStyle.css[key]);\n }\n style = sprintf('style=\"%s\"', csses_.concat(that.header.styles[j]).join('; '));\n }\n\n if (item['_' + field + '_data'] && !$.isEmptyObject(item['_' + field + '_data'])) {\n $.each(item['_' + field + '_data'], function (k, v) {\n // ignore data-index\n if (k === 'index') {\n return;\n }\n data_ += sprintf(' data-%s=\"%s\"', k, v);\n });\n }\n\n if (column.checkbox || column.radio) {\n type = column.checkbox ? 'checkbox' : type;\n type = column.radio ? 'radio' : type;\n\n text = [that.options.cardView ?\n '
                                    ' : '',\n '',\n that.header.formatters[j] && typeof value === 'string' ? value : '',\n that.options.cardView ? '
                                    ' : ''\n ].join('');\n\n item[that.header.stateField] = value === true || (value && value.checked);\n } else {\n value = typeof value === 'undefined' || value === null ?\n that.options.undefinedText : value;\n\n text = that.options.cardView ? ['
                                    ',\n that.options.showHeader ? sprintf('%s', style,\n getPropertyFromOther(that.columns, 'field', 'title', field)) : '',\n sprintf('%s', value),\n '
                                    '\n ].join('') : [sprintf('', id_, class_, style, data_, rowspan_, title_),\n value,\n ''\n ].join('');\n\n // Hide empty data on Card view when smartDisplay is set to true.\n if (that.options.cardView && that.options.smartDisplay && value === '') {\n // Should set a placeholder for event binding correct fieldIndex\n text = '
                                    ';\n }\n }\n\n html.push(text);\n });\n\n if (this.options.cardView) {\n html.push('');\n }\n\n html.push('');\n }\n\n // show no records\n if (!html.length) {\n html.push('',\n sprintf('%s',\n this.$header.find('th').length, this.options.formatNoMatches()),\n '');\n }\n\n this.$body.html(html.join(''));\n\n if (!fixedScroll) {\n this.scrollTo(0);\n }\n\n // click to select by column\n this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {\n var $td = $(this),\n $tr = $td.parent(),\n item = that.data[$tr.data('index')],\n index = $td[0].cellIndex,\n field = that.header.fields[that.options.detailView && !that.options.cardView ? index - 1 : index],\n column = that.columns[getFieldIndex(that.columns, field)],\n value = getItemField(item, field);\n\n if ($td.find('.detail-icon').length) {\n return;\n }\n\n that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);\n that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr);\n\n // if click to select - then trigger the checkbox/radio click\n if (e.type === 'click' && that.options.clickToSelect && column.clickToSelect) {\n var $selectItem = $tr.find(sprintf('[name=\"%s\"]', that.options.selectItemName));\n if ($selectItem.length) {\n $selectItem[0].click(); // #144: .trigger('click') bug\n }\n }\n });\n\n this.$body.find('> tr[data-index] > td > .detail-icon').off('click').on('click', function () {\n var $this = $(this),\n $tr = $this.parent().parent(),\n index = $tr.data('index'),\n row = data[index]; // Fix #980 Detail view, when searching, returns wrong row\n\n // remove and update\n if ($tr.next().is('tr.detail-view')) {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailOpen));\n $tr.next().remove();\n that.trigger('collapse-row', index, row);\n } else {\n $this.find('i').attr('class', sprintf('%s %s', that.options.iconsPrefix, that.options.icons.detailClose));\n $tr.after(sprintf('%s',\n $tr.find('td').length, calculateObjectValue(that.options,\n that.options.detailFormatter, [index, row], '')));\n that.trigger('expand-row', index, row, $tr.next().find('td'));\n }\n that.resetView();\n });\n\n this.$selectItem = this.$body.find(sprintf('[name=\"%s\"]', this.options.selectItemName));\n this.$selectItem.off('click').on('click', function (event) {\n event.stopImmediatePropagation();\n\n var $this = $(this),\n checked = $this.prop('checked'),\n row = that.data[$this.data('index')];\n\n if (that.options.maintainSelected && $(this).is(':radio')) {\n $.each(that.options.data, function (i, row) {\n row[that.header.stateField] = false;\n });\n }\n\n row[that.header.stateField] = checked;\n\n if (that.options.singleSelect) {\n that.$selectItem.not(this).each(function () {\n that.data[$(this).data('index')][that.header.stateField] = false;\n });\n that.$selectItem.filter(':checked').not(this).prop('checked', false);\n }\n\n that.updateSelected();\n that.trigger(checked ? 'check' : 'uncheck', row, $this);\n });\n\n $.each(this.header.events, function (i, events) {\n if (!events) {\n return;\n }\n // fix bug, if events is defined with namespace\n if (typeof events === 'string') {\n events = calculateObjectValue(null, events);\n }\n\n var field = that.header.fields[i],\n fieldIndex = $.inArray(field, that.getVisibleFields());\n\n if (that.options.detailView && !that.options.cardView) {\n fieldIndex += 1;\n }\n\n for (var key in events) {\n that.$body.find('>tr:not(.no-records-found)').each(function () {\n var $tr = $(this),\n $td = $tr.find(that.options.cardView ? '.card-view' : 'td').eq(fieldIndex),\n index = key.indexOf(' '),\n name = key.substring(0, index),\n el = key.substring(index + 1),\n func = events[key];\n\n $td.find(el).off(name).on(name, function (e) {\n var index = $tr.data('index'),\n row = that.data[index],\n value = row[field];\n\n func.apply(this, [e, value, row, index]);\n });\n });\n }\n });\n\n this.updateSelected();\n this.resetView();\n\n this.trigger('post-body');\n };\n\n BootstrapTable.prototype.initServer = function (silent, query) {\n var that = this,\n data = {},\n params = {\n pageSize: this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize,\n pageNumber: this.options.pageNumber,\n searchText: this.searchText,\n sortName: this.options.sortName,\n sortOrder: this.options.sortOrder\n },\n request;\n\n if (!this.options.url && !this.options.ajax) {\n return;\n }\n\n if (this.options.queryParamsType === 'limit') {\n params = {\n search: params.searchText,\n sort: params.sortName,\n order: params.sortOrder\n };\n if (this.options.pagination) {\n params.limit = this.options.pageSize === this.options.formatAllRows() ?\n this.options.totalRows : this.options.pageSize;\n params.offset = this.options.pageSize === this.options.formatAllRows() ?\n 0 : this.options.pageSize * (this.options.pageNumber - 1);\n }\n }\n\n if (!($.isEmptyObject(this.filterColumnsPartial))) {\n params['filter'] = JSON.stringify(this.filterColumnsPartial, null);\n }\n\n data = calculateObjectValue(this.options, this.options.queryParams, [params], data);\n\n $.extend(data, query || {});\n\n // false to stop request\n if (data === false) {\n return;\n }\n\n if (!silent) {\n this.$tableLoading.show();\n }\n request = $.extend({}, calculateObjectValue(null, this.options.ajaxOptions), {\n type: this.options.method,\n url: this.options.url,\n data: this.options.contentType === 'application/json' && this.options.method === 'post' ?\n JSON.stringify(data) : data,\n cache: this.options.cache,\n contentType: this.options.contentType,\n dataType: this.options.dataType,\n success: function (res) {\n res = calculateObjectValue(that.options, that.options.responseHandler, [res], res);\n\n that.load(res);\n that.trigger('load-success', res);\n },\n error: function (res) {\n that.trigger('load-error', res.status, res);\n },\n complete: function () {\n if (!silent) {\n that.$tableLoading.hide();\n }\n }\n });\n\n if (this.options.ajax) {\n calculateObjectValue(this, this.options.ajax, [request], null);\n } else {\n $.ajax(request);\n }\n };\n\n BootstrapTable.prototype.initSearchText = function () {\n if (this.options.search) {\n if (this.options.searchText !== '') {\n var $search = this.$toolbar.find('.search input');\n $search.val(this.options.searchText);\n this.onSearch({currentTarget: $search});\n }\n }\n };\n\n BootstrapTable.prototype.getCaret = function () {\n var that = this;\n\n $.each(this.$header.find('th'), function (i, th) {\n $(th).find('.sortable').removeClass('desc asc').addClass($(th).data('field') === that.options.sortName ? that.options.sortOrder : 'both');\n });\n };\n\n BootstrapTable.prototype.updateSelected = function () {\n var checkAll = this.$selectItem.filter(':enabled').length &&\n this.$selectItem.filter(':enabled').length ===\n this.$selectItem.filter(':enabled').filter(':checked').length;\n\n this.$selectAll.add(this.$selectAll_).prop('checked', checkAll);\n\n this.$selectItem.each(function () {\n $(this).closest('tr')[$(this).prop('checked') ? 'addClass' : 'removeClass']('selected');\n });\n };\n\n BootstrapTable.prototype.updateRows = function () {\n var that = this;\n\n this.$selectItem.each(function () {\n that.data[$(this).data('index')][that.header.stateField] = $(this).prop('checked');\n });\n };\n\n BootstrapTable.prototype.resetRows = function () {\n var that = this;\n\n $.each(this.data, function (i, row) {\n that.$selectAll.prop('checked', false);\n that.$selectItem.prop('checked', false);\n if (that.header.stateField) {\n row[that.header.stateField] = false;\n }\n });\n };\n\n BootstrapTable.prototype.trigger = function (name) {\n var args = Array.prototype.slice.call(arguments, 1);\n\n name += '.bs.table';\n this.options[BootstrapTable.EVENTS[name]].apply(this.options, args);\n this.$el.trigger($.Event(name), args);\n\n this.options.onAll(name, args);\n this.$el.trigger($.Event('all.bs.table'), [name, args]);\n };\n\n BootstrapTable.prototype.resetHeader = function () {\n // fix #61: the hidden table reset header bug.\n // fix bug: get $el.css('width') error sometime (height = 500)\n clearTimeout(this.timeoutId_);\n this.timeoutId_ = setTimeout($.proxy(this.fitHeader, this), this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitHeader = function () {\n var that = this,\n fixedBody,\n scrollWidth,\n focused,\n focusedTemp;\n\n if (that.$el.is(':hidden')) {\n that.timeoutId_ = setTimeout($.proxy(that.fitHeader, that), 100);\n return;\n }\n fixedBody = this.$tableBody.get(0);\n\n scrollWidth = fixedBody.scrollWidth > fixedBody.clientWidth &&\n fixedBody.scrollHeight > fixedBody.clientHeight + this.$header.outerHeight() ?\n getScrollBarWidth() : 0;\n\n this.$el.css('margin-top', -this.$header.outerHeight());\n\n focused = $(':focus');\n if (focused.length > 0) {\n var $th = focused.parents('th');\n if ($th.length > 0) {\n var dataField = $th.attr('data-field');\n if (dataField !== undefined) {\n var $headerTh = this.$header.find(\"[data-field='\" + dataField + \"']\");\n if ($headerTh.length > 0) {\n $headerTh.find(\":input\").addClass(\"focus-temp\");\n }\n }\n }\n }\n\n this.$header_ = this.$header.clone(true, true);\n this.$selectAll_ = this.$header_.find('[name=\"btSelectAll\"]');\n this.$tableHeader.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', this.$el.outerWidth())\n .html('').attr('class', this.$el.attr('class'))\n .append(this.$header_);\n\n\n focusedTemp = $('.focus-temp:visible:eq(0)');\n if (focusedTemp.length > 0) {\n focusedTemp.focus();\n this.$header.find('.focus-temp').removeClass('focus-temp');\n }\n\n // fix bug: $.data() is not working as expected after $.append()\n this.$header.find('th[data-field]').each(function (i) {\n that.$header_.find(sprintf('th[data-field=\"%s\"]', $(this).data('field'))).data($(this).data());\n });\n\n var visibleFields = this.getVisibleFields();\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this),\n index = i;\n\n if (that.options.detailView && !that.options.cardView) {\n if (i === 0) {\n that.$header_.find('th.detail').find('.fht-cell').width($this.innerWidth());\n }\n index = i - 1;\n }\n\n that.$header_.find(sprintf('th[data-field=\"%s\"]', visibleFields[index]))\n .find('.fht-cell').width($this.innerWidth());\n });\n // horizontal scroll event\n // TODO: it's probably better improving the layout than binding to scroll event\n this.$tableBody.off('scroll').on('scroll', function () {\n that.$tableHeader.scrollLeft($(this).scrollLeft());\n\n if (that.options.showFooter && !that.options.cardView) {\n that.$tableFooter.scrollLeft($(this).scrollLeft());\n }\n });\n that.trigger('post-header');\n };\n\n BootstrapTable.prototype.resetFooter = function () {\n var that = this,\n data = that.getData(),\n html = [];\n\n if (!this.options.showFooter || this.options.cardView) { //do nothing\n return;\n }\n\n if (!this.options.cardView && this.options.detailView) {\n html.push('
                                     
                                    ');\n }\n\n $.each(this.columns, function (i, column) {\n var falign = '', // footer align style\n style = '',\n class_ = sprintf(' class=\"%s\"', column['class']);\n\n if (!column.visible) {\n return;\n }\n\n if (that.options.cardView && (!column.cardVisible)) {\n return;\n }\n\n falign = sprintf('text-align: %s; ', column.falign ? column.falign : column.align);\n style = sprintf('vertical-align: %s; ', column.valign);\n\n html.push('');\n html.push('
                                    ');\n\n html.push(calculateObjectValue(column, column.footerFormatter, [data], ' ') || ' ');\n\n html.push('
                                    ');\n html.push('
                                    ');\n html.push('');\n html.push('');\n });\n\n this.$tableFooter.find('tr').html(html.join(''));\n clearTimeout(this.timeoutFooter_);\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this),\n this.$el.is(':hidden') ? 100 : 0);\n };\n\n BootstrapTable.prototype.fitFooter = function () {\n var that = this,\n $footerTd,\n elWidth,\n scrollWidth;\n\n clearTimeout(this.timeoutFooter_);\n if (this.$el.is(':hidden')) {\n this.timeoutFooter_ = setTimeout($.proxy(this.fitFooter, this), 100);\n return;\n }\n\n elWidth = this.$el.css('width');\n scrollWidth = elWidth > this.$tableBody.width() ? getScrollBarWidth() : 0;\n\n this.$tableFooter.css({\n 'margin-right': scrollWidth\n }).find('table').css('width', elWidth)\n .attr('class', this.$el.attr('class'));\n\n $footerTd = this.$tableFooter.find('td');\n\n this.$body.find('>tr:first-child:not(.no-records-found) > *').each(function (i) {\n var $this = $(this);\n\n $footerTd.eq(i).find('.fht-cell').width($this.innerWidth());\n });\n };\n\n BootstrapTable.prototype.toggleColumn = function (index, checked, needUpdate) {\n if (index === -1) {\n return;\n }\n this.columns[index].visible = checked;\n this.initHeader();\n this.initSearch();\n this.initPagination();\n this.initBody();\n\n if (this.options.showColumns) {\n var $items = this.$toolbar.find('.keep-open input').prop('disabled', false);\n\n if (needUpdate) {\n $items.filter(sprintf('[value=\"%s\"]', index)).prop('checked', checked);\n }\n\n if ($items.filter(':checked').length <= this.options.minimumCountColumns) {\n $items.filter(':checked').prop('disabled', true);\n }\n }\n };\n\n BootstrapTable.prototype.toggleRow = function (index, uniqueId, visible) {\n if (index === -1) {\n return;\n }\n\n this.$body.find(typeof index !== 'undefined' ?\n sprintf('tr[data-index=\"%s\"]', index) :\n sprintf('tr[data-uniqueid=\"%s\"]', uniqueId))\n [visible ? 'show' : 'hide']();\n };\n\n BootstrapTable.prototype.getVisibleFields = function () {\n var that = this,\n visibleFields = [];\n\n $.each(this.header.fields, function (j, field) {\n var column = that.columns[getFieldIndex(that.columns, field)];\n\n if (!column.visible) {\n return;\n }\n visibleFields.push(field);\n });\n return visibleFields;\n };\n\n // PUBLIC FUNCTION DEFINITION\n // =======================\n\n BootstrapTable.prototype.resetView = function (params) {\n var padding = 0;\n\n if (params && params.height) {\n this.options.height = params.height;\n }\n\n this.$selectAll.prop('checked', this.$selectItem.length > 0 &&\n this.$selectItem.length === this.$selectItem.filter(':checked').length);\n\n if (this.options.height) {\n var toolbarHeight = getRealHeight(this.$toolbar),\n paginationHeight = getRealHeight(this.$pagination),\n height = this.options.height - toolbarHeight - paginationHeight;\n\n this.$tableContainer.css('height', height + 'px');\n }\n\n if (this.options.cardView) {\n // remove the element css\n this.$el.css('margin-top', '0');\n this.$tableContainer.css('padding-bottom', '0');\n return;\n }\n\n if (this.options.showHeader && this.options.height) {\n this.$tableHeader.show();\n this.resetHeader();\n padding += this.$header.outerHeight();\n } else {\n this.$tableHeader.hide();\n this.trigger('post-header');\n }\n\n if (this.options.showFooter) {\n this.resetFooter();\n if (this.options.height) {\n padding += this.$tableFooter.outerHeight() + 1;\n }\n }\n\n // Assign the correct sortable arrow\n this.getCaret();\n this.$tableContainer.css('padding-bottom', padding + 'px');\n this.trigger('reset-view');\n };\n\n BootstrapTable.prototype.getData = function (useCurrentPage) {\n return (this.searchText || !$.isEmptyObject(this.filterColumns) || !$.isEmptyObject(this.filterColumnsPartial)) ?\n (useCurrentPage ? this.data.slice(this.pageFrom - 1, this.pageTo) : this.data) :\n (useCurrentPage ? this.options.data.slice(this.pageFrom - 1, this.pageTo) : this.options.data);\n };\n\n BootstrapTable.prototype.load = function (data) {\n var fixedScroll = false;\n\n // #431: support pagination\n if (this.options.sidePagination === 'server') {\n this.options.totalRows = data.total;\n fixedScroll = data.fixedScroll;\n data = data[this.options.dataField];\n } else if (!$.isArray(data)) { // support fixedScroll\n fixedScroll = data.fixedScroll;\n data = data.data;\n }\n\n this.initData(data);\n this.initSearch();\n this.initPagination();\n this.initBody(fixedScroll);\n };\n\n BootstrapTable.prototype.append = function (data) {\n this.initData(data, 'append');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.prepend = function (data) {\n this.initData(data, 'prepend');\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.remove = function (params) {\n var len = this.options.data.length,\n i, row;\n\n if (!params.hasOwnProperty('field') || !params.hasOwnProperty('values')) {\n return;\n }\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (!row.hasOwnProperty(params.field)) {\n continue;\n }\n if ($.inArray(row[params.field], params.values) !== -1) {\n this.options.data.splice(i, 1);\n }\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.removeAll = function () {\n if (this.options.data.length > 0) {\n this.options.data.splice(0, this.options.data.length);\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n }\n };\n\n BootstrapTable.prototype.getRowByUniqueId = function (id) {\n var uniqueId = this.options.uniqueId,\n len = this.options.data.length,\n dataRow = null,\n i, row, rowUniqueId;\n\n for (i = len - 1; i >= 0; i--) {\n row = this.options.data[i];\n\n if (row.hasOwnProperty(uniqueId)) { // uniqueId is a column\n rowUniqueId = row[uniqueId];\n } else if(row._data.hasOwnProperty(uniqueId)) { // uniqueId is a row data property\n rowUniqueId = row._data[uniqueId];\n } else {\n continue;\n }\n\n if (typeof rowUniqueId === 'string') {\n id = id.toString();\n } else if (typeof rowUniqueId === 'number') {\n if ((Number(rowUniqueId) === rowUniqueId) && (rowUniqueId % 1 === 0)) {\n id = parseInt(id);\n } else if ((rowUniqueId === Number(rowUniqueId)) && (rowUniqueId !== 0)) {\n id = parseFloat(id);\n }\n }\n\n if (rowUniqueId === id) {\n dataRow = row;\n break;\n }\n }\n\n return dataRow;\n };\n\n BootstrapTable.prototype.removeByUniqueId = function (id) {\n var len = this.options.data.length,\n row = this.getRowByUniqueId(id);\n\n if (row) {\n this.options.data.splice(this.options.data.indexOf(row), 1);\n }\n\n if (len === this.options.data.length) {\n return;\n }\n\n this.initSearch();\n this.initPagination();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateByUniqueId = function (params) {\n var rowId;\n\n if (!params.hasOwnProperty('id') || !params.hasOwnProperty('row')) {\n return;\n }\n\n rowId = $.inArray(this.getRowByUniqueId(params.id), this.options.data);\n\n if (rowId === -1) {\n return;\n }\n\n $.extend(this.data[rowId], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.insertRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n this.data.splice(params.index, 0, params.row);\n this.initSearch();\n this.initPagination();\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.updateRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('row')) {\n return;\n }\n $.extend(this.data[params.index], params.row);\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.showRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, true);\n };\n\n BootstrapTable.prototype.hideRow = function (params) {\n if (!params.hasOwnProperty('index') || !params.hasOwnProperty('uniqueId')) {\n return;\n }\n this.toggleRow(params.index, params.uniqueId, false);\n };\n\n BootstrapTable.prototype.getRowsHidden = function (show) {\n var rows = $(this.$body[0]).children().filter(':hidden'),\n i = 0;\n if (show) {\n for (; i < rows.length; i++) {\n $(rows[i]).show();\n }\n }\n return rows;\n };\n\n BootstrapTable.prototype.mergeCells = function (options) {\n var row = options.index,\n col = $.inArray(options.field, this.getVisibleFields()),\n rowspan = options.rowspan || 1,\n colspan = options.colspan || 1,\n i, j,\n $tr = this.$body.find('>tr'),\n $td;\n\n if (this.options.detailView && !this.options.cardView) {\n col += 1;\n }\n\n $td = $tr.eq(row).find('>td').eq(col);\n\n if (row < 0 || col < 0 || row >= this.data.length) {\n return;\n }\n\n for (i = row; i < row + rowspan; i++) {\n for (j = col; j < col + colspan; j++) {\n $tr.eq(i).find('>td').eq(j).hide();\n }\n }\n\n $td.attr('rowspan', rowspan).attr('colspan', colspan).show();\n };\n\n BootstrapTable.prototype.updateCell = function (params) {\n if (!params.hasOwnProperty('index') ||\n !params.hasOwnProperty('field') ||\n !params.hasOwnProperty('value')) {\n return;\n }\n this.data[params.index][params.field] = params.value;\n this.initSort();\n this.initBody(true);\n };\n\n BootstrapTable.prototype.getOptions = function () {\n return this.options;\n };\n\n BootstrapTable.prototype.getSelections = function () {\n var that = this;\n\n return $.grep(this.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.getAllSelections = function () {\n var that = this;\n\n return $.grep(this.options.data, function (row) {\n return row[that.header.stateField];\n });\n };\n\n BootstrapTable.prototype.checkAll = function () {\n this.checkAll_(true);\n };\n\n BootstrapTable.prototype.uncheckAll = function () {\n this.checkAll_(false);\n };\n\n BootstrapTable.prototype.checkAll_ = function (checked) {\n var rows;\n if (!checked) {\n rows = this.getSelections();\n }\n this.$selectAll.add(this.$selectAll_).prop('checked', checked);\n this.$selectItem.filter(':enabled').prop('checked', checked);\n this.updateRows();\n if (checked) {\n rows = this.getSelections();\n }\n this.trigger(checked ? 'check-all' : 'uncheck-all', rows);\n };\n\n BootstrapTable.prototype.check = function (index) {\n this.check_(true, index);\n };\n\n BootstrapTable.prototype.uncheck = function (index) {\n this.check_(false, index);\n };\n\n BootstrapTable.prototype.check_ = function (checked, index) {\n var $el = this.$selectItem.filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n this.data[index][this.header.stateField] = checked;\n this.updateSelected();\n this.trigger(checked ? 'check' : 'uncheck', this.data[index], $el);\n };\n\n BootstrapTable.prototype.checkBy = function (obj) {\n this.checkBy_(true, obj);\n };\n\n BootstrapTable.prototype.uncheckBy = function (obj) {\n this.checkBy_(false, obj);\n };\n\n BootstrapTable.prototype.checkBy_ = function (checked, obj) {\n if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {\n return;\n }\n\n var that = this,\n rows = [];\n $.each(this.options.data, function (index, row) {\n if (!row.hasOwnProperty(obj.field)) {\n return false;\n }\n if ($.inArray(row[obj.field], obj.values) !== -1) {\n var $el = that.$selectItem.filter(':enabled')\n .filter(sprintf('[data-index=\"%s\"]', index)).prop('checked', checked);\n row[that.header.stateField] = checked;\n rows.push(row);\n that.trigger(checked ? 'check' : 'uncheck', row, $el);\n }\n });\n this.updateSelected();\n this.trigger(checked ? 'check-some' : 'uncheck-some', rows);\n };\n\n BootstrapTable.prototype.destroy = function () {\n this.$el.insertBefore(this.$container);\n $(this.options.toolbar).insertBefore(this.$el);\n this.$container.next().remove();\n this.$container.remove();\n this.$el.html(this.$el_.html())\n .css('margin-top', '0')\n .attr('class', this.$el_.attr('class') || ''); // reset the class\n };\n\n BootstrapTable.prototype.showLoading = function () {\n this.$tableLoading.show();\n };\n\n BootstrapTable.prototype.hideLoading = function () {\n this.$tableLoading.hide();\n };\n\n BootstrapTable.prototype.togglePagination = function () {\n this.options.pagination = !this.options.pagination;\n var button = this.$toolbar.find('button[name=\"paginationSwitch\"] i');\n if (this.options.pagination) {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchDown);\n } else {\n button.attr(\"class\", this.options.iconsPrefix + \" \" + this.options.icons.paginationSwitchUp);\n }\n this.updatePagination();\n };\n\n BootstrapTable.prototype.refresh = function (params) {\n if (params && params.url) {\n this.options.url = params.url;\n this.options.pageNumber = 1;\n }\n this.initServer(params && params.silent, params && params.query);\n };\n\n BootstrapTable.prototype.resetWidth = function () {\n if (this.options.showHeader && this.options.height) {\n this.fitHeader();\n }\n if (this.options.showFooter) {\n this.fitFooter();\n }\n };\n\n BootstrapTable.prototype.showColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), true, true);\n };\n\n BootstrapTable.prototype.hideColumn = function (field) {\n this.toggleColumn(getFieldIndex(this.columns, field), false, true);\n };\n\n BootstrapTable.prototype.getHiddenColumns = function () {\n return $.grep(this.columns, function (column) {\n return !column.visible;\n });\n };\n\n BootstrapTable.prototype.filterBy = function (columns) {\n this.filterColumns = $.isEmptyObject(columns) ? {} : columns;\n this.options.pageNumber = 1;\n this.initSearch();\n this.updatePagination();\n };\n\n BootstrapTable.prototype.scrollTo = function (value) {\n if (typeof value === 'string') {\n value = value === 'bottom' ? this.$tableBody[0].scrollHeight : 0;\n }\n if (typeof value === 'number') {\n this.$tableBody.scrollTop(value);\n }\n if (typeof value === 'undefined') {\n return this.$tableBody.scrollTop();\n }\n };\n\n BootstrapTable.prototype.getScrollPosition = function () {\n return this.scrollTo();\n };\n\n BootstrapTable.prototype.selectPage = function (page) {\n if (page > 0 && page <= this.options.totalPages) {\n this.options.pageNumber = page;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.prevPage = function () {\n if (this.options.pageNumber > 1) {\n this.options.pageNumber--;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.nextPage = function () {\n if (this.options.pageNumber < this.options.totalPages) {\n this.options.pageNumber++;\n this.updatePagination();\n }\n };\n\n BootstrapTable.prototype.toggleView = function () {\n this.options.cardView = !this.options.cardView;\n this.initHeader();\n // Fixed remove toolbar when click cardView button.\n //that.initToolbar();\n this.initBody();\n this.trigger('toggle', this.options.cardView);\n };\n\n BootstrapTable.prototype.refreshOptions = function (options) {\n //If the objects are equivalent then avoid the call of destroy / init methods\n if (compareObjects(this.options, options, false)) {\n return;\n }\n this.options = $.extend(this.options, options);\n this.trigger('refresh-options', this.options);\n this.destroy();\n this.init();\n };\n\n BootstrapTable.prototype.resetSearch = function (text) {\n var $search = this.$toolbar.find('.search input');\n $search.val(text || '');\n this.onSearch({currentTarget: $search});\n };\n\n BootstrapTable.prototype.expandRow_ = function (expand, index) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', index));\n if ($tr.next().is('tr.detail-view') === (expand ? false : true)) {\n $tr.find('> td > .detail-icon').click();\n }\n };\n\n BootstrapTable.prototype.expandRow = function (index) {\n this.expandRow_(true, index);\n };\n\n BootstrapTable.prototype.collapseRow = function (index) {\n this.expandRow_(false, index);\n };\n\n BootstrapTable.prototype.expandAllRows = function (isSubTable) {\n if (isSubTable) {\n var $tr = this.$body.find(sprintf('> tr[data-index=\"%s\"]', 0)),\n that = this,\n detailIcon = null,\n executeInterval = false,\n idInterval = -1;\n\n if (!$tr.next().is('tr.detail-view')) {\n $tr.find('> td > .detail-icon').click();\n executeInterval = true;\n } else if (!$tr.next().next().is('tr.detail-view')) {\n $tr.next().find(\".detail-icon\").click();\n executeInterval = true;\n }\n\n if (executeInterval) {\n try {\n idInterval = setInterval(function () {\n detailIcon = that.$body.find(\"tr.detail-view\").last().find(\".detail-icon\");\n if (detailIcon.length > 0) {\n detailIcon.click();\n } else {\n clearInterval(idInterval);\n }\n }, 1);\n } catch (ex) {\n clearInterval(idInterval);\n }\n }\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(true, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n BootstrapTable.prototype.collapseAllRows = function (isSubTable) {\n if (isSubTable) {\n this.expandRow_(false, 0);\n } else {\n var trs = this.$body.children();\n for (var i = 0; i < trs.length; i++) {\n this.expandRow_(false, $(trs[i]).data(\"index\"));\n }\n }\n };\n\n // BOOTSTRAP TABLE PLUGIN DEFINITION\n // =======================\n\n var allowedMethods = [\n 'getOptions',\n 'getSelections', 'getAllSelections', 'getData',\n 'load', 'append', 'prepend', 'remove', 'removeAll',\n 'insertRow', 'updateRow', 'updateCell', 'updateByUniqueId', 'removeByUniqueId',\n 'getRowByUniqueId', 'showRow', 'hideRow', 'getRowsHidden',\n 'mergeCells',\n 'checkAll', 'uncheckAll',\n 'check', 'uncheck',\n 'checkBy', 'uncheckBy',\n 'refresh',\n 'resetView',\n 'resetWidth',\n 'destroy',\n 'showLoading', 'hideLoading',\n 'showColumn', 'hideColumn', 'getHiddenColumns',\n 'filterBy',\n 'scrollTo',\n 'getScrollPosition',\n 'selectPage', 'prevPage', 'nextPage',\n 'togglePagination',\n 'toggleView',\n 'refreshOptions',\n 'resetSearch',\n 'expandRow', 'collapseRow', 'expandAllRows', 'collapseAllRows'\n ];\n\n $.fn.bootstrapTable = function (option) {\n var value,\n args = Array.prototype.slice.call(arguments, 1);\n\n this.each(function () {\n var $this = $(this),\n data = $this.data('bootstrap.table'),\n options = $.extend({}, BootstrapTable.DEFAULTS, $this.data(),\n typeof option === 'object' && option);\n\n if (typeof option === 'string') {\n if ($.inArray(option, allowedMethods) < 0) {\n throw new Error(\"Unknown method: \" + option);\n }\n\n if (!data) {\n return;\n }\n\n value = data[option].apply(data, args);\n\n if (option === 'destroy') {\n $this.removeData('bootstrap.table');\n }\n }\n\n if (!data) {\n $this.data('bootstrap.table', (data = new BootstrapTable(this, options)));\n }\n });\n\n return typeof value === 'undefined' ? this : value;\n };\n\n $.fn.bootstrapTable.Constructor = BootstrapTable;\n $.fn.bootstrapTable.defaults = BootstrapTable.DEFAULTS;\n $.fn.bootstrapTable.columnDefaults = BootstrapTable.COLUMN_DEFAULTS;\n $.fn.bootstrapTable.locales = BootstrapTable.LOCALES;\n $.fn.bootstrapTable.methods = allowedMethods;\n $.fn.bootstrapTable.utils = {\n sprintf: sprintf,\n getFieldIndex: getFieldIndex,\n compareObjects: compareObjects,\n calculateObjectValue: calculateObjectValue\n };\n\n // BOOTSTRAP TABLE INIT\n // =======================\n\n $(function () {\n $('[data-toggle=\"table\"]').bootstrapTable();\n });\n\n}(jQuery);\n","/* =========================================================\n * bootstrap-datepicker.js\n * Repo: https://github.com/eternicode/bootstrap-datepicker/\n * Demo: http://eternicode.github.io/bootstrap-datepicker/\n * Docs: http://bootstrap-datepicker.readthedocs.org/\n * Forked from http://www.eyecon.ro/bootstrap-datepicker\n * =========================================================\n * Started by Stefan Petre; improvements by Andrew Rowls + contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n\n(function($, undefined){\n\n\tvar $window = $(window);\n\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction alias(method){\n\t\treturn function(){\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n\t\t\t\t\tif (this[i].valueOf() === val)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.splice(0);\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = UTCToday();\n\t\tthis.focusDate = null;\n\n\t\tthis._process_options(options);\n\n\t\tthis.element = $(element);\n\t\tthis.isInline = false;\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.component = this.element.is('.date') ? this.element.find('.add-on, .input-group-addon, .btn') : false;\n\t\tthis.hasInput = this.component && this.element.find('input').length;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\n\t\tthis.picker = $(DPGlobal.template);\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tthis.viewMode = this.o.startView;\n\n\t\tif (this.o.calendarWeeks)\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\t\t\treturn parseInt(val) + 1;\n\t\t\t\t\t\t});\n\n\t\tthis._allow_update = false;\n\n\t\tthis.setStartDate(this._o.startDate);\n\t\tthis.setEndDate(this._o.endDate);\n\t\tthis.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled);\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis._allow_update = true;\n\n\t\tthis.update();\n\t\tthis.showMode();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\tswitch (o.startView){\n\t\t\t\tcase 2:\n\t\t\t\tcase 'decade':\n\t\t\t\t\to.startView = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 'year':\n\t\t\t\t\to.startView = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.startView = 0;\n\t\t\t}\n\n\t\t\tswitch (o.minViewMode){\n\t\t\t\tcase 1:\n\t\t\t\tcase 'months':\n\t\t\t\t\to.minViewMode = 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\tcase 'years':\n\t\t\t\t\to.minViewMode = 2;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\to.minViewMode = 0;\n\t\t\t}\n\n\t\t\to.startView = Math.max(o.startView, o.minViewMode);\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t\telse\n\t\t\t\t\to.multidate = 1;\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = ((o.weekStart + 6) % 7);\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled||[];\n\t\t\tif (!$.isArray(o.daysOfWeekDisabled))\n\t\t\t\to.daysOfWeekDisabled = o.daysOfWeekDisabled.split(/[,\\s]*/);\n\t\t\to.daysOfWeekDisabled = $.map(o.daysOfWeekDisabled, function(d){\n\t\t\t\treturn parseInt(d, 10);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn (/^auto|left|right|top|bottom$/).test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^left|right$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn (/^top|bottom$/).test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t},\n\t\t_events: [],\n\t\t_secondaryEvents: [],\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t}\n\t\t\t\telse if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n\t\t\tif (this.isInput){ // single input\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.component && this.hasInput){ // component: input + button\n\t\t\t\tthis._events = [\n\t\t\t\t\t// For components that are not readonly, allow keyboard nav\n\t\t\t\t\t[this.element.find('input'), {\n\t\t\t\t\t\tfocus: $.proxy(this.show, this),\n\t\t\t\t\t\tkeyup: $.proxy(function(e){\n\t\t\t\t\t\t\tif ($.inArray(e.keyCode, [27,37,39,38,40,32,13,9]) === -1)\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t}, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}],\n\t\t\t\t\t[this.component, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (this.element.is('div')){ // inline datepicker\n\t\t\t\tthis.isInline = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\t'mousedown touchstart': $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t}\n\t\t\t\t\telse if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo('body');\n\t\t\tthis.picker.show();\n\t\t\tthis.place();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tif (!this.picker.is(':visible'))\n\t\t\t\treturn;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.viewMode = this.o.startView;\n\t\t\tthis.showMode();\n\n\t\t\tif (\n\t\t\t\tthis.o.forceParse &&\n\t\t\t\t(\n\t\t\t\t\tthis.isInput && this.element.val() ||\n\t\t\t\t\tthis.hasInput && this.element.find('input').val()\n\t\t\t\t)\n\t\t\t)\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t},\n\n\t\tremove: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\treturn utc && new Date(utc.getTime() + (utc.getTimezoneOffset()*60000));\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && new Date(Date.UTC(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate()));\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\treturn new Date(this.dates.get(-1));\n\t\t},\n\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, $.map(args, this._utc_to_local));\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tif (!this.isInput){\n\t\t\t\tif (this.component){\n\t\t\t\t\tthis.element.find('input').val(formatted).change();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.element.val(formatted).change();\n\t\t\t}\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\twindowWidth = $window.width(),\n\t\t\t\twindowHeight = $window.height(),\n\t\t\t\tscrollTop = $window.scrollTop();\n\n\t\t\tvar zIndex = parseInt(this.element.parents().filter(function(){\n\t\t\t\t\treturn $(this).css('z-index') !== 'auto';\n\t\t\t\t}).first().css('z-index'))+10;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left,\n\t\t\t\ttop = offset.top;\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\t// Default to left\n\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\tif (offset.left < 0)\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\telse if (offset.left + calendarWidth > windowWidth)\n\t\t\t\t\tleft = windowWidth - calendarWidth - visualPadding;\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow, bottom_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + offset.top - calendarHeight;\n\t\t\t\tbottom_overflow = scrollTop + windowHeight - (offset.top + height + calendarHeight);\n\t\t\t\tif (Math.max(top_overflow, bottom_overflow) === bottom_overflow)\n\t\t\t\t\tyorient = 'top';\n\t\t\t\telse\n\t\t\t\t\tyorient = 'bottom';\n\t\t\t}\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop += height;\n\t\t\telse\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\n\t\t\tthis.picker.css({\n\t\t\t\ttop: top,\n\t\t\t\tleft: left,\n\t\t\t\tzIndex: zIndex\n\t\t\t});\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.element.find('input').val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\tdate < this.o.startDate ||\n\t\t\t\t\tdate > this.o.endDate ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.dates.length)\n\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t}\n\t\t\telse if (dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates))\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length)\n\t\t\t\tthis._trigger('clearDate');\n\n\t\t\tthis.fill();\n\t\t},\n\n\t\tfillDow: function(){\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\tvar cell = ' ';\n\t\t\t\thtml += cell;\n\t\t\t\tthis.picker.find('.datepicker-days thead tr:first-child').prepend(cell);\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += ''+dates[this.o.language].daysMin[(dowCnt++)%7]+'';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n\t\t},\n\n\t\tfillMonths: function(){\n\t\t\tvar html = '',\n\t\t\ti = 0;\n\t\t\twhile (i < 12){\n\t\t\t\thtml += ''+dates[this.o.language].monthsShort[i++]+'';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = new Date();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t}\n\t\t\telse if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with local today, not UTC today\n\t\t\tif (this.o.todayHighlight &&\n\t\t\t\tdate.getUTCFullYear() === today.getFullYear() &&\n\t\t\t\tdate.getUTCMonth() === today.getMonth() &&\n\t\t\t\tdate.getUTCDate() === today.getDate()){\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (date.valueOf() < this.o.startDate || date.valueOf() > this.o.endDate ||\n\t\t\t\t$.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n\t\t\t\ttooltip;\n\t\t\tthis.picker.find('.datepicker-days thead th.datepicker-switch')\n\t\t\t\t\t\t.text(dates[this.o.language].months[month]+' '+year);\n\t\t\tthis.picker.find('tfoot th.today')\n\t\t\t\t\t\t.text(todaytxt)\n\t\t\t\t\t\t.toggle(this.o.todayBtn !== false);\n\t\t\tthis.picker.find('tfoot th.clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.toggle(this.o.clearBtn !== false);\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month-1, 28),\n\t\t\t\tday = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());\n\t\t\tprevMonth.setUTCDate(day);\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekStart){\n\t\t\t\t\thtml.push('');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek = (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push(''+ calWeek +'');\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tvar before = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof(before) === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof(before) === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t}\n\n\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\thtml.push(''+prevMonth.getUTCDate() + '');\n\t\t\t\tif (prevMonth.getUTCDay() === this.o.weekEnd){\n\t\t\t\t\thtml.push('');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate()+1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').empty().append(html.join(''));\n\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t.text(year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\thtml = '';\n\t\t\tyear = parseInt(year/10, 10) * 10;\n\t\t\tvar yearCont = this.picker.find('.datepicker-years')\n\t\t\t\t\t\t\t\t.find('th:eq(1)')\n\t\t\t\t\t\t\t\t\t.text(year + '-' + (year + 9))\n\t\t\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t\t\t.find('td');\n\t\t\tyear -= 1;\n\t\t\tvar years = $.map(this.dates, function(d){\n\t\t\t\t\treturn d.getUTCFullYear();\n\t\t\t\t}),\n\t\t\t\tclasses;\n\t\t\tfor (var i = -1; i < 11; i++){\n\t\t\t\tclasses = ['year'];\n\t\t\t\tif (i === -1)\n\t\t\t\t\tclasses.push('old');\n\t\t\t\telse if (i === 10)\n\t\t\t\t\tclasses.push('new');\n\t\t\t\tif ($.inArray(year, years) !== -1)\n\t\t\t\t\tclasses.push('active');\n\t\t\t\tif (year < startYear || year > endYear)\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\thtml += ''+year+'';\n\t\t\t\tyear += 1;\n\t\t\t}\n\t\t\tyearCont.html(html);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth();\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 0:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear() && month <= this.o.startDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear() && month >= this.o.endDate.getUTCMonth()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\tcase 2:\n\t\t\t\t\tif (this.o.startDate !== -Infinity && year <= this.o.startDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.prev').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tif (this.o.endDate !== Infinity && year >= this.o.endDate.getUTCFullYear()){\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'hidden'});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.picker.find('.next').css({visibility: 'visible'});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\tvar target = $(e.target).closest('span, td, th'),\n\t\t\t\tyear, month, day;\n\t\t\tif (target.length === 1){\n\t\t\t\tswitch (target[0].nodeName.toLowerCase()){\n\t\t\t\t\tcase 'th':\n\t\t\t\t\t\tswitch (target[0].className){\n\t\t\t\t\t\t\tcase 'datepicker-switch':\n\t\t\t\t\t\t\t\tthis.showMode(1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'prev':\n\t\t\t\t\t\t\tcase 'next':\n\t\t\t\t\t\t\t\tvar dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className === 'prev' ? -1 : 1);\n\t\t\t\t\t\t\t\tswitch (this.viewMode){\n\t\t\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\tthis.viewDate = this.moveYear(this.viewDate, dir);\n\t\t\t\t\t\t\t\t\t\tif (this.viewMode === 1)\n\t\t\t\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'today':\n\t\t\t\t\t\t\t\tvar date = new Date();\n\t\t\t\t\t\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\n\t\t\t\t\t\t\t\tthis.showMode(-2);\n\t\t\t\t\t\t\t\tvar which = this.o.todayBtn === 'linked' ? null : 'view';\n\t\t\t\t\t\t\t\tthis._setDate(date, which);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'clear':\n\t\t\t\t\t\t\t\tvar element;\n\t\t\t\t\t\t\t\tif (this.isInput)\n\t\t\t\t\t\t\t\t\telement = this.element;\n\t\t\t\t\t\t\t\telse if (this.component)\n\t\t\t\t\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t\t\t\t\tif (element)\n\t\t\t\t\t\t\t\t\telement.val(\"\").change();\n\t\t\t\t\t\t\t\tthis.update();\n\t\t\t\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'span':\n\t\t\t\t\t\tif (!target.is('.disabled')){\n\t\t\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\t\t\t\t\t\t\tif (target.is('.month')){\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 1){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tday = 1;\n\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\tyear = parseInt(target.text(), 10)||0;\n\t\t\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t\t\t\tif (this.o.minViewMode === 2){\n\t\t\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.showMode(-1);\n\t\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'td':\n\t\t\t\t\t\tif (target.is('.day') && !target.is('.disabled')){\n\t\t\t\t\t\t\tday = parseInt(target.text(), 10)||1;\n\t\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\t\tmonth = this.viewDate.getUTCMonth();\n\t\t\t\t\t\t\tif (target.is('.old')){\n\t\t\t\t\t\t\t\tif (month === 0){\n\t\t\t\t\t\t\t\t\tmonth = 11;\n\t\t\t\t\t\t\t\t\tyear -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth -= 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (target.is('.new')){\n\t\t\t\t\t\t\t\tif (month === 11){\n\t\t\t\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\t\t\t\tyear += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tmonth += 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\t$(this._focused_from).focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\t\t\telse if (ix !== -1){\n\t\t\t\tthis.dates.remove(ix);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif (!which || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tthis._trigger('changeDate');\n\t\t\tvar element;\n\t\t\tif (this.isInput){\n\t\t\t\telement = this.element;\n\t\t\t}\n\t\t\telse if (this.component){\n\t\t\t\telement = this.element.find('input');\n\t\t\t}\n\t\t\tif (element){\n\t\t\t\telement.change();\n\t\t\t}\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tif (new_month < 0 || new_month > 11)\n\t\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (this.picker.is(':not(:visible)')){\n\t\t\t\tif (e.keyCode === 27) // allow escape to hide and re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newDate, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 39: // right\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 38 ? -1 : 1;\n\t\t\t\t\tif (e.ctrlKey){\n\t\t\t\t\t\tnewDate = this.moveYear(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveYear(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse if (e.shiftKey){\n\t\t\t\t\t\tnewDate = this.moveMonth(this.dates.get(-1) || UTCToday(), dir);\n\t\t\t\t\t\tnewViewDate = this.moveMonth(focusDate, dir);\n\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnewDate = new Date(this.dates.get(-1) || UTCToday());\n\t\t\t\t\t\tnewDate.setUTCDate(newDate.getUTCDate() + dir * 7);\n\t\t\t\t\t\tnewViewDate = new Date(focusDate);\n\t\t\t\t\t\tnewViewDate.setUTCDate(focusDate.getUTCDate() + dir * 7);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.dateWithinRange(newDate)){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 32: // spacebar\n\t\t\t\t\t// Spacebar is used in manually typing dates in some formats.\n\t\t\t\t\t// As such, its behavior should not be hijacked.\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\tdateChanged = true;\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tvar element;\n\t\t\t\tif (this.isInput){\n\t\t\t\t\telement = this.element;\n\t\t\t\t}\n\t\t\t\telse if (this.component){\n\t\t\t\t\telement = this.element.find('input');\n\t\t\t\t}\n\t\t\t\tif (element){\n\t\t\t\t\telement.change();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tshowMode: function(dir){\n\t\t\tif (dir){\n\t\t\t\tthis.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + dir));\n\t\t\t}\n\t\t\tthis.picker\n\t\t\t\t.find('>div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName)\n\t\t\t\t\t.css('display', 'block');\n\t\t\tthis.updateNavArrows();\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\t$(this.inputs)\n\t\t\t.datepicker(options)\n\t\t\t.bind('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $(i).data('datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling. Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $(e.target).data('datepicker'),\n\t\t\t\tnew_date = dp.getUTCDate(),\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate())\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[i]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (i >= 0 && new_date < this.dates[i]){\n\t\t\t\t\tthis.pickers[i--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (new_date > this.dates[i]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (i < l && new_date > this.dates[i]){\n\t\t\t\t\tthis.pickers[i++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tremove: function(){\n\t\t\t$.map(this.pickers, function(p){ p.remove(); });\n\t\t\tdelete this.element.data().datepicker;\n\t\t}\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\t$.fn.datepicker = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.is('.input-daterange') || opts.inputs){\n\t\t\t\t\tvar ropts = {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t};\n\t\t\t\t\t$this.data('datepicker', (data = new DateRangePicker(this, $.extend(opts, ropts))));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$this.data('datepicker', (data = new Datepicker(this, opts)));\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t\tif (internal_return !== undefined)\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif (internal_return !== undefined)\n\t\t\treturn internal_return;\n\t\telse\n\t\t\treturn this;\n\t};\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tweekStart: 0\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\"\n\t\t}\n\t};\n\n\tvar DPGlobal = {\n\t\tmodes: [\n\t\t\t{\n\t\t\t\tclsName: 'days',\n\t\t\t\tnavFnc: 'Month',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'months',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tclsName: 'years',\n\t\t\t\tnavFnc: 'FullYear',\n\t\t\t\tnavStep: 10\n\t\t}],\n\t\tisLeapYear: function(year){\n\t\t\treturn (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\t\t},\n\t\tgetDaysInMonth: function(year, month){\n\t\t\treturn [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\t\t},\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\[\\u3400-\\u9fff-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\t// IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar part_re = /([\\-+]\\d+)([dmwy])/,\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/g),\n\t\t\t\tpart, dir, i;\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/.test(date)){\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = part_re.exec(parts[i]);\n\t\t\t\t\tdir = parseInt(part[1]);\n\t\t\t\t\tswitch (part[2]){\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'm':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveMonth.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'w':\n\t\t\t\t\t\t\tdate.setUTCDate(date.getUTCDate() + dir * 7);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'y':\n\t\t\t\t\t\t\tdate = Datepicker.prototype.moveYear.call(Datepicker.prototype, date, dir);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0);\n\t\t\t}\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\t\t\tdate = new Date();\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(v);\n\t\t\t\t\t},\n\t\t\t\t\tyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(2000+v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m === p;\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tvar val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'«'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t'»'+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t'',\n\t\tcontTemplate: '',\n\t\tfootTemplate: ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t''\n\t};\n\tDPGlobal.template = '
                                    '+\n\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t\t'
                                    '+\n\t\t\t\t\t\t'
                                    ';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\t$this.datepicker('show');\n\t\t}\n\t);\n\t$(function(){\n\t\t$('[data-provide=\"datepicker-inline\"]').datepicker();\n\t});\n\n}(window.jQuery));\n","/*!\n * Select2 4.0.0\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS\n factory(require('jquery'));\n } else {\n // Browser globals\n factory(jQuery);\n }\n}(function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =\n(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that \"directory\" and not name of the baseName's\n //module. For instance, baseName of \"one/two/three\", maps to\n //\"one/two/three.js\", but we want the directory, \"one/two\" for\n //this normalization.\n baseParts = baseParts.slice(0, baseParts.length - 1);\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n name = baseParts.concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n '
                                      '\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
                                    • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n this.$results.append($message);\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = $.data(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'treeitem',\n 'aria-selected': 'false'\n };\n\n if (data.disabled) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('
                                        ', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n $.data(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = $highlighted.data('data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close');\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at te top, don't move further\n if (currentIndex === 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = (\n self.$results.get(0).scrollHeight -\n self.$results.scrollTop() +\n e.deltaY\n );\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = $this.data('data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close');\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = $(this).data('data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (this.$element.data('old-tabindex') != null) {\n this._tabindex = this.$element.data('old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-container';\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.focus();\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n });\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n var self = this;\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n var $this = $(this);\n\n if (this == $select[0]) {\n return;\n }\n\n var $element = $this.data('element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered').attr('id', id);\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n };\n\n SingleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n SingleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var formatted = this.display(selection);\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty().append(formatted);\n $rendered.prop('title', selection.title || selection.text);\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n '
                                          '\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('click', '.select2-selection__choice__remove',\n function (evt) {\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = $selection.data('data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n });\n };\n\n MultipleSelection.prototype.clear = function () {\n this.$selection.find('.select2-selection__rendered').empty();\n };\n\n MultipleSelection.prototype.display = function (data) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
                                        • ' +\n '' +\n '×' +\n '' +\n '
                                        • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var formatted = this.display(selection);\n var $selection = this.selectionContainer();\n\n $selection.append(formatted);\n $selection.prop('title', selection.title || selection.text);\n\n $selection.data('data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys'\n], function ($, KEYS) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.options.get('disabled')) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = $clear.data('data');\n\n for (var d = 0; d < data.length; d++) {\n var unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n return;\n }\n }\n\n this.$element.val(this.placeholder.id).trigger('change');\n\n this.trigger('toggle');\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var $remove = $(\n '' +\n '×' +\n ''\n );\n $remove.data('data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n self.$search.focus();\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self.trigger('blur', evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = $previousChoice.data('data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on('input', '.select2-search--inline', function (evt) {\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n });\n\n this.$selection.on('keyup.search input', '.select2-search--inline',\n function (evt) {\n self.handleSearch(evt);\n });\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.trigger('open');\n\n this.$search.val(item.text + ' ');\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').innerWidth();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting'\n ];\n\n var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n $.removeData(this, 'data');\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n $.data(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = $.data($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n $.data($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (!$.isPlainObject(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n var data = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n\n this.addOptions(this.convertToOptions(data));\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, existingData, item);\n\n var $newOption = this.option(existingData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return {\n q: params.term\n };\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url(params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data(params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // TODO: Handle AJAX errors\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term !== '') {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var checkText = option.text === params.term;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var tag = this._lastTag;\n\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function select (data) {\n self.select(data);\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, select);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.focus();\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n decorated.call(self, params, callback);\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implmented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n\n self.$search.focus();\n\n window.setTimeout(function () {\n self.$search.focus();\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n\n self.$search.val('');\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n self.$loadingMore[0]\n );\n\n if (self.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var loadingMoreOffset = self.$loadingMore.offset().top +\n self.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n self.loadMore();\n }\n });\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
                                        • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = options.get('dropdownParent') || document.body;\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var setupResultsEvents = false;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n if (!setupResultsEvents) {\n setupResultsEvents = true;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n }\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._attachPositioningHandler = function (container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n $(this).data('select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = $(this).data('select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler = function (container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var position = this.$container.position();\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n this.$dropdownContainer.width();\n\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n\n], function () {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function () {\n self._handleSelectOnClose();\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function () {\n var $highlightedResults = this.getHighlightedResults();\n\n if ($highlightedResults.length < 1) {\n return;\n }\n\n this.trigger('select', {\n data: $highlightedResults.data('data')\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && originalEvent.ctrlKey) {\n return;\n }\n\n this.trigger('close');\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend({}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n if (typeof options.language === 'string') {\n // Check if the language is specified with a region\n if (options.language.indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = options.language.split('-');\n var baseLanguage = languageParts[0];\n\n options.language = [options.language, baseLanguage];\n } else {\n options.language = [options.language];\n }\n }\n\n if ($.isArray(options.language)) {\n var languages = new Translation();\n options.language.push('en');\n\n var languageNames = options.language;\n\n for (var l = 0; l < languageNames.length; l++) {\n var name = languageNames[l];\n var language = {};\n\n try {\n // Try to load it with the original name\n language = Translation.loadPath(name);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n name = this.defaults.amdLanguageBase + name;\n language = Translation.loadPath(name);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files.\n if (options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + name + '\" could not be ' +\n 'automatically loaded. A fallback will be used instead.'\n );\n }\n\n continue;\n }\n }\n\n languages.extend(language);\n }\n\n options.translations = languages;\n } else {\n var baseTranslation = Translation.loadPath(\n this.defaults.amdLanguageBase + 'en'\n );\n var customTranslation = new Translation(options.language);\n\n customTranslation.extend(baseTranslation);\n\n options.translations = customTranslation;\n }\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: EnglishTranslation,\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.language == null) {\n if ($e.prop('lang')) {\n this.options.language = $e.prop('lang').toLowerCase();\n } else if ($e.closest('[lang]').prop('lang')) {\n this.options.language = $e.closest('[lang]').prop('lang');\n }\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if ($e.data('select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n $e.data('data', $e.data('select2Tags'));\n $e.data('tags', true);\n }\n\n if ($e.data('ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', $e.data('ajaxUrl'));\n $e.data('ajax--url', $e.data('ajaxUrl'));\n }\n\n var dataset = {};\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, $e.data());\n } else {\n dataset = $e.data();\n }\n\n var data = $.extend(true, {}, dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if ($element.data('select2') != null) {\n $element.data('select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n $element.data('old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n\t$element.attr('aria-hidden', 'true');\n\t\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this._sync = Utils.bind(this._syncAttributes, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._sync);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n $.each(mutations, self._sync);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener('DOMAttrModified', self._sync, false);\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('focus', function () {\n self.$container.addClass('select2-container--focus');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open');\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ENTER) {\n self.trigger('results:select');\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle');\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous');\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next');\n\n evt.preventDefault();\n } else if (key === KEYS.ESC || key === KEYS.TAB) {\n self.close();\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n ((key === KEYS.DOWN || key === KEYS.UP) && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.options.get('disabled')) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable');\n } else {\n this.trigger('enable');\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting'\n };\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.options.get('disabled')) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n this.trigger('query', {});\n\n this.trigger('open');\n };\n\n Select2.prototype.close = function () {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._sync);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._sync, false);\n }\n\n this._sync = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex', this.$element.data('old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n\tthis.$element.attr('aria-hidden', 'false');\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n $container.data('element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('jquery.select2',[\n 'jquery',\n 'require',\n\n './select2/core',\n './select2/defaults'\n], function ($, require, Select2, Defaults) {\n // Force jQuery.mousewheel to be loaded if it hasn't already\n require('jquery.mousewheel');\n\n if ($.fn.select2 == null) {\n // All methods that should return the element\n var thisMethods = ['open', 'close', 'destroy'];\n\n $.fn.select2 = function (options) {\n options = options || {};\n\n if (typeof options === 'object') {\n this.each(function () {\n var instanceOptions = $.extend({}, options, true);\n\n var instance = new Select2($(this), instanceOptions);\n });\n\n return this;\n } else if (typeof options === 'string') {\n var instance = this.data('select2');\n\n if (instance == null && window.console && console.error) {\n console.error(\n 'The select2(\\'' + options + '\\') method was called on an ' +\n 'element that is not using Select2.'\n );\n }\n\n var args = Array.prototype.slice.call(arguments, 1);\n\n var ret = instance[options](args);\n\n // Check if we should be returning `this`\n if ($.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return ret;\n } else {\n throw new Error('Invalid arguments for Select2: ' + options);\n }\n };\n }\n\n if ($.fn.select2.defaults == null) {\n $.fn.select2.defaults = Defaults;\n }\n\n return Select2;\n});\n\nS2.define('jquery.mousewheel',[\n 'jquery'\n], function ($) {\n // Used to shim jQuery.mousewheel for non-full builds.\n return $;\n});\n\n // Return the AMD loader configuration so it can be used outside of this file\n return {\n define: S2.define,\n require: S2.require\n };\n}());\n\n // Autoload the jQuery bindings\n // We know that all of the modules exist above this, so we're safe\n var select2 = S2.require('jquery.select2');\n\n // Hold the AMD module references on the jQuery function that was just loaded\n // This allows Select2 to use the internal loader outside of this file, such\n // as in the language files.\n jQuery.fn.select2.amd = S2;\n\n // Return the Select2 instance for anyone who is importing it.\n return select2;\n}));\n","/*!\n * iCheck v1.0.1, http://git.io/arlzeA\n * =================================\n * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization\n *\n * (c) 2013 Damir Sultanov, http://fronteed.com\n * MIT Licensed\n */\n\n(function($) {\n\n // Cached vars\n var _iCheck = 'iCheck',\n _iCheckHelper = _iCheck + '-helper',\n _checkbox = 'checkbox',\n _radio = 'radio',\n _checked = 'checked',\n _unchecked = 'un' + _checked,\n _disabled = 'disabled',\n _determinate = 'determinate',\n _indeterminate = 'in' + _determinate,\n _update = 'update',\n _type = 'type',\n _click = 'click',\n _touch = 'touchbegin.i touchend.i',\n _add = 'addClass',\n _remove = 'removeClass',\n _callback = 'trigger',\n _label = 'label',\n _cursor = 'cursor',\n _mobile = /ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);\n\n // Plugin init\n $.fn[_iCheck] = function(options, fire) {\n\n // Walker\n var handle = 'input[type=\"' + _checkbox + '\"], input[type=\"' + _radio + '\"]',\n stack = $(),\n walker = function(object) {\n object.each(function() {\n var self = $(this);\n\n if (self.is(handle)) {\n stack = stack.add(self);\n } else {\n stack = stack.add(self.find(handle));\n }\n });\n };\n\n // Check if we should operate with some method\n if (/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(options)) {\n\n // Normalize method's name\n options = options.toLowerCase();\n\n // Find checkboxes and radio buttons\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n if (options == 'destroy') {\n tidy(self, 'ifDestroyed');\n } else {\n operate(self, true, options);\n }\n // Fire method's callback\n if ($.isFunction(fire)) {\n fire();\n }\n });\n\n // Customization\n } else if (typeof options == 'object' || !options) {\n\n // Check if any options were passed\n var settings = $.extend({\n checkedClass: _checked,\n disabledClass: _disabled,\n indeterminateClass: _indeterminate,\n labelHover: true,\n aria: false\n }, options),\n\n selector = settings.handle,\n hoverClass = settings.hoverClass || 'hover',\n focusClass = settings.focusClass || 'focus',\n activeClass = settings.activeClass || 'active',\n labelHover = !!settings.labelHover,\n labelHoverClass = settings.labelHoverClass || 'hover',\n\n // Setup clickable area\n area = ('' + settings.increaseArea).replace('%', '') | 0;\n\n // Selector limit\n if (selector == _checkbox || selector == _radio) {\n handle = 'input[type=\"' + selector + '\"]';\n }\n // Clickable area limit\n if (area < -50) {\n area = -50;\n }\n // Walk around the selector\n walker(this);\n\n return stack.each(function() {\n var self = $(this);\n\n // If already customized\n tidy(self);\n\n var node = this,\n id = node.id,\n\n // Layer styles\n offset = -area + '%',\n size = 100 + (area * 2) + '%',\n layer = {\n position: 'absolute',\n top: offset,\n left: offset,\n display: 'block',\n width: size,\n height: size,\n margin: 0,\n padding: 0,\n background: '#fff',\n border: 0,\n opacity: 0\n },\n\n // Choose how to hide input\n hide = _mobile ? {\n position: 'absolute',\n visibility: 'hidden'\n } : area ? layer : {\n position: 'absolute',\n opacity: 0\n },\n\n // Get proper class\n className = node[_type] == _checkbox ? settings.checkboxClass || 'i' + _checkbox : settings.radioClass || 'i' + _radio,\n\n // Find assigned labels\n label = $(_label + '[for=\"' + id + '\"]').add(self.closest(_label)),\n\n // Check ARIA option\n aria = !!settings.aria,\n\n // Set ARIA placeholder\n ariaID = _iCheck + '-' + Math.random().toString(36).replace('0.', ''),\n\n // Parent & helper\n parent = '
                                          ')[_callback]('ifCreated').parent().append(settings.insert);\n\n // Layer addition\n helper = $('').css(layer).appendTo(parent);\n\n // Finalize customization\n self.data(_iCheck, {o: settings, s: self.attr('style')}).css(hide);\n !!settings.inheritClass && parent[_add](node.className || '');\n !!settings.inheritID && id && parent.attr('id', _iCheck + '-' + id);\n parent.css('position') == 'static' && parent.css('position', 'relative');\n operate(self, true, _update);\n\n // Label events\n if (label.length) {\n label.on(_click + '.i mouseover.i mouseout.i ' + _touch, function(event) {\n var type = event[_type],\n item = $(this);\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n if ($(event.target).is('a')) {\n return;\n }\n operate(self, false, true);\n\n // Hover state\n } else if (labelHover) {\n\n // mouseout|touchend\n if (/ut|nd/.test(type)) {\n parent[_remove](hoverClass);\n item[_remove](labelHoverClass);\n } else {\n parent[_add](hoverClass);\n item[_add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n }\n // Input events\n self.on(_click + '.i focus.i blur.i keyup.i keydown.i keypress.i', function(event) {\n var type = event[_type],\n key = event.keyCode;\n\n // Click\n if (type == _click) {\n return false;\n\n // Keydown\n } else if (type == 'keydown' && key == 32) {\n if (!(node[_type] == _radio && node[_checked])) {\n if (node[_checked]) {\n off(self, _checked);\n } else {\n on(self, _checked);\n }\n }\n return false;\n\n // Keyup\n } else if (type == 'keyup' && node[_type] == _radio) {\n !node[_checked] && on(self, _checked);\n\n // Focus/blur\n } else if (/us|ur/.test(type)) {\n parent[type == 'blur' ? _remove : _add](focusClass);\n }\n });\n\n // Helper events\n helper.on(_click + ' mousedown mouseup mouseover mouseout ' + _touch, function(event) {\n var type = event[_type],\n\n // mousedown|mouseup\n toggle = /wn|up/.test(type) ? activeClass : hoverClass;\n\n // Do nothing if input is disabled\n if (!node[_disabled]) {\n\n // Click\n if (type == _click) {\n operate(self, false, true);\n\n // Active and hover states\n } else {\n\n // State is on\n if (/wn|er|in/.test(type)) {\n\n // mousedown|mouseover|touchbegin\n parent[_add](toggle);\n\n // State is off\n } else {\n parent[_remove](toggle + ' ' + activeClass);\n }\n // Label hover\n if (label.length && labelHover && toggle == hoverClass) {\n\n // mouseout|touchend\n label[/ut|nd/.test(type) ? _remove : _add](labelHoverClass);\n }\n }\n if (_mobile) {\n event.stopPropagation();\n } else {\n return false;\n }\n }\n });\n });\n } else {\n return this;\n }\n };\n\n // Do something with inputs\n function operate(input, direct, method) {\n var node = input[0],\n state = /er/.test(method) ? _indeterminate : /bl/.test(method) ? _disabled : _checked,\n active = method == _update ? {\n checked: node[_checked],\n disabled: node[_disabled],\n indeterminate: input.attr(_indeterminate) == 'true' || input.attr(_determinate) == 'false'\n } : node[state];\n\n // Check, disable or indeterminate\n if (/^(ch|di|in)/.test(method) && !active) {\n on(input, state);\n\n // Uncheck, enable or determinate\n } else if (/^(un|en|de)/.test(method) && active) {\n off(input, state);\n\n // Update\n } else if (method == _update) {\n\n // Handle states\n for (var state in active) {\n if (active[state]) {\n on(input, state, true);\n } else {\n off(input, state, true);\n }\n }\n } else if (!direct || method == 'toggle') {\n\n // Helper or label was clicked\n if (!direct) {\n input[_callback]('ifClicked');\n }\n // Toggle checked state\n if (active) {\n if (node[_type] !== _radio) {\n off(input, state);\n }\n } else {\n on(input, state);\n }\n }\n }\n // Add checked, disabled or indeterminate state\n function on(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== true) {\n\n // Toggle assigned radio buttons\n if (!keep && state == _checked && node[_type] == _radio && node.name) {\n var form = input.closest('form'),\n inputs = 'input[name=\"' + node.name + '\"]';\n\n inputs = form.length ? form.find(inputs) : $(inputs);\n\n inputs.each(function() {\n if (this !== node && $(this).data(_iCheck)) {\n off($(this), state);\n }\n });\n }\n // Indeterminate state\n if (indeterminate) {\n\n // Add indeterminate state\n node[state] = true;\n\n // Remove checked state\n if (node[_checked]) {\n off(input, _checked, 'force');\n }\n // Checked or disabled state\n } else {\n\n // Add checked or disabled state\n if (!keep) {\n node[state] = true;\n }\n // Remove indeterminate state\n if (checked && node[_indeterminate]) {\n off(input, _indeterminate, false);\n }\n }\n // Trigger callbacks\n callbacks(input, checked, state, keep);\n }\n // Add proper cursor\n if (node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'default');\n }\n // Add state class\n parent[_add](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'true') : parent.attr('aria-checked', indeterminate ? 'mixed' : 'true');\n\n // Remove regular state class\n parent[_remove](regular || option(input, callback) || '');\n }\n // Remove checked, disabled or indeterminate state\n function off(input, state, keep) {\n var node = input[0],\n parent = input.parent(),\n checked = state == _checked,\n indeterminate = state == _indeterminate,\n disabled = state == _disabled,\n callback = indeterminate ? _determinate : checked ? _unchecked : 'enabled',\n regular = option(input, callback + capitalize(node[_type])),\n specific = option(input, state + capitalize(node[_type]));\n\n // Prevent unnecessary actions\n if (node[state] !== false) {\n\n // Toggle state\n if (indeterminate || !keep || keep == 'force') {\n node[state] = false;\n }\n // Trigger callbacks\n callbacks(input, checked, callback, keep);\n }\n // Add proper cursor\n if (!node[_disabled] && !!option(input, _cursor, true)) {\n parent.find('.' + _iCheckHelper).css(_cursor, 'pointer');\n }\n // Remove state class\n parent[_remove](specific || option(input, state) || '');\n\n // Set ARIA attribute\n disabled ? parent.attr('aria-disabled', 'false') : parent.attr('aria-checked', 'false');\n\n // Add regular state class\n parent[_add](regular || option(input, callback) || '');\n }\n // Remove all traces\n function tidy(input, callback) {\n if (input.data(_iCheck)) {\n\n // Remove everything except input\n input.parent().html(input.attr('style', input.data(_iCheck).s || ''));\n\n // Callback\n if (callback) {\n input[_callback](callback);\n }\n // Unbind events\n input.off('.i').unwrap();\n $(_label + '[for=\"' + input[0].id + '\"]').add(input.closest(_label)).off('.i');\n }\n }\n // Get some option\n function option(input, state, regular) {\n if (input.data(_iCheck)) {\n return input.data(_iCheck).o[state + (regular ? '' : 'Class')];\n }\n }\n // Capitalize some string\n function capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n // Executable handlers\n function callbacks(input, checked, callback, keep) {\n if (!keep) {\n if (checked) {\n input[_callback]('ifToggled');\n }\n input[_callback]('ifChanged')[_callback]('if' + capitalize(callback));\n }\n }\n})(window.jQuery || window.Zepto);\n","\n/*\nLightbox for Bootstrap 3 by @ashleydw\nhttps://github.com/ashleydw/lightbox\n\nLicense: https://github.com/ashleydw/lightbox/blob/master/LICENSE\n */\n\n(function() {\n \"use strict\";\n var $, EkkoLightbox;\n\n $ = jQuery;\n\n EkkoLightbox = function(element, options) {\n var content, footer, header;\n this.options = $.extend({\n title: null,\n footer: null,\n remote: null\n }, $.fn.ekkoLightbox.defaults, options || {});\n this.$element = $(element);\n content = '';\n this.modal_id = this.options.modal_id ? this.options.modal_id : 'ekkoLightbox-' + Math.floor((Math.random() * 1000) + 1);\n header = '

                                          ' + (this.options.title || \" \") + '

                                          ';\n footer = '
                                          ' + this.options.footer + '
                                          ';\n $(document.body).append('
                                          ' + header + '
                                          ' + footer + '
                                          ');\n this.modal = $('#' + this.modal_id);\n this.modal_dialog = this.modal.find('.modal-dialog').first();\n this.modal_content = this.modal.find('.modal-content').first();\n this.modal_body = this.modal.find('.modal-body').first();\n this.modal_header = this.modal.find('.modal-header').first();\n this.modal_footer = this.modal.find('.modal-footer').first();\n this.lightbox_container = this.modal_body.find('.ekko-lightbox-container').first();\n this.lightbox_body = this.lightbox_container.find('> div:first-child').first();\n this.showLoading();\n this.modal_arrows = null;\n this.border = {\n top: parseFloat(this.modal_dialog.css('border-top-width')) + parseFloat(this.modal_content.css('border-top-width')) + parseFloat(this.modal_body.css('border-top-width')),\n right: parseFloat(this.modal_dialog.css('border-right-width')) + parseFloat(this.modal_content.css('border-right-width')) + parseFloat(this.modal_body.css('border-right-width')),\n bottom: parseFloat(this.modal_dialog.css('border-bottom-width')) + parseFloat(this.modal_content.css('border-bottom-width')) + parseFloat(this.modal_body.css('border-bottom-width')),\n left: parseFloat(this.modal_dialog.css('border-left-width')) + parseFloat(this.modal_content.css('border-left-width')) + parseFloat(this.modal_body.css('border-left-width'))\n };\n this.padding = {\n top: parseFloat(this.modal_dialog.css('padding-top')) + parseFloat(this.modal_content.css('padding-top')) + parseFloat(this.modal_body.css('padding-top')),\n right: parseFloat(this.modal_dialog.css('padding-right')) + parseFloat(this.modal_content.css('padding-right')) + parseFloat(this.modal_body.css('padding-right')),\n bottom: parseFloat(this.modal_dialog.css('padding-bottom')) + parseFloat(this.modal_content.css('padding-bottom')) + parseFloat(this.modal_body.css('padding-bottom')),\n left: parseFloat(this.modal_dialog.css('padding-left')) + parseFloat(this.modal_content.css('padding-left')) + parseFloat(this.modal_body.css('padding-left'))\n };\n this.modal.on('show.bs.modal', this.options.onShow.bind(this)).on('shown.bs.modal', (function(_this) {\n return function() {\n _this.modal_shown();\n return _this.options.onShown.call(_this);\n };\n })(this)).on('hide.bs.modal', this.options.onHide.bind(this)).on('hidden.bs.modal', (function(_this) {\n return function() {\n if (_this.gallery) {\n $(document).off('keydown.ekkoLightbox');\n }\n _this.modal.remove();\n return _this.options.onHidden.call(_this);\n };\n })(this)).modal('show', options);\n return this.modal;\n };\n\n EkkoLightbox.prototype = {\n modal_shown: function() {\n var video_id;\n if (!this.options.remote) {\n return this.error('No remote target given');\n } else {\n this.gallery = this.$element.data('gallery');\n if (this.gallery) {\n if (this.options.gallery_parent_selector === 'document.body' || this.options.gallery_parent_selector === '') {\n this.gallery_items = $(document.body).find('*[data-gallery=\"' + this.gallery + '\"]');\n } else {\n this.gallery_items = this.$element.parents(this.options.gallery_parent_selector).first().find('*[data-gallery=\"' + this.gallery + '\"]');\n }\n this.gallery_index = this.gallery_items.index(this.$element);\n $(document).on('keydown.ekkoLightbox', this.navigate.bind(this));\n if (this.options.directional_arrows && this.gallery_items.length > 1) {\n this.lightbox_container.append('
                                          ');\n this.modal_arrows = this.lightbox_container.find('div.ekko-lightbox-nav-overlay').first();\n this.lightbox_container.find('a' + this.strip_spaces(this.options.left_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_left();\n };\n })(this));\n this.lightbox_container.find('a' + this.strip_spaces(this.options.right_arrow_class)).on('click', (function(_this) {\n return function(event) {\n event.preventDefault();\n return _this.navigate_right();\n };\n })(this));\n }\n }\n if (this.options.type) {\n if (this.options.type === 'image') {\n return this.preloadImage(this.options.remote, true);\n } else if (this.options.type === 'youtube' && (video_id = this.getYoutubeId(this.options.remote))) {\n return this.showYoutubeVideo(video_id);\n } else if (this.options.type === 'vimeo') {\n return this.showVimeoVideo(this.options.remote);\n } else if (this.options.type === 'instagram') {\n return this.showInstagramVideo(this.options.remote);\n } else if (this.options.type === 'url') {\n return this.loadRemoteContent(this.options.remote);\n } else if (this.options.type === 'video') {\n return this.showVideoIframe(this.options.remote);\n } else {\n return this.error(\"Could not detect remote target type. Force the type using data-type=\\\"image|youtube|vimeo|instagram|url|video\\\"\");\n }\n } else {\n return this.detectRemoteType(this.options.remote);\n }\n }\n },\n strip_stops: function(str) {\n return str.replace(/\\./g, '');\n },\n strip_spaces: function(str) {\n return str.replace(/\\s/g, '');\n },\n isImage: function(str) {\n return str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n },\n isSwf: function(str) {\n return str.match(/\\.(swf)((\\?|#).*)?$/i);\n },\n getYoutubeId: function(str) {\n var match;\n match = str.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/);\n if (match && match[2].length === 11) {\n return match[2];\n } else {\n return false;\n }\n },\n getVimeoId: function(str) {\n if (str.indexOf('vimeo') > 0) {\n return str;\n } else {\n return false;\n }\n },\n getInstagramId: function(str) {\n if (str.indexOf('instagram') > 0) {\n return str;\n } else {\n return false;\n }\n },\n navigate: function(event) {\n event = event || window.event;\n if (event.keyCode === 39 || event.keyCode === 37) {\n if (event.keyCode === 39) {\n return this.navigate_right();\n } else if (event.keyCode === 37) {\n return this.navigate_left();\n }\n }\n },\n navigateTo: function(index) {\n var next, src;\n if (index < 0 || index > this.gallery_items.length - 1) {\n return this;\n }\n this.showLoading();\n this.gallery_index = index;\n this.$element = $(this.gallery_items.get(this.gallery_index));\n this.updateTitleAndFooter();\n src = this.$element.attr('data-remote') || this.$element.attr('href');\n this.detectRemoteType(src, this.$element.attr('data-type') || false);\n if (this.gallery_index + 1 < this.gallery_items.length) {\n next = $(this.gallery_items.get(this.gallery_index + 1), false);\n src = next.attr('data-remote') || next.attr('href');\n if (next.attr('data-type') === 'image' || this.isImage(src)) {\n return this.preloadImage(src, false);\n }\n }\n },\n navigate_left: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === 0) {\n this.gallery_index = this.gallery_items.length - 1;\n } else {\n this.gallery_index--;\n }\n this.options.onNavigate.call(this, 'left', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n navigate_right: function() {\n if (this.gallery_items.length === 1) {\n return;\n }\n if (this.gallery_index === this.gallery_items.length - 1) {\n this.gallery_index = 0;\n } else {\n this.gallery_index++;\n }\n this.options.onNavigate.call(this, 'right', this.gallery_index);\n return this.navigateTo(this.gallery_index);\n },\n detectRemoteType: function(src, type) {\n var video_id;\n type = type || false;\n if (type === 'image' || this.isImage(src)) {\n this.options.type = 'image';\n return this.preloadImage(src, true);\n } else if (type === 'youtube' || (video_id = this.getYoutubeId(src))) {\n this.options.type = 'youtube';\n return this.showYoutubeVideo(video_id);\n } else if (type === 'vimeo' || (video_id = this.getVimeoId(src))) {\n this.options.type = 'vimeo';\n return this.showVimeoVideo(video_id);\n } else if (type === 'instagram' || (video_id = this.getInstagramId(src))) {\n this.options.type = 'instagram';\n return this.showInstagramVideo(video_id);\n } else if (type === 'video') {\n this.options.type = 'video';\n return this.showVideoIframe(video_id);\n } else {\n this.options.type = 'url';\n return this.loadRemoteContent(src);\n }\n },\n updateTitleAndFooter: function() {\n var caption, footer, header, title;\n header = this.modal_content.find('.modal-header');\n footer = this.modal_content.find('.modal-footer');\n title = this.$element.data('title') || \"\";\n caption = this.$element.data('footer') || \"\";\n if (title || this.options.always_show_close) {\n header.css('display', '').find('.modal-title').html(title || \" \");\n } else {\n header.css('display', 'none');\n }\n if (caption) {\n footer.css('display', '').html(caption);\n } else {\n footer.css('display', 'none');\n }\n return this;\n },\n showLoading: function() {\n this.lightbox_body.html('
                                          ' + this.options.loadingMessage + '
                                          ');\n return this;\n },\n showYoutubeVideo: function(id) {\n var height, rel, width;\n if ((this.$element.attr('data-norelated') != null) || this.options.no_related) {\n rel = \"&rel=0\";\n } else {\n rel = \"\";\n }\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (560 / 315);\n return this.showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + rel, width, height);\n },\n showVimeoVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 560);\n height = width / (500 / 281);\n return this.showVideoIframe(id + '?autoplay=1', width, height);\n },\n showInstagramVideo: function(id) {\n var height, width;\n width = this.checkDimensions(this.$element.data('width') || 612);\n this.resize(width);\n height = width + 80;\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n return this.modal_arrows.css('display', 'none');\n }\n },\n showVideoIframe: function(url, width, height) {\n height = height || width;\n this.resize(width);\n this.lightbox_body.html('
                                          ');\n this.options.onContentLoaded.call(this);\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n loadRemoteContent: function(url) {\n var disableExternalCheck, width;\n width = this.$element.data('width') || 560;\n this.resize(width);\n disableExternalCheck = this.$element.data('disableExternalCheck') || false;\n if (!disableExternalCheck && !this.isExternal(url)) {\n this.lightbox_body.load(url, $.proxy((function(_this) {\n return function() {\n return _this.$element.trigger('loaded.bs.modal');\n };\n })(this)));\n } else {\n this.lightbox_body.html('');\n this.options.onContentLoaded.call(this);\n }\n if (this.modal_arrows) {\n this.modal_arrows.css('display', 'none');\n }\n return this;\n },\n isExternal: function(url) {\n var match;\n match = url.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\n if (typeof match[1] === \"string\" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) {\n return true;\n }\n if (typeof match[2] === \"string\" && match[2].length > 0 && match[2].replace(new RegExp(\":(\" + {\n \"http:\": 80,\n \"https:\": 443\n }[location.protocol] + \")?$\"), \"\") !== location.host) {\n return true;\n }\n return false;\n },\n error: function(message) {\n this.lightbox_body.html(message);\n return this;\n },\n preloadImage: function(src, onLoadShowImage) {\n var img;\n img = new Image();\n if ((onLoadShowImage == null) || onLoadShowImage === true) {\n img.onload = (function(_this) {\n return function() {\n var image;\n image = $('');\n image.attr('src', img.src);\n image.addClass('img-responsive');\n _this.lightbox_body.html(image);\n if (_this.modal_arrows) {\n _this.modal_arrows.css('display', 'block');\n }\n return image.load(function() {\n if (_this.options.scale_height) {\n _this.scaleHeight(img.height, img.width);\n } else {\n _this.resize(img.width);\n }\n return _this.options.onContentLoaded.call(_this);\n });\n };\n })(this);\n img.onerror = (function(_this) {\n return function() {\n return _this.error('Failed to load image: ' + src);\n };\n })(this);\n }\n img.src = src;\n return img;\n },\n scaleHeight: function(height, width) {\n var border_padding, factor, footer_height, header_height, margins, max_height;\n header_height = this.modal_header.outerHeight(true) || 0;\n footer_height = this.modal_footer.outerHeight(true) || 0;\n if (!this.modal_footer.is(':visible')) {\n footer_height = 0;\n }\n if (!this.modal_header.is(':visible')) {\n header_height = 0;\n }\n border_padding = this.border.top + this.border.bottom + this.padding.top + this.padding.bottom;\n margins = parseFloat(this.modal_dialog.css('margin-top')) + parseFloat(this.modal_dialog.css('margin-bottom'));\n max_height = $(window).height() - border_padding - margins - header_height - footer_height;\n factor = Math.min(max_height / height, 1);\n this.modal_dialog.css('height', 'auto').css('max-height', max_height);\n return this.resize(factor * width);\n },\n resize: function(width) {\n var width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n this.modal_dialog.css('width', 'auto').css('max-width', width_total);\n this.lightbox_container.find('a').css('line-height', function() {\n return $(this).parent().height() + 'px';\n });\n return this;\n },\n checkDimensions: function(width) {\n var body_width, width_total;\n width_total = width + this.border.left + this.padding.left + this.padding.right + this.border.right;\n body_width = document.body.clientWidth;\n if (width_total > body_width) {\n width = this.modal_body.width();\n }\n return width;\n },\n close: function() {\n return this.modal.modal('hide');\n },\n addTrailingSlash: function(url) {\n if (url.substr(-1) !== '/') {\n url += '/';\n }\n return url;\n }\n };\n\n $.fn.ekkoLightbox = function(options) {\n return this.each(function() {\n var $this;\n $this = $(this);\n options = $.extend({\n remote: $this.attr('data-remote') || $this.attr('href'),\n gallery_parent_selector: $this.attr('data-parent'),\n type: $this.attr('data-type')\n }, options, $this.data());\n new EkkoLightbox(this, options);\n return this;\n });\n };\n\n $.fn.ekkoLightbox.defaults = {\n gallery_parent_selector: 'document.body',\n left_arrow_class: '.glyphicon .glyphicon-chevron-left',\n right_arrow_class: '.glyphicon .glyphicon-chevron-right',\n directional_arrows: true,\n type: null,\n always_show_close: true,\n no_related: false,\n scale_height: true,\n loadingMessage: 'Loading...',\n onShow: function() {},\n onShown: function() {},\n onHide: function() {},\n onHidden: function() {},\n onNavigate: function() {},\n onContentLoaded: function() {}\n };\n\n}).call(this);\n","/**\n * Module containing core application logic.\n * @param {jQuery} $ Insulated jQuery object\n * @param {JSON} settings Insulated `window.snipeit.settings` object.\n * @return {IIFE} Immediately invoked. Returns self.\n */\n\n\nvar pieOptions = {\n //Boolean - Whether we should show a stroke on each segment\n segmentShowStroke: true,\n //String - The colour of each segment stroke\n segmentStrokeColor: \"#fff\",\n //Number - The width of each segment stroke\n segmentStrokeWidth: 1,\n //Number - The percentage of the chart that we cut out of the middle\n percentageInnerCutout: 50, // This is 0 for Pie charts\n //Number - Amount of animation steps\n animationSteps: 100,\n //String - Animation easing effect\n animationEasing: \"easeOutBounce\",\n //Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n //Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false,\n //Boolean - whether to make the chart responsive to window resizing\n responsive: true,\n // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container\n maintainAspectRatio: false,\n\n //String - A legend template\n legendTemplate: \"
                                            -legend\\\"><% for (var i=0; i
                                          • \" +\n \"\" +\n \"<%if(segments[i].label){%><%=segments[i].label%><%}%> foo
                                          • <%}%>
                                          \",\n //String - A tooltip template\n tooltipTemplate: \"<%=value %> <%=label%> \"\n};\n//console.dir(pieOptions);\n//Create pie or douhnut chart\n// You can switch between pie and douhnut using the method below.\n//pieChart.Doughnut(PieData, pieOptions);\n//-----------------\n//- END PIE CHART -\n//-----------------\n\n\n\n(function($, settings) {\n var Components = {};\n Components.modals = {};\n\n // confirm delete modal\n Components.modals.confirmDelete = function() {\n var $el = $('table');\n\n var events = {\n 'click': function(evnt) {\n var $context = $(this);\n var $dataConfirmModal = $('#dataConfirmModal');\n var href = $context.attr('href');\n var message = $context.attr('data-content');\n var title = $context.attr('data-title');\n\n $('#myModalLabel').text(title);\n $dataConfirmModal.find('.modal-body').text(message);\n $('#deleteForm').attr('action', href);\n $dataConfirmModal.modal({\n show: true\n });\n return false;\n }\n };\n\n var render = function() {\n $el.on('click', '.delete-asset', events['click']);\n };\n\n return {\n render: render\n };\n };\n\n\n /**\n * Application start point\n * Component definition stays out of load event, execution only happens.\n */\n $(function() {\n new Components.modals.confirmDelete().render();\n });\n}(jQuery, window.snipeit.settings));\n\n\n// Vue.component(\n// 'passport-clients',\n// require('./components/passport/Clients.vue')\n// );\n//\n// Vue.component(\n// 'passport-authorized-clients',\n// require('./components/passport/AuthorizedClients.vue')\n// );\n//\n// Vue.component(\n// 'passport-personal-access-tokens',\n// require('./components/passport/PersonalAccessTokens.vue')\n// );\n"]} \ No newline at end of file diff --git a/public/build/rev-manifest.json b/public/build/rev-manifest.json index 0feada9ad2..c17bc8964e 100644 --- a/public/build/rev-manifest.json +++ b/public/build/rev-manifest.json @@ -1,4 +1,4 @@ { "assets/css/app.css": "assets/css/app-0979ad0cf2.css", - "assets/js/all.js": "assets/js/all-7289d0f397.js" + "assets/js/all.js": "assets/js/all-badb120e11.js" } \ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js new file mode 100644 index 0000000000000000000000000000000000000000..6c493dc6513c53a69a902831db0d75f6a24abfda GIT binary patch literal 61182 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 literal 0 HcmV?d00001 diff --git a/public/js/bootstrap.js b/public/js/bootstrap.js new file mode 100644 index 0000000000000000000000000000000000000000..72c475b9642eebda2106fe9ef52d225b39e27e97 GIT binary patch literal 3061192 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

                                          9 zvFF%FpP^QKk$6Ye&h`mCj1G}ciI4Bxp~i#6|M64YSFG_2=XcG06w^QQ$HYBJjfVL6 zN^=LfUX>kuPs@>sx6OaoQopG*R;U8MB2==Ew zFL*l3nVc9ezT(q=&Q8?3C7*FL);h4R#7*Kxw75-u_>01n@H_l%&3h=l2hP1>x$*{| z!@F5*CO-~eGUxatPT>@s7cn?~)x-Fc<`xx9NBY%f|5-cvDejk+HFQix$rGlni5U;f zJ6qHlv|5|?HZUlh=X_@DGqakMUv$pzu8*MnqRr954%{o}Ql7Dm5y1(pf3ZH(m=|5w zQZu(%&oOgKZ>UXScgx@mvJ4DtoHDWsw~}=jn%*_b>dH zU}DgHomyh(A^BQ1r;A#O@hr#=*O{rMCgZus)%9G@ehx8t0{gi%e~->J`?aX@tk>j< z{^{sPi@)rBSM7J?sff{t-Nc)YeSjwe8+507k70Bz&bD4w

                                          qempD`J==OnlWWlb?`19EO_!n&mn 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%0A;eQ{8`M=#G8`gu+evy6Clu3 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

                                          F*_sWlh`Np%QMF2-SyoT_ z)QrA7Uh=%MfGLa;LZOr$x`J7^))>$vE7l!T83U&{KrqR+9y0Sp@ErF{;DG&*VCGbI z8rMO9ZC5^qYihoY;8l`+g{K*seVEu2Wr+VQTnmQ#Z$UFb^~DQCGKwrfuCIV=Qf(OF zC}Dga=`0bG4XM@78so5-gNxQ0;A>A|Okc^??*vZnGs;Sk#BsdU^GY%W!ohqqn$ezM zWp}1B$0{6V_~IdqV7T)M&XH52fiMUjqNj;s7F%=YNp-Fs>2Schk_5MBEqm6ydquXO zO029Zb|OUs=lssJs!GHG6p&lD zOh?(2b5$7{kVI6*dutKLK1Og z&AJ}ewh~IrVt`!07{NV3ujgmlJP~VySA#%@MM!kp@rY^7s&u>lY_b_{kEuh zSJ66bioT&a))f`FJHys@sRWY%c8yAyT`ZHvRtwF-nm(bP41ov!{+zQQ$dJf#ZEo5R zY_Gflg-7A(kDg|jP;4d~;woco1Ru;c>lcsYLI(m!3V1)w@3ol%Hvy^N=k?K2_2)Xr z*e!7wYsV7$f4JS?8K$qGzTk_H?JboG0G-=4h&{^M(yyYfDzL; zrTiuJ4GP*Dj>#9PrPyK;wU5W6m>^~+=&H!uCnE2Uu>TZF3A8?S5 zKg#B(TDth*W$LTgx!`Lc#x|}&YITKj*kH8KE`GO1(5I@6@qGg>MP^~KqqTNXIh3GW zKIH7=?98&7sd#LJ0l0)EEfp5+RSLmE@zqVw?a=`@?#z;H?agjPPp~_GFhC06!$8R} zpbKX-Ays8}NA_7Y#Htx~tUXz2uqHRLe!@+-LPsz4BejdOf`UF|G!~QDcd!*)gdPWG z3{MznPMs^)e=g1ys5GbxdM=e<@Mde`@TN4NVOKP^$|fzSiR#IGRpjtV_H+XXthoZl zr?0WJgMM{0I&@Cm@x-&nr8c&*(%AmSNWe+!s-QP+hGQ~%1-H#5Yi!$niz zREi)eFU}Gd+*pH6bdU7GjT!h4a=M*oDXdfY|2nI1u1r3outMu1cKcqY-o%;2Y#w1T zW(JFJHFIiUku!u9h-$vjVpv9`jK@Gs>8~WBSZ$k1v2hHX!x#btda~a%E7nHprU6%p z1>18@g}q+-KVOwX%$R}kF@vxnktexNd*Gw(-3{?cTh-dKIz@%t!k%LMNziJ!fC5?7 z>50}K@s(P6!QJDC7Mq+E=YEmZO;3W-N@aE6Z(=JPK|4#;g*fS4U^_G8R#I2-tXiNS zs5?@U;uosQvr(IwO!A>tx{LVB7~P2CzNkIAhVW5=94OW<;FkMe>2R**pKx%MK|63K z9sZpZduSwDBTz-yEviL(^Gbo&XOx-jSy_# zDZXl*fuikZP-zL2bFuP?#8bnry@r`pEW?3+g=8{yre{&-g(1cjRt7g|)}3DXgdY}v zpImc{SP!pZ+aPr%dpv)JV2SE~9=Wd9afpG=Tm5_7)Q8Yo@J5siY&BR0e4wHGS>|D# zmyBy!#l-PB6x{ zP_SMj!P{ByaUHfJ6xWNuo$Q!iXO~Neb(QOF!o-YQ{^ZE48mPfcaP=_zh+KM)op-OX z7Z0H#XLzu}T*G-EeZWa8-n)sL6uSL-`+91(sSz*>ci>bKx)jrlztX--)^PRT4h=)O zP~g7P;ixS-VICZ;{%M$tEpIIC9zy~Px6?0F&WYk~9Zj!rGN$0%*t#k+uTmH(O5c=@8zfa}1g<+d6b z?>w_0?2FznC!V+-gC7wLRQR=PV3+z5DtNhMI-pA&7q&EB z?mj=v-NDv>_jN!l*QfR|au-)wRQWQ2AHl1a>?_Tp}or(|Ehm@N$ zCp*Iofk+snNL1hr(m@}iT+o?^{t-+HNBND(v?S@FS!j>g5mc!!zWC~aT||XBM}val z1;hwAiNA+duOPb!GCEBF`4nn?B059@_aG?Igru{fCT!v0?xTciWK@x2+B*TrI*>?b zZ0Yh+zFb~>X(;JTw}%VKkoBEzd}c} zJW7~PmzVg6Ys;qVv^m@AT%u1NwlY{1@Ev#6GSMoA_!l zIN*=A&Y)igMC=vu5#WnJ%c(m$lt`*&x29rGc{2AhX&0yyVZ0wWgbRV8;gXOSF#^4y zDv&^>HYd#DmutpTqFl$c3DYs;R1V_nScL}nl-2M5>hg-XEEk6dLXvu>sd-Q~5$xJn z0jRFw1jnOQo`^$vEhYoGrPVDDUtNx|-EvEIc>8;Hm*(3HRQv%FTrTzcko-h&6K5`& z3Ld}b3vrH^o$@oe4M8ESVZT3K0+NHFbDl$FWz$mqPJOE~YB^kT(`)dDCFjj&3F+1> zWg+slTxeI8;0hK@;EbJ?SyE8QPrKLe4;=G%i?ZjF>RvzD2IGM44}1q`$Rdmx1`EIH z3C7g#PHQBhziux>4h$wxyhvdBRhqCQh+qL&Z+I5yss|H64%UdC=pDUA6YbqK>~fdJ4@* zJLl;2N#?i#j$XgQQLl-EqE~(vK6tApNNe0$A2t^=9!`*=)Uph_9MyCFNeatTjUUuY zs{57ixcTJDYp(Jb{%MyzAJi0OmLN!L&ke=^H9>I)9&R92Q9Bp|LR`VeC;sy36S}^`TyiDm^yZ6aqMnL+4k#sM9 znS#~pO_0Mn9bu<6FbErDB%aG@Z|iA%$QDJQz-dm_q4Vgk__J7^9Bu#(Tq8&XtT^9& zXPwipg5zaZ29q6jK)J?ga6PTBNan?xPed#Sc~{4u#q{Q&O)#Q)coXCz;zSRB{K~|agV!WJ<#?M7dc0K_s`T2QB zX@N}fNnHS*vI*>H>KQ!mS;sX+cm7fj2Ro)YD`7=WI>E1tOoaN5W9Rd=C{;w~@4O}sc_&vA^{q0s-8n}gPRW_&1 za4~n1NK|@sRYmq>bPmAn-y__NrfH!54|XsbiAIv>gi1-#rftDhQVY#j5o6n`wl`1Q zST%^^usK8oGxt?(cKdvu6GQq5s%K;eLQz3PK=YcgCHf~Ky~ttUHWzSk7i0)@M4Ajt zpZ<&uOgo=X-e`1lVm3wRY+*jT?pdfGbS|)y81%Q?#ZbVnrh5RI$zWk;Y~$ewktB(o z#yI49;K(y@I+!aQyK^bmu)Z?{&M37go(NF&sS_=O2U^wt1r7L3s72U{YsyJG2hJ;a zk_@p^I2k~ML`^?~iXQUOLvghmMfM^8rWwWx^p2Z+3f z2!k3nBORQ#a=i*ROZO^wm11q!#@WT|eg{Vx)s~Xm-rj!oe^%dMsDNN)h}~fH5pcuF zXTZW$gu{<8sq~t!27Sb{)#VjCw5>LR@YOIpK)XJH(Gju3ALxdR!9QIm{Yu-V&Y~iq zvQ`!OVfChA1-E>8>tn(a z>NV|{oX7`Z!>BaM9vD3Lis=E}cCWyZa7C58a@5dG*35`@Cih~3Dr@*5G+nnoy83Lf zSIOmGfswv~j{Is)QDj+l^d4G{RkxnqC_1)+e+i}el_%x#Z*^|@SJ2aO4Ma>DK*=Ze z9Tmh6^Iu?4{C`f{@itv%PdU@+wu+g|?DLK$O9ipB$%Fo2f*C{;9a`gW(l?Je#WvcSYIf+VPhN9;nu+ia>t29(LiBw;q zw9x4j$|Fkx#eob=4?fd8C~F4MW(>*V@wqXOJZDhuGl%kJb6 zRFugEbe?>xU(&u1C5wCijL;t>%*<1^hvqFsv$`{1w-hm(s%2=0iD3w3wF}sy!(Mv$ z+Q6t=qV3qctVP`U%<9qT;aYsK1$I#9S8!`S+*J>C?|G&)Zsh z-b^~rtAh27k^u)I;_Ug0O<9(K-Qu$$72*gdQ{9{-K~l;mKvGK1*NWpCr#^wG#_=zu zkVE5%XTeG}J0Ourhi1cAHVLGvL?Y2v0+1(Sx;7?0N>p8giwS=H9llrzr-ywKGleak z*q;eOv1FEP2a={&JDV`SzgnM&CsPU(2|W&J!uH!{?ejV22?UpV7Vpz0!*Y0HXJ*f8 zjB<+NW*f|-Wn>H7Hx2yrlAx+Z6QH`V@LZD7<8J>_GKsSvE`wjheM)Bi4C6SfgHtj7 z&SgC;oB%_Xn+L_5Y)GnxYvJTyoUaG7vW25hXuvZ)GTKjWqwCSv|L&NRY z4l@=(!&;Nv;9(Uur}@Jc?0K?@gM8G~@Ocu27(0_V)1*!bC5+<&b{g%I(ULW|A%sdV zxM4c*2XpEz1X%OGt0qe7T2&8wiRPHU=YllTb%73vJ>FAFmq5nUJXk-yEUss_FLU|Q z_Re;}tHhb-oZRC1r*RoluakFD$9kc#ewK7euM2-nhyT0A0UVUkXEy5>A)_;Ja^ryv z=m$P_!!+cVLjPaI8}}+=A9a3F70rkxIfi1QExUFclciCLH)jTMf_--o_*2?=3QAh8 zA6TS>#aMHuwrP@)sL8(k4$m`n)VmV>TFxGLaeBBNpv>V3|^2+DCG z1sTgbaG_NxqonJZKu(bP~voqoAlZ^MwZHLsn;9!p0C>vVo8=D8gkkO zsWdIq^A~G~Ibq{az_GKKndd7lBsx$m0ou8D5O-urk)d)S(eL8xhMvwkZ)&UYyxR2P>#AVw1g*fj`4Y(Q?HgSzGr9*5RxRze$5a9mVK zzy)1KK(tTFk<5-uiPMlOeWzGG&4q-d$iZ4D&0uXIPg+wblTJc3 z7IK(YAUwet@lCj597(p?JW~DDSiqYZkq_pgLS6b`h&aXsQcNb6dh-(DA(8`IaYUv# z6G*CHE=KUO?KT2XdJWD-1nv9`PO#)~!D9tl!p+ePZlJk(2##w;7iS1IOKREX33!5R zhsCFR6G6R_c|x5>h(SUBv0Q;2^kyW20#D)#W{h4fbMe4(1}XLo-hj>Y{%{6!cw?D@ zeS$e?e(=yYSWn{IfeALZeY#R_(my1#hd1d&_8@IJ+%x<^KF(ke4r6Evg-dn2JL#I8 zaC%ON6m8rc^qo?v33>*fHCm6Sfy;w;E{6FO{7*WT@qD>8k>`k3@VhbUkY7lriTFlw z6zA?F4DsUM#z5iapUo)%yu}Oh|Cgz^FH=8wUd6_4_}0#@ePWiSP&}(Ut7Ef9WmA@u zp~cyTe&^X$$zac@nwp>_tM}XX!x&Buldfim1;fPT4KYl<4ZMx6#`d=9^f z6vawZ5qQWz6vtx1^Z!z#1)wCW_Cmz0^lpKcvZB~75Mgbb;-=%<@_tMi#n7RGtN0lb z^sJrsuY=0Zu-^q^7E@^*_awWhzixz{o#77>2PI^)M*-f%Ye0H9FbelmId#r=c&fT{ zy#YoEefSQe*6z622i{v#Pk*V0OKDGw**znYsP1W99!VGpD@cS+n=Ng9Yu&WaeiQM>2zd zlFZ!xVm=;7=9b><^Gjsra6gjxdAz+CW0y)k%h$hCPm6^YUpbsXUaeIJ^O~2Nz z%NLnkyV{F3v^vUSaigovV4PaqEZdNCRx%0l&D?}Z1$iRJ7w3xJdgSD3Mp)CrG}#Qh z;>>3Tc}P08h_i)J7);oev7K)Wal5^N8cxL2<8~FB3YdNu%K8Vavj4#bS#SOR5?k!^ zH)x(=ffdW`Gc2%P{v-=5%rZ&)Gp5u`3vBWRjg)d&SI`|A`8dM@TbxwKLu_n+MUL?W z`*jeiCU&DW&Mro#k8`(aG!xFW=_#y)otoro=CTQd@H7#zJcOKWgtaZq;1rh6d5prA za8ovmQ7C{Ay-;AmVJ7eh1I1Tfu7EwrSp@Au;zlm*&Lf!L&DpiDYh`)X?)|#@70I$I zD~P^5!HjMfj)HMqH)DF@XSY*&{_up!dc?JV|Hmd!JX6`RX-ehV0kCoPIPeDSgcmtwdL{lnK}woZB?vS4X&$ zhOr%Opf3%CxKz2u)&rIwc^WQblW+kn5{A>rXPk>~(!Ur{;_#A`mE*7L!!P#lY7vjB$Y3*L~#s*<60~MAnNk` z5WL#tHI@NBS~#pP8RRvZ0e*)Y1V;@*Cf*{+dd(kF`406Lghi9%Lw=p)&WZJI`u;OLn&sa@D9Vpy9d_+r_`_xTp!o)Ek>4!>N?ss+Xky^~T8q$Q7TO&l_ zJ`4BueuZmlLY*84%9^)uGK1Q+E1Y-p7EQ*?Lph_dM)CwdXJ?ew5IV$_jFO0-W{4#E zDOx)ZHAn~el9Xr~Wpcc^yZ&uMkyM>F@E)lHokjQr@+fP%4QIG*Or-^R#*#QqNQul4 zzsTh1OSn{5Xa;{{pWmYx>O&IWV##Gj@i!UtJ(>k~TAB>Cd=~~Dc`sO>y|XWL=(F}3rXZlG!eJP z$|V7@Qa~kK#=|su3zr*Jx`R%ms2n5s5y^xoR__?gD)!j`5=n6&j#`uJYn=8&Nqviy z#*IFb$Y&%;A_=mfyu=e5^<$j+F&Xs7tW1IptVgp&5n?px2>+00qz)WTs8GHi$xAqK zToF%wKB5V?9M!mT8yOV8Sk!Ru@v@S|3VtqMg7n8UKVM=N%0lDll7-0Q{qb04#=b`S z!O-N4x<8ym68csL8|zy%*-A+~DhPQgFJdY>EvN8eUXt8E_NlLU8NQQXVjH&ybF`0yG z&_uxr`x?%0Z{qa5vl06u$q13fRrj9HND{7AVG17Mga;fqd6&Z9*k^%15~AS8Co@R% z7A~pq#oyRxhpb4{_ZeA?2IR8Ebs!{}KA1PuWcC}>T2<+^;c*zTKjA3Mke9|ONyTW= zB+sKsT;0Z9A8U__lB_11o~g;onVUl0bH+5BQ!zR|Bmliq&K_dZ`?WOnWlEp))-n}+ z_b;{dO?uC@^~pIw903f^ab-N_nF>Ns-@?hYO1IJ3#LOXsdyi%rv~jdiSLs^C{)l8U zhsW@UBy_OIvvNM8N%Vtf5}pZ31}h~wj*;%Onf=i3gxdUUe2-)?maz2t<8}l#s+i zqq+USDbOtXGm;U)8J8mpX%XI!vl%2mKEh@ACC4BnCRN_!S)i4g40wwt@58ie()pU4 z!Ec7SW;Dg5pgHp^QX>you{}N`N&O*j6Jw&jB_>-T%H&Cqu#qARO`fqjay_pG^COn& z5C`g{8+b`d^r}FPgg#&|0~O$JxO7v##y%2#n&SvMws6npyA=M0tH1{tojfB+DzLWj z2q#!yM$~6tBN-&ZuB;OpY_}0jzv^mk&`{kC>VqfPMF%xrEMH?=Zz(sJG&nF}bSm*zcM ztJlTk-fgMC)gJLBT6(*q(Q63?^B&8B)kfj8&9_+cFB3H&j<)%hm~7Y}nqZbVvqr*j zD0FPzqP1jco|G9k7jeWg7>lVuDrw zPlCbCB;qYG*+BxXBehl%Byg#M)PZNThP;I2F{zBs6U!iKWP6m4F5376TZNXyORSs( z**3|Hw;j#kVQey@>Q_et!Ov(-9|9#y+Vg%#v$}PzJxW^R5Qe34-SFqs`yH*TC=3)u zqAV1j^oC?ofWF4cPP^5<0#5_KL^G78xO36!vh7juGn(<(o{f~DyI;|4CymOj#WVAs zl*NvTSz_b5LG*64!biC5ZKGPL8UfM0hqH8a4d)}CAZxX-Zl;@Gk!-kWcW9cx4vD@e zWXZONA}mNA`4P#)<*gI#gYW@tNrm&`=qNJdZ|t*ZVMvH-VLUy?P6e}fQ zg$rDy41JGTgwJr23o(jh_a4t8u`^8;d5>ptRLE+Q=#bwXItM@EH8EPAX^XGn44yx% zeGO;e{d!_Qk9>AFG&0rwh-Q*4PhLS7P2i4NFS?;N5ThCXhI8Y?w#c#i5=$&HhCb>; zvb;t!z=#RXAsO^FoB>9jdY|SVeTgJCBmh2bpnOS6v;v*xND%0TjX^^^0rVwW$DmUY zb0$*x7EK<(`!tmZYEfp`uttk`EA8GXybNwhy; zv!4vazD6=g2uY;!8A<9pQEqHrqZxt~-QDIG&EllAaX(2)!&k04?4Q0x%jd1UGw$na zG=nEeNG;y)SXL`O*eG7n49AGerhSpONb<0)R^@gC{;0L99L~JO%UK@B3<*pQp-<^# zB-3PG!*$>W4{L0&uh9$)K9?gqp@EsNkqjJ~LDGqRPsm~yddXuK`j9y<+1fZqeP^sy z%Vp>2?nc5eI;=JsHVXz(w>%$h`e?cf*j;qvl*GHp_J>f?7p+;*x?V^r;SF9F8tQowG=lKxlN*Owax`x zdxAqWPl^#Rh8&*ybtD97;b5ws0pj`eu40 zZmM!e{lx-(3>iPx_!{z6eB|7VpeKKsy>stXlMv+IVNW97Xs7)NU-CMIL1+du{SwzA z7!1tESNoO6>51G4KfE%iIg)#S5YK{sWmmjSiNP(n|7Y$W?~Rj2%iJ6QGcF`|9PYa` z>v%}(H6LKOKO79fK_DEwl@zEBXNXbl#wv3Cz;tL;RG0{sdA=D27;i)7j zF5nv3NUjXCUS}jh_;)368%1zZAUwk?A<8cOlc|yTC@d1D4iYK=k_pWqZ@D$To|^An zYJdIw>@u6%FKrhtv-|5ij6)qtJK4?cZ%fiMrXn-}cI+Yae+un5#IiLcBlChy24*Io z33&Y?1O|)79H&LD2x7XXE#DE+O!^9VS+F{6aoi{Yo1cS4kbB6xDcm?l-hmop_dosB zikXNuOn)B6fcsFK0nI4$CrvB-6Vm`DLa|sd}3_&HQG9Y(g7u!F@_|RLGyxq+1IxMg&+5nzlf6RFOPH=aGy?8F8l27>xs! zghAO61{nUI-iRqPkT>XrN7sN-w;IXU?ZqXrb)sfNV`` zWmN$Ltq_P&n9h*Z3PW0al+}f6RAVhG1Uhw0q;QP zb=m+2+|6{K?V9eh4A`4Du0>|YF>6}Lg6gb-h@7GwYXQ^R=P<>A%lb?@lnKx-0Jo2@ z0l#1!QrtuGm}vRgjyNAm*8>lte#2~TG3g!;nPiMx*#LrZ@vLI<0?HT^Mv;y=TagzS z(?}w5d%7;W8nSZ)pyJwz^9!}xTyP{~`M($c@uL#@Z)CE+fjRxAtm4IQ0>Qs7FCn`5 zcrj2s!V(?!~;iN9gLcdWEdhxk}I@m1wi?T)=x0U@PwHOFQLCeq>jg%EtbBLBf zzE2^U6Ek(}9K^U4sT~F*SpIL0IX*x)W5&1?bk#!u%Q74hIjoOPqp#y&tV!6Ud`%Vu zQmJa>#;NV{GBli&tXarq2ZB2?aCPpF{H(qik?h!Rhp7SuwEA`r)QaO2SmHcnik1mb zgexQ@!$<~P;%sU))r&AL8?`1xs|Q3KU7P2Y7;sj-ii{(Hz3JmuyHt{9LMloC{UzMP z(V05)pvd4Ks9~E+Ld|dSX*dFko=&R3?N`DV`8tzw5W_sSf81tfC=NwXN*}99OX0{?379kCVCLIODuGV077aWQV|m>H2wIYN0Q?3 z>%t=#=tm2L@A|Nb6t}{MO*#(OrStuIWz;eTN+TD&3^3p8nd4i^?feM>kS%N?pfgnE zjho$z58JC;r2xy`I9BMojwSd+Yby79f)&9Mu#-##(xSFH+O?`|Af~v1l9ovg33eo5 zTY(XG-cs!A{kR&M3M?m)&rz#=J(d^jkIEBAR%#8t!Pj3Blhs@gv?M;l6i`y`M!#!+ z{Rq*85Q|ZTW%XrOe&e3&Z>GhhRhVlhj+%&~%vo3n)fu83v#4XBzsUfSssmUp^Z4S0 zj~FjQHY=E$G)2i!pGf#&rsTno6HFLd%9e}y8 z-1AR_o<&(x))?v$5gnz$VFOtb)Jr76x1g&&+clWrah0G&jrpKU+m{8E1BU^f+8((o4QKo024++Z9fn*v8PYn;lzZ}D zU=&-DofOU-B#=$-xIuDmqjZ`4h0xK(w$RH>P87&D{ z73k)h8H>)2Hw=8HI8JYzBAs>m=2%DUqVK%iQ0CDUvb5L^+ z=WPHLlQ)lFv+BjZqxegitRMJuR^9;ICU+R(u|ALcdqvrkjitymh`UU3QqcFrN#g9K z5?u=d5L`PaM9L!G+=P4v#QZVss#e+`dVC<-v5QfVjkIDwQ0m*V25N>TjToV|NRp${ z<*#-?>6N?l4K#?9F-koSlFQnoFV1vP+X?Mv)88ci~$lKvFXsT-ybh=Zn)vC zB#&yhWIGxmo#bA-UcWc(_9vrMw_l&&AnvHoYa!tP*lekR81|AuyVqoREu0C%g(qfP z3pL?B$;OZnsk1h+u8-f6V-H6)3G3okTWt!%#& z=dXv2#(~UF6!Srg+{nxK>kZJ6fwY%@$s588hYMu>=;*c*Gbg4)iI1%{NaU}(HAdXEHD4XI5RsDM`A+t+vWc>f zZ|@IQ@;A9o+N&eKRb5$4pP#Izb2o!(uKo6x_nn7HZnNJ!+Ibk9t&}IVm2$1xUjHSx zZR=WpTiGq7Yr6+O>`&K5)s;f4w$hxOt*njrA6HG@{9SFgGp(G|`}NI@_s7$Xo$BlI z1bs=%*mkm$^UaOB`cA7;Yj51J54CQmT|X_{)p`fb4?C@NeRt#Wu>JO~(mR-(ch@r2 zZlP7*>D*P@Z@)j?dDDE~-YA{}HW+6IbupcF<%{K`W_71?gE2jx7w7bK#g6aT*0*Wu zLK_=psjrv6slMLp>~{x`xvlNV;pQ7WANuv(!ae&|KUuxyd|~X<^OM2jeizT_+ClL+ zpDlIr*$)<$D{J?S)4jp@N-Le)9&~Em^0-ml*r=_vhUjOjHob2acGhm{Cz(#QSJ=Y* zWiX~zwR_Yoo~!~V@_<{N<6k*1V%(=2fD^_GSnahpvgbRUH2V3da9OKWfnw*q^5pDw zVNhLp(|=#w_&=vRGB?frY5$j8w)}X0a@0IKJ!qa4Hy+PU&O5o?z0P^JjB%{qpp9k`Sy>?rF?M%eLWx4x@(i_NqJJ=Js{rPu@AZ3^A_ep z=H$HFnV_wi?Gp!byZKJ_Bs;m4GGw7&^F#vB57Z*#!^+-{+dF+EmJ2WYEsm)iksPWDFl zHaa`q>*3j|_4Znr6W}dicGCIb?3A!ueT=qU+RhdW>GJhad9Qd>?p&iEl|m8y*vj1> zY>jJGne+9#_w9bOaJn}o908xl+Dew~5Z52;!2bkzZIv>6+0!(}cDq(Q%@ndH*`wx% z;(D(PT&|yP++&VGtC%<9TQLKEu#u^)98YrD!W4ZMysVKAtgPNwPY))Qlec$(L95oy z_dmSeUaRe_O&TZXgX+%xWN-RFT5aYw@o)RQT)NF)7ceID;kvwCJ}Yk$w)JddccTM5 zB8|0jJLi~F;^Nw5?=d{qveIF?I^B@*oo{9aprd3w5}t&)JbB1~k45n&cT~>jPBZ1h z!ghJ5c)Xe|XkV^REkDby^~v8(g{K(&%&uL}=o9E`BVE}!#yn)-R8BIPYH?$Hev-Kp zeAvmi&Q=5m2aPUZ8OGuKQMq+pIxgo+oagddsaPIlb6e?VzO;V-8GIXnmO<;Qttwzw z>((w-s|U@drk&;&o7=63Sn-K&FYw-z1qR%v_f z5M$jg9G8zy)92_Ij4{_k%%R{CU^J?qU_6p1JFT2z zj94Qg^R`t=XO2LlXnSMhxKr3WI)3ol-X1BR;8-@iyyZjS|2F6#TkywpGZWWA&l%8V zzLVS88`O6)SPRFGpp!fBzb@8?8(p)2Z>NP8*T1u3biV80BOBL8x1GaKn?(4$9TwtieBZ`(S!_s2lKcT_GP02ar`o$}#P zX6-}ixKr}hyvct1%^bQfbm}|h8}zeZeSOpnWC8YfZ#B2G3SP8FdFk#P@)!8<2=w(D zwASYuPniHRNQ(Q9G^_(iV08a?*IVNk6B+aZirBg)EkB>?DqV8}cC2 zI-=jLMB4$bLMBcclj?ALk$#CDl+>@8V?T#2C9!^d$9!U(Ytw?$*`xh~T$udZ-Pm5e?ef!m~x^?yeGQ8ik>nX|i01E>d*`RE`@}YoRzO;$UyqQ5peGN$i){q|}}g?Oz?VGtQr#ZX}K8^!y|{ES+Sd^G5d!ZulGmAjozJqe!Mr1|U# z1hChUa^UrAt@_qMGM#oG?#@n+9uID{?c}m&iDNBj*_FKMccd)z_@g&TFoJC^eK@D4WCG72Io5k*dDnCuGLO=a{bfH+I=qjP<#KF z9RJOu)*!MXd8qbI;!tZ&yUNni)V>f zIoL%;lr8qBXZ;V4gBIZNwz^w*d;Yrcwsu;+tMA_596a6*5?}|Omrze;)cvrvTFbQ| z-UWMN;B<77RIm@zEVazZRbNfhO>KOyXL;V`G2AY_>FZP%5e0Y!a)8boS zmINMk9*=h(TA(k=8~1|0nN`5M_RHR8G%saW>=$(F+qAb3&TMPH9m!V~I2?lCcC@~6 zW50tr%x3EEU$ajm&_}<&Um{;P8gg9hC;EK*etNt7{`4O3zi;nl(u4P#-q_m7W8=6E z+8x&a7Im%J`Z#{#z-jT8^yuIyu-QBUuUHG#e9o!vX>iX?_f-73-Qhl*>=QJNEROx9 zF?EFW*(r4V70_ch3p*%e>`b~Zdxu-xqkui>WP8l@1#>^aymP+=`q}DTty{Z;4m3V1 zrl+t;+~ucl?)Rs8>{%VaE}TuXF4%kr`>tP}{T#SrY5j<8%O24haRYF8bGzT}1LvCq z8UN{c?K+!|(G2N6R!4~D4gGJE2j&9)@p*cO?Zd1e%1a?vX0aYYwxsS4J_}xQPy2oX z{U1XH9S3-LFyuVerlZ>!4=ht}%#^87tbw;wT>fU7%-#Wz@?~h=w*ZmK(?(GuSfqU4OJmorwJ!kZ>T7SLQs$tIw`%Pkx z%x%6I5-(*jEe&G0!r$2c2X`PM$@zOi+5 z4>-NapXA2!yusLZo3GE>lK1s_Cp`q-d{(A91MOB`Lq^1Y8*Hw25BLu7n~JOjdaT6v zeuMS@SZKuJ7vS5%9AGX=ZzD3uz}T<)O>Zwz*GV%Un7?YFd;r^U8GPVD)->QCWT1@5 zd0&IScy*6Kmz)dmq|6AqCHx_>qx}<|N601I!=1^4AY&W{YrDbu%>w3N1Rjog0}QUq z>0gv5gEwtr{lfg=I}FeL!F%%UUGS#Q%V|x^t6(QGw!)1rb?(59n7_j~u;&Q-k(G_1 z%Rw%P+mI+TbRSyh*e5hR;r09WJf7h88ro;9f2Gp{Y=GmfPGctvnFf3LC)p8XY}KKs zGxvRE%{}U7Z;P}C3;nKE_lx8D!EUR1u$f*xD`vW{So8vi0}Vqr1v%z7GG7g4oJnzkP(QR`>UJ_cD-+ z#h2xMHs3l&KPtuB1R1&WSY)~FJp4Cu3UA;*V7FVJynkGyj}FJ6brMI4PnwTA^Z~g0 z)bYdr1UyOM{^q`#8Qt%fAVWQI{IL1KZ>dgS5ANe&4(i-rnzhF-b1k}|S)WJ;2fGi| zgJOCWw$a-8W`6)VYvw##ov%dxgFP$A>7dWGTgcI%)q?QQ+$M1_k2$AoR^$FZ?CkI< zfviDV1|O!}2|ltmtxc2Whdc&)qu?TC?beO*+SYBJymsg4jquu?vla5#^P8sdTG&O9 z_xSz*dooO~m)0NhE9cZzW{wAYBJlCp!#*-}jokwD5s?YFcG!Ko=jaND)wGelMel0f zp0;nFuvU4x3~e_%i2_?!15IYPW^N<0zjCwhR$0qbU z>~jP#f^8)_$B@6kTg{%OYg75RYxu-eX~>)5F>*V>3JecAUtZJ3gqso+r~< zQ{e8tJN}s1hVns?9eY99hdcO%dvlxwj|_ZzM8@x(WZqbKY*0Vop0`=k6uv#|WuJ^g z-`v;~j@z_DLsv|P@G2ec2XU=T-TO0rJ0H|{`;j#{e^5p6P=A##f;CvM*Od!<11|1 zgpEtv0S}|CU=G~M@H4hBbNKX>Im--Ai(+fDG7$Lp&QaKo_<8vae5?+cJwZpq8jU^V z8z0~OIkn%zbE-I=Jf}>{EB}^$b58n}4(xZ*+*^w`CG1n5k>_mI2GRL|?2v|B1e?I# zLG?9tA3M*kPUUl;m%S-$x81^9_|?6wo<6|0)H+H# z!oyfcfP?TsJrH~*ObWXX2c_MI{B?FOd!5a{E$=>@6pFWl4-wvTe!O;H-_G2flb=Fv z^J#`Ki{`JTkv~h{{xJV7L%$8^9=s-b4DYKes!PfEZQm7d2vZ0D6P#rbIm+;L_#A<6 zz~;Jw^B<7e^>;plz0f1rAF;o@`U~rRFLQOPa41^(bbS`tmGi`LlK<~bZ-0r;{(Csi6y6@(u5Mp%<%@;g`~HV%whEur$J3(Ld7drg#8!#Dy%?Xu zetnI42eyiRkbN2{3Azm0=>~sCnyp~s|Czb9R_MV#L|JZXCT$sbFj4r*C zrLQ;i#u%BXmvp3&TfkZ>83IAF?IQv3YK8R4G%@M~`c3Zil{T zdHB0q+XZ}ox?|u4!g}L8lAil0PxgEDL1m@Geb>QRQTI~nE1hAbNIO!djk>r`b&d5K zd$;si@6iAE`v0=`W@~L_OV;)U)xnm)6wEbQA3gi&X$>zrY zKGx?N>{4vG^}j?<)fw1ce!hpFgUK83Ka75*13PE)!Hij#>DS;mw=aoxkqfo;cy!%| zKh5KN+IsqW-2?v%D)oB!e6~c+NzjQmS}+FLcg5W;;!LNVLMI`97v<0{xg6gvT@EGv zCGO9X>%`!CUN)B&ZjN71@7|5)cx(c{+4;HUeX&>QVf{;8^SRw(+_uu9N)cF&>ey&%KA=@asHn9-iGDlef3FqJ0E|L9Sz< zP5F4ACGVLJxef4yJo^7$H-AcOQ42RwR@(Ezefk&y_jc;f1l+1Wqud-YN!-6vpKpaV zEc9yfR}G&?UNeG$xO=Xu^90p+_o4zhYqcvO5^T3b3Jav$|Petu!?`^15VdhPr9DN+p;f?&vjgHnByxstP}P-=5dVQ zYv^6M8SlP3JhyaqfG3DMGU@zMe#YdptMS`?y-^k3GMcm~Wx| z7{AZlQN#a_A1CBJ3U54ljUfj{nCS6m5M^kjy|FY(3=&>5iIxIJ;q2Y>#INgoFpqbQ z{q}ZT*_D;9Rq&!k^n&?_W!Af_R)ga}zzLK!25zp-k9wcUXMDk?8JsuqXyNmVqw5zt z<5T&^S0CoZ!^o-rft*A4=%H&Vf9LG&fSfeXP4fL5`F;1n^9lyl*|d&B+;%SJ7R0?L z)}VZL{M6KS&=}%JU;~Z@@&VWT+VXBQb8#mKU%iKo!WXrok9)ss1q`T4b zPW0Z+@A;ft-q*q-$BaYnK%(WAIf02#?nu60EzgiAWI3#p#%bIezpE`{xu176zO$oP zz342{Q}-d{=S-YaHTLsXmL^HY2uoqo=Vc@R5#p;ipK)zYHu zxF26%y{-+<3%{Y5>&@?%3pYEaAIHy@i_eHp2*-1I`Wrg(qU*B43~)oK{CmcI+{<#+Xa zkKV{R(HzYdiF5JKjtYOj;*a2!o_&owS|f2#eRkxZ&G1?BRr^|hU$V9KG*|Y@_U(6H zzkTMv-@foM-Hxz*o1qpDbJ}GuOeUsx^*`COZgYh9_vebw>7hg&zrGy-s^eax37KPl?|pf4%s(7ON=M28$5FU%-1~_`n=s{ z(YlWhj_kc(N7lXb;_v!Y?z?|B!)NurUj-WZqj>+-me0vP3uoE!G2I5T_kZcz`}f^0 zHH^Ww?_2phKZ8ygXRYq8CT|1qgWjebKXWwno z*|B1o(9}UeXUEt6ndRF1{SdZF^PX$|{^-qVW9Oil|Gs~Aq|X{O5a_l4)$MSd<#qUs z_)_y;?K&;bZod`pr5;@3!PIfW?gUFnU8Y6q3ZN@({}uBmm@nfyUeRgFc#-X!u!~z? ze4m`Bre_2F@oY7B8z<0qa~waf%-8JMuDw(IZ*-g)pU+mhH$IzpoUy6N6-);My`jP3*<`ei)V;nzMdsg&l^9VH2a5v6ty8YqjyqE5@ zjT7kKo=xisw0YY?x3A&sOqS(yUJvx2J8#Lvi%`u#v zjh*Q>@K4FRVjfq1pX+&qeKnby_Vvy8wJ9%cjzoG)hMR9OozGjKw=!-Y_v|gmoXwhE zwul;`*Uj9Q^zs(=kl0hDPiW8Hf;`%)$JuuI(|NAO33`D&o7Oes=e%E?bJPL&{Rq7T z9csqL&ifm58>?B8_`-J3JF0nf0{!2Yd}TZEZT-H~!?eHKU;IAr*ZbQE`}=!6j^Ag0 zHs0smKyOX`Mf9>0bcC$$_&a@HPTXG{WX?{|3+&l=mYu*C$~uMlyFwSrbcdhU^!KEf z=q$ToU(kO>&bbrL&UBPw9G9h8zwvQgAK}@Nak@kXCG+=cdg(jg?XH#d(hYRSvn}KJ zJ6;>(IQ`Bx#!1hPjuUjJ{d%0i58Iz^CD*z^r?6)u{citoTc+Q_H_0cndwE*(P3o1} z9-x0@xkePLcsA0_k;}DN<}q>)j$E#FvwdQ8^TT<;pt?^-VSn4?tuW(T$!RosZL|>zwIcZeKg!lHQr=<~ZzcC1e*xGzgf=}{R;0b8bz-y&L{BStpDowr(y5f=0TQ}_6p=xv>$yvVPD(mCFs3{ z-mLk|2Kk1bT+YY!Iz2nWuimbVmJVuuMLwgg>uWVmu>bVz$T;Ykk}Kbu<2XR*G^J5r5^f5W5X zUp7Cp?^RLjH{_*Lk7KlUh1WwZ_keM#dd0V@Q&HqAjjUI7Qhql&VeJL~UcY|ngwMf> zW`4YWeHK6euj=!-PP6+!ZPg-xNbwO?6I$z6bkb?Ch{|$ef z>M2`oN5l3E$wM!4L5n&mO&?vvXT+Kr!OtIZbxkijJ#^l0xZ=E)e0DnD63Z_+gAO2m z)Rgbe110NfUQGVVn)BjW<+AYaV$bXzDSym)t>=>Mo!K0}H{v414ani%q3!_nr9<64 zutd4`H95}UUHuxn2=R}{yD|&RAciPA3PX-<$wyC8tcG;y*eUa z{S2RhG z^;2!lVA}4F6)X1`wQ84A6XNB%b-t=8zH&s4{*jM)IhW@4$3E*@j+lrAt;fb`%rn;y z2S3A}r@DKFnem$9Vc(w<=49mlQ1i}eFf{i4`|5Kzf1juR&h_7f8(SZqty1R#JOOnf z(5tR)YwRfX#Z#`c&Xhbz?m1z6uQpGvNEF z`s8^&nJ&UO2L^lB`X4mu+J3KkHZx$(tyVx>;~>x9_(sKV z9#z-R-Z25+bri-V9z`wr!Ry+xXsiE7FNkw+*VN4*1~$UijQ$4bF_y!=QPis6Sh~tF zrB$ny@7N2AF{!qu@~y#>IX_NoG9Ffc2F4fMjn!+h``~;juIY77_-d;UMlM2Eb8)OO zxEkK|9T`nbjM`cY^dn$SvmPJ)zIRUEM_DT>@4M#}>$M$f5mhylZN1cwqOPNI z?B3ZA!@jkwp<7~flE9){ocx?Z1Q zZ&7;3-RU)0GS%N#9s8Aq&`V?C&-{DU>KY=isl6(!*pm9fn0|8sulRS=1)y{A1PkW_ z_4d$MOBNRvf4e)rxk}@fzYTPYZ1LO7S+4OkUu@vLJ^r}IBGg%3L_|^$> zebw;)9pcN6#HCgH;rS^4#`}~MJOaGj)$uZOT~=L}^|=k3H&}1&%VohoEGE56kC?NL z^u{2gZTwC2KH*R4S;9T1$BOEeFM+Rv?o}HE{aiIkh+Fqf7vJmm&++BQ{m5f1UD#R= z-oU}qFGA}+c%v4Hc!bw@PCQHN5|5WnH0jKbLcJGi#3)8Dov4%dBj=&)fSLVzcub7n z`u=dn+F$jr=uuDRA?Q%MoRcu3i+%Og&{%#h$f=bfn8)&L;&1Q&gf1ez+3#X62cx-z z-K!XnBJX4YeJh?_NmqN$t5wGyo$U}Eyio%z*SbefXH3;M-9@*i7WJ*>$$o}8ynm+l zJoRYQ`{rlQG>x%z5#O6+Ph6wzrFzG3w%@^$B)c}PZIPHA`o3x{UM^C%NA))5gu_rj zAUn@OcT{b|=abdpIcqiDk>6T<0M|vp3|-IvrCLr${&}w3W;OZF1Ap+}LN7_CdEF}i zocpS})YLd2N5t;A@Lklh(q6w>Ujh0Ht>2(aMEahZkL0z?NuOcvTY;Ap>o7hL)-s;n zZ2g)mJ#y3oNOJ}Atn-X=+~;a^Q_QuMH({HpE|T-6YQ2W}r61DMSM^#6`x@$trS&sr zxVO;ns@;c7&u&lfz1R7cE*{63NaJ?aSKjXlUz)8CnSRW_ZU0{jI$zyZO*PX${JS~) z09K3tj=LRr3%DEQ?X!-pFSoLL>>h@5P=Aa2lckHaubC$mzuSNRchDw01zaFJu5}E2 zKJUG|93%g`8_uNVEd1`TqWAgTrcYGCd#&%r;0HDw zHFfS(126Z3vzl>+ts3qeoZaxw8{{zg8tCfQ&nM!&BkwK7oy^l6!+qE}7e-Uq%ELY9 z>(B@o<11*2-WxKjHP_&*WFougmyD{?6@ZlOOQt zZS_6F=Ig14S%F85>!{>U&XKt3ecoAT zsOJ;sZg~XwD7aI3?{z-WM>6J)KUDKYkBu^IWZijQUdytQV~+J+Jf1ldZW6vf|GE+I z{m^FIXX;ty^^0b)qq-;bt1&t$br`SXjV`h~{APJPovODJxrOob!o^*bHcpp0D zTBy&aT1?@c1M&nkN6X7d&&KuMHqMHiK(A@X+N~a-^wi_MBzM^#r|-;f+U{`g#}RUj zb=p2p)~)ahQP=iphQ1Oj!{6jn)!iTuL_GxMpHg2S`c|#?nCq?8=Tl!jKhIbLSNSK5 zBWxr78rATdT@SqYwxV(R1SY3(8N2H5n zny>Y}WDAfB8}<65aCTW|4ZizIxAF7cJ)mag6188gr{8nAhlQMTnv=b*yjOf(4^{sc z?Da^ivO6O$ls}1@oyfq2f6<%goY+iwPm-m{)`PB9(^dYe+l|*i%S#KNsY~wnrSwbi zzOM&I=NrWxj(7YZ+@Hfe*5dQcw5)r{oC0>YSfB8-=sEZ=jt=gV&gpi7-zDjqdZw^r zd@aGw7^{n}Zj)aQ#+Q24-&E_d?Aa*2g}edrTsw!J_r3f-+Fwg__>a?m*z-s~H9su% zLDlm3mAw8U$_@M*#d{{wcDM^Y`qHL*VY;hyk30GHkq4gR(ijt3zC;hY_$ptb*~Ow| z_ouUV`dL~Ob)wZY)m^k3sHB!5Y9zj=oKZ0qRK)a)b2 zK0XuwFB@c%za{g@2fw$2PO?p;$GJ@&bpraRQT6xqGRlqddKEre`n^&Y0{I#2rm~kI zxqGs6bnneC8Tr3rjA;$Et@B{{HRJ<5q8DbHhg?SGI=~z5kd??#Vj}1ahVREugOW=dV50ZX5R-fwG8SZ5{QLfv2<~pBLTqX4>Ll%&W zkmB^lKNH=`$LTa?F)8)gV@-d&(l-rTD#(z>C|9y?9>3cRweaz!Y%JaXm1I)Z!)m^c zj|IJoI-&WT;$5FCE9yJR9Z7zqocodVtYqJ`$O${QUvQ7q-x?c1eeo<_?Q~qnU{hY2 zJ(JG0)bZ%;E8R);w3WXepNapMKZ*VwoMVSNdM5MC$HZB=-Qs5kZJq?(jC$kdF9@>T zd@Pa9@oCOum#vkwt{AWRKr7z`c9+#*QBTNVQ~eXV5$k47bHg)wq=x;Jz7^)4?t7ch z)9gL+r0*4Hi8O?~fbR@qFUErQ{xO}YzE9BgX(!qY^yMr2Ng_*_+Z+11#mf)68TSG` ze@Nf5dmU_stm6$&{Qg~7Z#KK%QGQkD8SRQToviJi$*;3}qPY|6m(KauhUa^^UoiQ0 z-;rV3n^}60zUMETLPukrKgj)LF55qI|L74aU&Zkp<4~VSy&J=s$v208m^-09GQ`N} z4Il4f{Qobyll0P*F4{@sYutFRU+;t!ke?~}s!N|UzFEGbKZ)_4bWiGd!VGax?@ed5 zd6GSXZ-H9k>>IooImTM4r?IQQ@l79FZ+Pwzu{-q!4*CmyVWVsh{me_b>i4xjRL(7R zhX-%PeT=^2B98etb+<+wVQsG$bvKKvfdc`v;^(T=M~@MZ|r5&Q;4?ky5W=#@G&X&e0cGL9{1=_*t*!pU-?hAzCJ@A z0Fz_2pB0l(-So7l>7BnuZ+bM_es(8~U;2bM@IR@)27UcHK~{t_GFbth1lgjVROo)K zv|0Pgs72B>86w|K7_a_}yJdcR;kFbLCk{@30kC`3{0jf_R618$gLE+V7T*K@nI+T1 zKB`aUGwiCj&v^^Ys6KvP=YPJAby3eZ`YZW$jWm6Zr5}zYWvObk;m3BSs z=l#UrH?J**YxEa&QqI?Usi*?tiF#5`9R*JdOC4NA5{nmwa+#cznP> zRJMu7W2gmXeFMB-OwjG~eI9FDPFNn1DL{%H&0an*E#tKA-VNbV5b@}Wc zN<255=VUs2KQ{M$Q&_Rp0eyD6CUu z)bA_ZTzqKQ+3|QHQ2e-#b%e8yowD8Ws{lli>2f`v0n1O6>MNC4{e@Eg}En`DYS{J*~yJSm==tvDRMYb2eQxkNGByV73#B9>~ZdFiCfPTbpz%dg{&$tdBK5 z9{OyblegwLtY$6z>_b(papJ|w^^$LYxkpup;kt0w;Ny{9svU`+-~9f;u8TT){QrAC z{#avwmb}NfH*OP$cSvW)CRS}{;_YYo-qb$&@%|h9cXPr}l8c28*?riPWu*1k-F@=d zI+*b=uaZ6!o*=v-!)?ygjbj8bc}ckBl?Ocr2$yuNNM4okSN+nk;?)@J(VyL+crE`g#%1xr{L; zeLC*Fe3|MaPcMxjeH+v7Ig`)d>639d8Lwoy1{Tkd&UGlfi~Q!hjG1tH^kCk-B|n98 zd7*y>7;eKbq2Dc&gChM69}~2XU-eiv0ksXcJ9{&OxuX=Dye;#F>zFmRm*T6AM{LBZ zJ!YvmS$YQEWEflC2mQV<-)-ybcNB7>iCstC6PX0oZP~E38S^kLUBr76b79Gu;jZ1o z8|VdVd*gdoe-^Or6XI@lY@?I~f5TrJ{RTCrHm^V8@*6ng?y7h+E3ddM}-JTKxQ z#@g~BK2quV!iGqmfG;LK7G?da<%|=Lr{_SCOVy&6t6nDg;(^xo6m!UDjt*JwpT?P#x3-wB9;wJ^Ui7x<$D;@boELfi9VX8xCh7% zFfsHW7AB}QHexYs^9gdl%GkHZ_hZh1=}XDxu3{&h!WK`u0=&a~-4ktZj~PfNDi5ps z482?43is3MB$z)a-GBF46Cbl&m&_Mll#fHq3w$#9L8)dyzN6FgfOucy|KH>1@!lp| zs|BwQ?p^WuT4uK2q4F&MhEARAXZ5rvU+R^3ipBl|-XYw5-%ryW#$g1?7=G>Jv+?@Z z^i^Elt$cjQN6SxeEP~fS06WKX%1`<%o9w#Yi!95&&4jw(Ep|5J89rDv;l4nZMTO0s z?>w>atS`3VlT8m>(U@URa*U|5A*?pQ(@BWGb03R!@07CAaPv`@%NUlcgfVNxf`UIw zI-&Nc>-4LhK}#3qJA_$#5oQgn+n5+p^ZDp2>pbXpWAM(!+=+#{&#>fgf7e#<^(FrI z4whyL>;krd@n_~r?}~s;Bv-|A>E?y~KqqjT-k&)}?^Epi!Z7{hZ{ zVz!z4*ywMJ>??fe8KXWlLQ4T|7(0s|q@eI>D!$pQ1VoVc%l>5}Wm3!QT6E zwjAl94L4K2r}#bjG!yuPe@8C;+{ON7%^zYu%NV>qI-FsW${f(F=Z0}jjxEn$Bj=E3 z)O0YuX+4CnYb=+D&qTY+(x12s;9Hb`mSXBt+s7#m`ahb6qrbV=EC%cYAyj)!A0Jf%!W_ElJ{^4^$iit-b` zaQVCQ&Ao*wa?Vmr8GSCs%RYwj^qiV%j%_j~;_Hg}J60#z`eCozb!>z{j}iWWxS+_Q_v%b zzFFALI)kGAfN*Bir|SKF^iiCd^Kg2@_I}?8{I|4C(pg2BwzRC=5kK3%?;}tyA9h0T zv9txqRk%30TE`DC9$S^pAlahIPyI!?AJM1#EAZ;&{CvE^Mnu2+c;3eZ-qpo6&G{nZ z?Badx?`6)>hoNXCzS8aa{#EbyiMbKJx9{tfH`G@m-iQx&B7Lbw-7)o6kjb5|KXLb?pACCWK8#?e zsrE|Ny|59VggZT3^?Y#QUbCOC#wb-e5Je8B+fSCKpqLjp_HFcs#e&8nj~{D06+Y|> z&9$U~=yCXs$?=SRZBEF0nv4EMVV-~W zIX7*HCa(tZ*?S=TGZPg0~o!r<5J>v*6EAy_Oby z?ry>j2uohZY8x^Htd!#0%4dj}S1^X2s|3EO^vOw|00(G!8-k`(?eMs(wPj`+tES+3;s|?ETXHXzU9%JURWTR#5BQ%A7|0 z4iS4c9wP!jc~$RKVHVo(B5BW;Mts!7f@0mS=`bu64=#MhE&e_8=g0WOIC>e!3w{wc z#bs>5yOp&12^%BP^N>5zI5W$?O1Kf(JK5)5@Qq>*HmbXz@pH@|>XnQWd}Uz2%6LIp zM+1L!8(t*SLbMCqmcXZ0V_a0<(R*$soa08!$!BbQ3it%_+R;C%+7!$&*ezuaTD5nD zkG$1iUhm~(?8!87H0j9nMP2Xg+ze&2I6s2dc)h7;hY<_&I%M=URXmN_rQ|Rs`d>va zAa9y+@V#(*ZV?UtwDSeKEyvN2cUJ9=vSD3nSoH_L%&^Z?A zGl!r5+UofEBjCTok?W{hj%XD!%M^Fi(V8D3@obh7iw6D@LGEbf%`W&Fw$Fy8UI8#~|IV$B7e zPJz+#`Y9(--}j!4{@w#}^#cA2%z*hh-43r}M@cvEbNe;6AvvjCeA?vl!@qS8_hyHD036q9x~sed{Fu z#W=fgl0BCC2jU07zKAiwMqYyZXcaS=CZGQo}UGsUKie-5t7I~nm)DaIP(!o0KjJJoV3#-%3vMcgl9IEz2LKjT~{`j~y} zDA!u*C&hP7&QG3JmJny@T2AQLJ2U}Xk>rVTDyip5EFs>BXs;vN>GwDD@bQ`fMa&S~ zn5`$$G`#s5xuf3V)OZp`D%L4nOf_Jr!Cu5Gik#)zpZv@3U7K8RyFA2@Z0;e)yznKA zyN3hfV#wgz6JipHueA7PvLAS~&Jy<_3p1i9w5X{mYZc46{SAcLB^j^pU;oQX3>pAt1AE{sOKwjloD`Df;tcyGEt z@7REa?U!tAw~K>K?YiCz`SP#rwPAB^ocWok{bIjwo2%U?%jXX{UcUaMy9ql`=t0HY zn(@W9y-aH#Pw(M8UoYZX(cNuN-%1`F=MeQF)wbRU&!M+Z>$@<26VHct?YjSIpqdvU zZ*nit@)*3~wEhWX3G`+D@%3PqdqK^dMa7Sc{f|6mtj}>k&1UHK!hX|! z#-sLQ`CRF5^z}x(Rl$dTjSd>_gz9-DJv4qcp4VhOG|ES-T^MaCY&GKzjvWp*r|d3l z8}V-H7KWPmh9|ZCF8#&qAM}#*U(B8hcOm0trly~t_hCXyje0-M^CCXG@NxT`Jtx;{ zJcO7Mym=B0=DCgdy-WF8@ZdD=yL5P9d4rO*!N!Fzg!vbKj_mjJv+S$>y72h$c4`6_ zckEWa>~VA&-*G_g#%~|sH#GJZ`MCa7)On{S zF){C03&7uJde>@;A3M@Ofj!qg1izSMg83Un<2VH!qvDX5A z80vR{HBo%{kv?GBBjPaBe_`KzjG~7bJ$u6Me}Z=WE@FEMf4(2b2{aHf>Et8~iL1}w zGoL9i&uPpbUq{DO?SFXBw$(#!j4O=r*xL8erf9K~gD#t6bkVAJI&-AqZZ$&@t-%H=ij~?6I^C;35;C9angShQ*F%;dX(ms)+(7R*a)E>o2GRu7JQMok5L ztoQPt2cGY-go6w67O=nRxkita@in{(`*H$*ZjSjwwY3TidK-PIZd_+C%#Hl0ppUB$ zO}V#gh2H~xydC?JXsUq$kNyqSytdvkqx2T@t~(D6{m^nh9Je{F{O|HBj-R8)zrcjY zcPIN*7>fA*79LzbKhDM_e+HZG616#GJb$=VPh_v~#g4as(^@5~klT(4oeBpg8Rh$4)izy@c|2CX zJms)+W?-P^I{5w7dk+8MkiV&=9(Bwju9D=-J3jVe|HJ(`4L9N)r6>R7+mbY?-zY@7;IT|OkrZebn{ZBlfSz%+)r&-re)f$GUZKrh)Y+v5V#lM!H zsrj3^51vz~tJO**4`}UGvYhBLQY?d*VjX>gCOf2Uu8X(E;d$F&tSQ% zai-iX>X%-0=zn{+c}>sC>k>0x#7mdvo~e;{8^(yZnF5oO;{E93-YZvrf7M{0Y%8Yy zf=<;FbTR09DPO)B%S`-!TE1As_ZWYq=jh)!Yst3MAJuwrW?iT4tnst=a@`R1h7O*KeNG;dY!9#t#J>y!8vQnz z4y;x~)X~ww3fU6<H5dA^PJLbJ8kd)BrGE&0>zrT?xUd}KGooKjDK+Nbs*zBdUwnriE~|44i% z_+8C+^%HV3@x5Qvi_rXG5s!miL0)*h7i+68pJOhra*W7F+}U65ec9~;;alGA^&5C{ zc&^h^t}QQ_UjHWGv<-^~t~K)G1Mow!ZwkJ)Gx-rh9PXF;+je3-F6nX9@KDcd^NF?A ztn&K3S$6(}-Kuwt^qP*k#n}D_DbKu#1@ZGL?tB})liyb8Y^pI`@J9E!hP@Rnj`R+U zXQDIkyBYdV-)z$}uV46XI6vjmT_Z!TRNLp=d-;0poZCQK#k(iS@gVzMC)0DSnE$DK zs^iWWzYo3&KhsV6gySnx{lkl|hwDGVLu0-&zGLvJ!`0Bm0O@jVK!+|4-IUnra96Bu6~X>zan@qL5f-B#PYsNY!DfC)S-@(s~=F&4FA zGVZ_AK&MefmvUs}dIh;wjQ;pgqBe@{i#yP$r1|Mn|(I@D9 zivFr8X4M)8ow_$3x~Y1tz!P~V%^`XAGAExJ+ioes=HC(ft7D9 zoX`ojk^BFwZap|!^#|XbOE$9m=%Kyg8@>&6XW`GI+{K5tH#gj*7qRq{pTOHCIU4l6 zkb4M}t9vv>+#~Qe&-E+tQHsYFe)Z^Un_7p=v8Lopb~`Ql(>?as zS~Dy7x>O6Y;O9-BU>>)%9&cg0r*(K;-pT$}d?STFJU<)mymCXSHx>QsgMIT6rMW~o z3vaW&qgFGu@yvTZ^}<&h$BjL7vYwy(5s4T5nmESa@Y_YZU`iitTw6E$?jmiJasqum z)TA5}*C_IK|9F+Z%VR#J4dHc@Pw$E|B)`{dHMc!C(YM+or&jT0u%xO<32r3DI!EH^ zd%fN5edz!$>RMf{#zM5(E)?)pU2BS?BXh-&Zi{3h2Ez2~f z&pqAU7GGkb-wC|Ra3ZCh%fC}h2|Q=6k1C(`mxUxd60QxKX+q4ewt3P0;=8iU`xSAC zf?S4Y$&gbE^G$=X>5ecW9y!S z5v8ZeKl-2H#9W3|IF>KmPhybNPTyO!xCM9)<#wP8^4ZD@H~=tn_zFv%sP4_>xCzB9 zg?l-=zN3b8z88g#@kZ}ea)WbD(as7r-4F18USa$6oc2}QVFzAEZ`tA6m*vN;y-&}@ z7}nqZnDYcTI6yAO{O~`^dZ$Hv5iAe)ja-ehFI{Z)`OabJ>771rnRCOAAD5#>Ph0cT zgCm?L1`Ot?JxA?)hxZ?O&FWwyWL;SG>AsRrL%p`GZX~ko}^mETP z!spOX5!=gS;DaGoI-HgGHoC>>&EOIH^ouYpA)Xw0`JegO>fO|HS<}1k!M#vt`<$M} z^YpyfrKi%)?fMLu{Y%A~vVXF`uc@ByTdrU8>6UeAEh!#NU$&>sSA0Xn^O;+&8^T=i zC*?i9ykIQ7E9Ke!xwiEA37hA?z)j%0+)lqubdlCRcXwLE`Zn_CMx(x z-k4MRoSp=)Ietd1<=4;H=;XSnZekoK=?+@+VtL0@OF|gcF7?2K3B7jAHF2}$Ibm)d zzux3Jkn#th7pYzV_{K5kx_W=U4lV{isB+g;!&qmCKNf!wdHBcFMAH5KzIUZQp1f}@ z(LsqFZPJT;;H8g~+Fad}tKp;hn023)RGU7~R^d;|_lo&CmS^~ly0kTZ3m+3cMyGSt zNa?B1`Ww9>^!a1FzhEH1FXV(v@uy356- zvxDLN*-}?_sh*d8*#$EyYzgsh_LkZX!n$u>E(AQS{7bg?0sm30^43vd8}82GOY?nE>@3_Vc!AC|;AM%wTrOS~=No#0Sgj%5EimEKEPVZRz7gU@_~pH( zhs8mMs!fOr-_rYXfS6FKF5zenTpGV;!sTu>{yx+kATLn+srzwy-G6{@;Fm^@ z9Bw@#Lp@Ic8gkj7X9gRmorE_^`+V?v_Wf`sjb6YNp(T)(eu21B>JoJeyK@y_89X0RhRP)d`rt7vF^_N?8z`=};OnKf=A?7GA$Qbz9Doy+eTE;nf4THdK|3uZjO4LTX6oJ z(=WGAn=^wSCkM+9vX9_DkMLvqlL+@R$Nro?ab^!kd!5(qA8SwBub-YbU+GDAu=Nn> ztmZ%1Skb@mn*D>!K^WLjBOvJu$c*N_4`<&G{6?|T;*Q04M%spd?FXO5B$`Gymp zG>>8*BK1meeesq4x6FI3<&K4UEbIIA_%6vHqdWX*@iXMH@J1I=PF1n@=3UTPG51$L zE7hh{@73Ys(E)j{y?JCg{WIxp!d?8qGv=R0KYcvupj%uY-(!9Azc%*f5(Y_qxS|{fdyQWCe7@d&ArIpDY8|~k=+e?V z9@$UF4egyjjqC`eUH6_;2a_j{aW8cQ-HZ|F!Yu^Spho@Aj^q zj>(r_f8F7p-u{a|cHC9&Ir$hT)>Cw0^qiO1xyvt|O>p@!K31J)8!zWK^cZ)Yd4>M& zt64-Ozy||7qwz1MqG;pMsvK^Gxz~ zb69;>|4tY?@-Ojiy&a*K>RmfG=CNcN=Ir8wyZ;f@u8v2KFE?oC;Jwx-! zxWjmVm*yJJ4gNTWMv^Yx(1jxJ*a`KIG}rhnwyWbv8^6i9B13v&kXNZXVb{IO6W5y? zdXniz!X|XS^|37vl($L^%7gX$re20$NO#!wE95x_UCVp?9nJLXeWo8PG_G1Wyn7JO zQ2Ubq{hIzQ`&4$cd=LAq0o`l&;^-O-H*uN?`>uS9b>+kHJM>g|NH69q69-EFR^8h4 z%tRVgj4kuXv;NV+>DW1EUhdCfYoUM0)*{w_uv74N*M}qB7kUk2FI2duGPZ&qjU8WL z;ax_19wNSnBk9yD_}-VJ{*ie3J${Zzt2!q?O%J$S+&-Dv{>$St+|kt?$?!Hkjb05G zU!a?d(_yl?bq@KCUvHxW_sAch&f39zm%4#g`;WCgkxTre`P-l?xu0tE`qgnCUk^>^hvgaa$qdcE#;w)vel z>)#c0CmW}-&BxeoE=#22s`s1K6omFvJLYtT8b$am@vUKJNY|a0u7)ox`mip9yN~+u zsN9XZai83BbOp}PZDs5h{%-6~)TNH`1-boBeX!0~Vft6*M{IYn^PR7U$3yk4jk4p^ z&Met};tzH15N%Zd{e}8W(MoX{`Pka z*1@=w)1!S}Ry~VzbS?7OSLPqayo=ld+54@s4c_P9HEd$(34woo!X_MWC+5imE_7h_ zKh*8P*5^*4Ux0bP6Yn!Sn$P0?wb-f4$g_*V^>AoBsOIsR2g0+>?i(=f;pxprLl;nO zJ)Mi{bkQ5e?uym;j=sL7GtPKn8Tmsx3U}|O#i!~1FZ08gEd~F}J{ISB zJ(4c5Re52Pf2;j#oV9A@&2;bJ2VZ2HmUg#vGwO=G zqLTMa# zEvl}Va4F8RTbr z4_Mt$155iX|6RZ<>-p)%&prw9jJOZMzOep*UV|vSv-DLq?SlrN{%?%=E)b`>{WI$n z#8`{EwY9z!^%JY#D}1=+)!|ExSnq&ULf?fN5@lb2>D#N zv()yJ4@Nfoa?;D9EV5oj$QJpG!I4{im!#hZyH0l=KA-!NoW5qc&%2Btm@Qzr7{b+V z3!`v}p6K(yx2=0Gxg%W>jO})qv(s616E zn#ZOCV}JVjSgjAo53{B}RD19A<_!MRS59GBr{aP5J$~bLazL=bXNk3{zG~=!j9v97 zIm+B^Y8&@H{|IYNcz%6f&Pj10up&RcvTv%JB7G2^r@Fx&Q_H>5+us}d=Rkws*JgeG z>M;k;ozoo4cR@R5caz7Rda2{b3+I|@AmhV|v2pX)8kU3@IPnwC{6Mq?-axfQ*lX!L zQAdKtRmTu)_nrD_v%i+>YPk((OJ~rM>}RWu1r4!x8Gj((YqejV=WqRI!S4(^C-mS_ zEP{E2{o1|f?2QJPL&Tyq=T3d2JN987c-x%h6KIdm^1qTum2_;O?zjuUw)f2?rF@G zC!a|7Y~|(ccW{c{yR=7tf#KCDwb9&G7hM@02EE35)yt0^azk^hI^Olb1K1<%d*@f$ zGjxaDF0xa6gZCEo%#!}VyQ;YjKH+!oa$d??dBpb;`kV*cz4b?J(k}MpA${zqiOM_8 zpGjyz&3@tse`|;7Eq} z2&}((wSUeN!DC!0&)VZks#mWbGc$u{evd!<1$v>juWYjGGx^N0Q$7X!|HTj z5E}#6C;M3b{EPCgafd@3Xwh>QWFH{wtp;i zmXA{|TXX(Ax6-=;V^Q3Vh{K8V zFg-Q$Xw}9d2N&P&%A#Wn=rv+|eTDjFk{j1&mCqud$tX{YyqmRzd_~oz&2p7{H2l5X z?-lb=$&abNW#?b7=Xu`(7z^lgcF{gNRUN4n`;7k&ugMeD_tw8gd>IU&@h^IW^10Wm zMh1mv7qe_E-|IF1(jG8g+gdr#k@=?h1$V+^dw756sE}8AkBFIzC#;^~b5&j&vEN|- zvhU8%6OAcG9q%*wZa1-h7PSEOtG#AkzF!{SR*f^;lPmcyZBJHqRbOrI>%rM=`Q1SA zcxt6-ukpLyo1a&ExFUZGV-{;*PpoF9<(>HW^gzOfv*%;~uooN4YGV2`vWNWKt_RjL z(a#7SL2_!w-+emsf(+u{_4`!o=-!{F-cEQHTj{Ukf#PSv^Xa_pJ6~JR^Hqw^51|ow zS3wK0X3D`tS_m@Reg6d=NBvRveDoX+julh2^+GGu+0tGT^PU;r1Ud%4yv^L_R5x98 zoBy`n$QR+a+vs#>j|1d#pmp@I632opNB0n~^R+Er!lS}j=#K6#BI|rC`O}y2Y1tki z&*4`guiw8nooFup8(aCIc@F5aT`+*HG$x-$y07w4cy8Ht7%$@U(r>$9rPRMjYY%dE znWQoWNZu zCg)hIILGR_;ylLQt@5rPmG`csP5->0P5PsIeMs9k;UUo_uZs6^_g?%i=x(ZJB=l3i z>sa;pu$le79fOrW!-sdeTtMV1MyifjRzaNGx=^)qb9MU-AnVZ6*q|bY9cLbW}d+W!ZzCXiOAkQTG z>A7F^8iiw?M@M#ki_Ce&zO+3J|32h?2YLwdIq>gbd;W3k`{`I<|2MYD8GLEv{&Ef% zi|BSfK0c-(bL1Db9)6NH;u~R~z@0$P*6&*MIIlhT-_CL$uT=Yn{i^BEeDk~JU*>LW zJUu(a*R38%{4HNM`ZW5n@d@RP8m$z4QR6eF8`)m3E+U6U_}??WgTK^!(8qm2zjc0A z#Ebnqd^pOl1)CT5>lt1ZWEg(Pm6ybq(PQpUmWh)aJykve?DOzlPj;@~vG7@td9p9V z=km`-IqLr|@0|RYoVD!%{}%RrM6UCBSNrK}Fsw>=KKSo_Z?K>6qZ|*EqZFRSM-jdQ z-&@Re=0f-ele-liu5RBe4jz6ZJ=)(%yei$RN`G5?3-N4w4%v^sVsk?`cnISZ@}KYO z_Z8oj{MU7clK)bh-uWi`E&OCB>P7nd%;i<*q~rN8OrSDID?)vT} z(y)C#$mhl1@>e(S7_wRz&f{>#gU4^zL)RzqE$H8ceCnQBtvII(c(i=`!{YmZ1sl1? z@$;w;rC!Cp2c{?6{(Qqn?Vq6&M_#eYzl-(y{ObMEXA$?|zrVXXjhK=w8-wo7cY%&G z9aXxv`D$AALCI73n6MG>wfsqZt|N@B`<&b_gue(o4!LT0a(}jA|A6`MJK-|9i;OjT z$HxER_3kan*Ck z^A55u2$uNo+}_bbAe4bjT82{ zsh%^K@1VyB+jV#mW!~M%P;q2pIHuPGJ!wQI0S7=`Ibp0AJLod@8MbkF&*8TFAo>9V z7j(MQz=!u&hTvgrAIYn6-fW*mJZV!N;KSJg<05=Z*fW0D99!`?=VSP1deP4n)&kCp zI~n(Z@7)L2+(+4bG8{n7p{oiNT>*aGfXH5X!=zo+l7J-(g)j(lYJwy&DTE&Isl^szzT^)r5}cr5!I z|E|uct2$=Gls^-H8*!ga{=uH?3unk(#XdPRn+N%NM=u$Cg5lgF&eU}rzAG@2=^4w_ zxJq_!bMLw_-spUT_gaj+AN89R;YD2LqO)HTSNZ}E2=s0D-p6@(&EL_rqg`?5 z-%GddDvt?U?Irjo=AM)6=I;qQtn-Y@f2dj)P5L_p7teX;v!;i5vM;2w;)^Zii1p>ppGCdQe3PuHmK!w< zwmp-6Z~Ixue&sx(JD2j2oUy@WqHozhv+UuO>_*XPO&k7Qh@<+s*zY3-Ana8KUwNN> zbUMc`c|^Z1^_vRc5)hmR%A84ySpYUDD7hF%a{SH2D z<*ux5pXa+#>8T6gql7*Dp1&uiZrC~SB{zyG%)d6i)7)>6PxP%LzME^0RJqHlvF|b0 z&>N4u8?V==oGa<;%Dw-jxOAC!j335wg~5eXvAwF_U6dIuJw^=oQ|5aYI{4VJ(Mf{M znqz$BnsXeUnD8w1cH@&(^EZ+y>Gw>;JQ5SAe3Zc~RCOh6tp z=VKN*XA!r1-d;nKcoaEm=wC69=;iJ!7^-kz?ku-#i5|^CSKSEbxUnZ}+rmZsTk$>d zc;PEfs9{LV<+pEx6f?T3aqh~wvG+QUQ2tQ7YX{&6mP5R+mw%sYfq5RU*MjsK>|w6p zpuHEc#m3bmDdN__(SIe5+?LNnUIq5(b6l@*^xqF>!+Q^QzaPGyj?SI&I3KTr6zK-O zh;BrTc(kYO$b8DVp&P_|3Z|2N^STFvfFU`(933y$5gWxIP21-<_Shx{nEV$xR%|^d z!F*Sb5m8zu*m9#Hi2G8}~C zp;BxJ*{3)-cp5)T&tZ@FC}E7GSBY2VxcWNrS@cVM@xpys&CpV2757MWS)h4na<{~C zrTp}Qmd>fI0nJAIL?i!La)i7W&P941chT@e`nUWtU}Z9fYFeJt$X5;heVwMTN5P~- zc|;yb;+?8@81u{19yf3;t!ow^L00x2)>bFisx^I}y4wY>nF0Sk^CJ6{e6k0RqhAr{ zptdkMa-NrleT)rixU+-@0XNx(!^||4bBD__8PDUfIXt#a%;mYh|M+U@LG*aooliOy z^#pWxT!w}o#x85pv+Cm}-}_s5_9WLu7G0<3d>zC2@5&!o+mo-4xP|s0^nGoNt9bqJ zThE{0YJVpB$&sPL5f?s=^n9+B#rVxTwFIUp#mcdHz!eCeHlQ8?@m~I|IJsk{iJ_98 zj-MHvk^I$>-bEYaUC8HVIp_1_I3P31yTo|-guol|+a5Jcz=3Tn5B7F0ufWqrtd+kT zKd5pOSBsxqpihXGi-&YLzd!@AS0r^BtOg@kNAG!8dLtTYfml4}G(?|p7 zZF`+_ML0{&R{81RO4Qqo^A`>{<4eKaWuB%v=JWJ(!#`twN%}~tZ)fYdG=CG%I{G2S zpM4LtuFQA%3?G8o5xO&RopvsgABss7V^??3_Or-c_{dpvM+`ev*n7+?)3=TN&!2C= zQh?zUo$sBJpFmvzuOsmc&)1&d11ira*K+gytZK%f-$uMm#LDW9E+_d_;2iTg!h3{| z`3LtR)%PvVvPtXc3+s2DU%);rom$w7zc;rIRJ!SB1>-L=;D%qm~uti_g?sK-~d=GY8$a`=b) zj9xCjp>s!nEx7w=-+z>TLd^oljzpejytCAq!90As8K!$&JvXJlDBw%5H5M(GDDfJ4 zRzy2C@j~b~>)x4nqlarA!Dra8%e^jG^hwCZvsgmIrwT4UoPXu7Ed9?h)`%V7op0KL zKZtA2MgMggYeran<@9VrcVoxO^qXx+|E%=kB;So_G-80Q4xZN3PU~ZTKT6~H8lJ!P z9YaA+zGxo{p8y{a7I@+s439@FS@`Z?qoy(H@5arkz7OsDnV%_r_=W#C__wCBiBs(Y z&%KZhJVYnm_FNgu!SnlMwxuu<DSSkrsE4>rW%pg(jVaLCnfe(_y0->dGO=T`iR zJC*i`xQW@auGfVaK&BJn)0O)`p62}bk@&=i?qGRO&?_st2fGmbDx3QyuWvp#dOsA$ zF8MGq#-U>4%~*(HManObP89Aj^>7r6IIn2VV;ptB9RMo+$g+ za0}T-D*ZFkMl%ihVS7fX5XaRsZJ zdR6hnC=W%OMI5leE13Oa_rExI_^i`gfi;w!qj;OJYp;41tWbnf$Z;_I5jiq>J`D!>_xl@t<)= zPRmPRK5y0ozJ~el%N7hYxO7C%uX^sBU!3n~EI0EvvkQ|hHw>|N(V_ZDnE!c5Z^!xX z!V^iZO4rUdVv}!Lt?S4$Mc?jw&vp&@ANWoW*M7^q%Iqy_@h#lO_0YrMTs6k3^I|T_ zC2-xP?8oUm0pAxqwlVf`-h z+_nDLd+S{NWhGm|0TU-!f_FGw#xtvJE%B#NLz?=5)U|EUardE^>&4j!5AomUJ7m8% zzntNCpdN7oQNhZR|mTEsF0@t-xdT0jT6%oHPGl zSr=B|FMJK!PovTF+pq^s|5l}!@J#)E)K7L#io5dHM%Vg-w#3MOM#m}qV=cBHe2~0z z>O9DYMjp57DNOW}HEhw^r=&Yz{Jl-)U&g;>$PtaL}mmHo#KaM+5J?~~8U8_Aoo(s8*g`Ye7 zVJkgw4d3VO269TcOzJ+=JTUO&z%QvA-gz0}b5)P&`1KqxsHti? zl=wy=d$OGX*6gyj6H;HQY5I&hpTcKo^O+N0%zO6`;>4vd%6P8X>iCX3VL#>$-WJc0 zu{Q5-gZmfi8kc%orEcAU(7B z+3ksPAmIPdg4cnIShz4I`Tf6Hy}zO#*_3;0`x&NsG8Sxisd4WE4&))`D8fITXZZc~e+x%OUa@lIQ;#s@PK6gnSGT?z@B#9nuZsI` zHR2tIU^UVd1Ed~Wpu5t~(&%?|Nqtjv(B5N(6BcgUu~- z!G}x@%;Mg1mebN+io>qietVBq?Gbv8?2@u(nDC3(ycuKValWu0!YsD=AR?a)cdn$l zc0aT6msQ?#t9i8fACk^Ja=xES9(+fAzuSmmN%6C$e&=#5pLx)$4`w)zK~oNloV{e( z{Mz!xV!w0oebAp<-t8Z+?_Uj;Rnrikits?l6zSi$W)sQpRr$y=&&WR3mOB0s_v>qS zSplZ`Utn{H=l7hh_ZsyKlkPn^-T{X1$Jf~{)5pmvuzOhWNYzP-Jd{2kLuh6K256G6 zOY6#ZgLv4lq*Is0`01fj@L;Uzwd6VAlL7{sd-(68n4?IpMS-vN9$wUAlFeZ?$D~)m z-;`5I{6zI8umuL6@C$IC>8b8E1K;2fr zJzHB^RF3E$MwLcAc*ov@*Tc?D{i%(=`h6?%5z6;Z zpdrb$hW*UK)Q`mQ9{~bWR)d-%CCe^lR&dy|#1@{?TP;DO>+|U7%hw^04&1 z*ZfEQgPOXX`Gb;g!0OT$*h+Lh^ue{A!S>o=mssxd0K0y!x4R@>=6YH=&$y>yeq(5p zJ{jcXB;2d{^go{;Et_n~G-!X<7z+5T^d9#+OCMhLztbFAenbB(`1}jFy8g|f`Eu+% zWY~E*K~qqY}oO2P`@qM9WFuB1>e0 z5^Edr;YFWnWut;k<}TAW<>g*{eoOZx+lr6zH=>KYU*YZt+9uAJXcGU}tkrMBhr96_ z>|gVL##lzJgD1adkc-SE+3pAQThe+e{aW_6$Nk~qJH8(`!;`IEM>c|d3)s@VDo-!_ z%_izCd!eR|@Lt%CX8SxuK9l!7#O$2c-s@~srxe`!@T0U9WKrndk^G-cJ*GJSGFK>K z-71^M=Hs+7@O~oG+0?DL_y#`662hL2O|c1a#6=4!c>DF*Uoq4w`^my`T$!FNeN zj6QMaZ&tS<##Hccc#I?RD13$uU7~uw_#Cn5SO=!zYho^L3(bM^g?E)Y$v9trta~-0 z=lXupW9X$Gr|`Kibsi!gQyqgOcgsDo{8shw^qj0o`f}+HFghSk;eOeu%Xz)wf6y=R z>+hNRfK1SVr9T(8R_#A>|5U+KrnoccPSNjE#-p6}jMiH9-d}cKax6B+(}g*ZKHIdl z%>R_+qx{8*UMI@9FAdwgl3!6j#*g{mWuyNZnn^rVxhKRTsQp*UVr;Hp+sa0In8p{W zdfL(cCl_!Hthf2oRBK(eu2sL?u}DA3pQUTJ(OTw*$~~U{;qhteG+kbd*jvm&GU{&a z%O~l3Q}Kz?u5R#&|2F%Y`a(%gMc(GVznIJT@KHaabiwkjPn{R37|aA($-eX^7OG)i z6fw_o9<4d4rJUAzI30lTah_GnNcSh&eV5)IWQK4~^3#Fa%ymdyRw^glFbBxT5gM{_ zBHc7}dh>5OwgF7Z(!z7?D^=|J{;zQ|3q9V)zEK|H`K|do_u`rc4Sjq}Y&_cjUYqPp zdc3XK_a)Ic?@IA7{+;|*Hn)UTt@+^Q>*C_^O4XOa{75A&9wk|`Sn#EOGY=!#^W{12 zSS)NU&9NM}vbhKMH!+^D?y>n&XCJZg$Bwh7-kR2Ps{FnD-0#m}FWLR&Z{TI0ftRD?XZRJ!&xAP0UMe_eoEczu|cEq4KPgoqM>K z<0L6wOJ28XjNzA(OdGK;Tm5)eJKCT9zc~AUR-9clSjw4(+?(X9e$PLk`r%(p*U$FS zm{>dY27`SV_*D~+>pI4b>IL_?;|tHFT{0?r!00HaFvixgUDnCphyN?j)^ax7M_J3L zb@f$SA|KJ}SuEUI-?-J6&*Y3rxAL`&U~cQuF?e%gUcn_<3Ud z#p-iWD-*1?%bE%!@i)#c_;E|WO`Y?pwFiGq+Q$l$^S{M6k=Gez+}L;(I&i}C%b%@1 zvc8XdK?e?cZ|x_)FkQHXUPBCmxGMHlsHO6+wJ*zt$1a~wx_5jo`_9ofl3%0B6XvXt zxx#>0?1eh-8Mj!*_#4dD|uL}{;9nV`o%}>+KG3)knv{Yu15VN+MM<`woBsC_@3Q2>=;Yo4x%mE z&sbsfmC~NIICc7+;{&mCTzt&==Y~=&rB;t3_0&%Wj89vUj5#F0FX9Y6S&Vw_?zar_OgN)_?Q+8Ej8{yF+Sif~7Rw6U_1l<<3WA)bTyh z?u>tb$kr5(4R<}(z&!n%G3hjqFX(FO!3c&qVnpJ1@8G!$znExzj(*~cnI@BuT()7A zs}thp^t?p2Dwl7>_Z9FfR+}~O+*9&$%-7cIR6HfcttRRt^!P(Y9fh&L6U!fAF$~W$ zx{BC^MCTvM162>f%r~1cW&Ab4&MIt1{N(CQp*SSDHru!He$~F&$#v!e-lCYZ^rh+K zPQ+?_#Fr}m9{7p;d+*hkVej#Ww%~;-Ov6-szF}w9v6g(!chW(LFZ{x@ zMn4*lgB*9(3Dfo-4h?!#&t}Cz#-Hm<=$Tr_8UtQb@XLlwwYw(S z*r4U)iyc3<^kT+t?8kqOY~=2jJ;9ZqOl7u)l-zT=0T5Z6iatBggI_^(7C z#6TK;yQW_JK7Qb5a)eL7qS;?5Pwno^$;``QEn$O|kBUq5s4U5H8G|T!RUBtoBQLEYa$ND86OCtL>)jgUEC_-Q6qWl+nML=&qJKe-`!g(A%)DqAw%z z&miw=oJO{N>)(&58ys@@WOwJaz^^CY!6L5y;TZitpX(F$M_8zd*ovUbQxhubgW8Ai zo5WWq;jMPSd(wAOHLI^xLoVFs96xBy@A$bhlI{Eto>9cP$o}}x&2tH7`z~&#F4oWBmPJEj@f4Wx$~5s_Ya=uJ3hdOv6*bgX^y2IqJg0rkBf;sD#hDB z;6Dt%)&Bo2OiaRnVCOpq)n!28%M`A+#8%X{gZu*~JLruyq_(znG504HJR{MP`6TT< z=NBoKxpWbJn`+R2saf2j&fx0qV1BVbTwkOH#{S;mu4lN_z1AKEaSXE&HhRjxx}xTc z=dsi|;>@{4e*uGUYsZhKm~K61p3gBa%g?F5ms~1hyN-{Qz0u5rwL0vsS7krmZNO2q z`$l+oz}p&*U$|@R@R)a0%;V$o^=Evs>I-Fkgrn~*=${Q+E&E^ttv3CyKF)oG8LD*% zv)9ZH8u7cfzccz=gT7PwTV2n4ZTGc0?|P{GtZnm4KGx#?{ioWH_)S7xt(=QaZU%kL zsCjs>PVJzo{<_&3@bV{Oex<+V0Y8^&;zyrr_P>)0U-9Pm`m{`r!Qj^&ynbuu3B>qK z*>?fnAir+|ROheb~D~#4T<=+Pg{ea1iP{b`tQ8?Mp&Dp^b;_7S~Gewh|r zwe=sBuVn2Y)N@n4E3fUA`jW=?x78W*-l0drwxn8I%JC25-B`aTjdwG+KBgw)#Id@u zcG85gtY3}#l^$8%BKbo7Z-2S?+ZlM1t*G6Qq%U1eY&)rf}OLea3r=~r?|J9+F?lARZnu~eu z9xv#}yp%hgYrY#UE0LG<@7n(B>*1p3l&nw>TJ*G3)CxyVnS8hZtH;~+1-aR;U-uTM zX(0cbaN+~@Y(4Zzk$!b1enc+XR@y)O`||l3hUtjBMAhIZYv$y4@IK3vR$ku1P2AJ< z*S0!vJ~!1Z-@mr;{)A4RH-9V>zipe_+|$V=_3I2DocW~c@~1=C6;bm3p>xYPIbwk4kZzr8D^**rS~rdI<4d)8>xjYj4RR zCl8QXUmN|`h1Z{2gVh;>K0@q``p}gQllK`Mf4IN8|E_QPo*#v~Z+q@oqp-&HIcP7| zaJz9DRBSo^j+$@%v=6Ga*HXJLpILu~J7_#oc_y4MJ! z@8Ri8PrYsEFB)={yx!i2r)luYgW4^ytCME#mYjwNBJUVCpBdz zy2jkq$&BIHsZqmSPuTIY4?&fi>2nx_eztqu&ztp&)|xcwOl5btoT&I{)XAf6K#f&& zAgeJ79}n+&Fn-<-J$t>TXrz^e2k>uqYJY^B5f*%__h<~duw$-Rnt)I}}eByXTEryKg z&T&p`5b6b~r~2;GiE^6hvt&8M1wR^7C#|NFf!S?f%2az2+pp2T@9&V~MiBDaUHZKshb;XD-nBjSZRkn9;?S!|J-m+K zr{tMj9~}8GMPpUNZXViVF2Ti7OQ?h1dPezWBCemyvQMAzgwdUuufO0<9@wt*Ha}D^HhKd(#=2pvNN-Ag?A}hVx2rM8h3oPecglSq zNsl7PVGlZw9Z4X6qL3Pdyt#y-RRDp?+@8De^uz@!ZiH z|J|0q8urHOs>O3D=QW1r$Q2ykoLmhb@hOBe-?~-Ji%@qPpV9W~Q8(oo9^h)1ex zGFW|7eHYe%K0i|Lr$vuLH(##b8OQHQKi_={HLy$fx%xxoQZjJ{|(;Jc2kYx>DVpUt%Xj^ut@u!6g)y}T!s+nEW z8=mf6g#FqLwa_wtv|X=HW6rmaxor6k(1he-=(XFTpL@;Q#jwV}1LIs&2XQ=>HR`a{qpk@_QAu^9`-4H4o|PG-ue@Mt@}-4 zX~(bg#M`b0WKfoq>7a>Z*Bjqel ziYu3OJYp{P5&5=fGZ*yUJr`bGHDTC))eRitw>f?i|8l+(Y(MNR#kY(Pdhbj0CeJ4= zb&0%3@)fuD!pU;Q_1a0cv~ZiU1!`NkL6^qAa=vS@u~bL+XEBDxo8n$+-M&X%^5d2B z!``{R3GWOwWT`D(>t$o*%+pcFeWdgzEo?CH;96(m9oUb_zJAAUkJ#hXM}j)z^?2Y# zEFWJwmD_H^ljsXXrGGvopTYb#Bfo>*NBsf?9qRicu2=m#*sqrh54k4aMBLNj@yr=D zi_X|<`49`+*?KXF*S=s+d%p-|3I4}L>R@jFI6LTq@9uTzsmXlK@adl0dK7oZ4!{?L zop{})H&Lnq^e6sFe6B^W5a?Wfm}nF5Tgy#1`$w2adK8~tf4By2vL%9z`MJ>ltMvrE zs{YLEtk{Eux^uJmxyJG7vX>=xG?;Al!wB`3i(Y9~b4tF|w!L%xr;=l;6&Yhp^*f3l z5#bK1e}VUhFq?z=X&3Z9v;OC%Yg9J6@rjl?)4d-@vx5g}$Uz6xHFaAYJz+?ngdX>< zcXJF5^ms;nDDZu^)Z(jsZVxM|e^3KY+@zh7pS9aY)uSh3^P}t@fI(Zr*HX|qvZ&~P6!pR+8>(mPF?BcNTrP-5gGJ-AV>eTe zC+VNeE7I3s80Fdq{D3?V`g6m7t&e?$U!Sl1yO}@K??`Xs`d9~+~u=}h`jH!N(1Rr*~bUymEIBH7UK9ZL(>>zD9s`Xa`? zAwCv<>-0+=W?YkeiE-bi^iNriwA~wM*nIuwJ4X&w{zBFf{TZC~EO+u&y@I$K-P6^@ zC-sqXe=;(JzU_(`@SV@I&b_rdR`4d(`JmstYz}O;GpF~EI2$Ivjp-laPnF#o z?1_Mhoc$;GOkBI!-w*VWzB|6T8sit83U6EDH-zVGv-JuL?_>;MwEw1+vD5l2DvY+- ze-_L17%M%+Lf>m@Tb&waLVj%S)3BfME+ckX%QNPSl~7W;ZgpTbpqF2uFDo41vI`k|OY z+0P{17mwRjewL^cy`ytSe@pk_3|<-L=DKj{&qROjd^OxX{Y_Se6KnscSX3dmJ^r_d z&HkX6*hk`j9-pJOag;02ZqXQ~-ZTtGUR;$9gq6z}PjxxUF( zjWKL!np)o7%WOx6yi9z!!uMlyKb%%rg+h-lV&exhFHdJPgV&fNPCwmQjY(Z&^3})H zT6_raUI!yAJ)fAm@0Ij6?BK;q&-om$#}w;mVlI5{!hR_?`~X_5?CMq@j^Cvi>ke^# z?$iCr>>0nuraD}FW?i*Baha6%(R#9^ch+|>`f0*A=W8wf2+CTrhCfPU>F&g}EPTdK z8um$jSkmXhXxLt+m=%6V$%jlU{OxlN>l%$~jM$ls5%*fWBmesobMmuSJ^1|jEpacS zfkLjxUVYD(l;|=2?r-aNl0ncXF?!Z*wYy|*LLbQTzWSaoNyG71t$C3eO_fuz4Xsi7+_%=sdF)NAACUhZ*UzK$CVCxd#)N*^yHu2HqXL~*Hp={4vA34raF`@=vh(4?+v#HM>V#v*&WI^Yt`{k6lfWkgH ziE=gaHu=hg&B=1ieHgAsO*bZMR{nt2>-6S+OvA#IJ}-QfW{XHa_$q#CbgVsquPW|! zBOgBXg=-z@Jv^GzSoU?7HbiUQtj95&W}*)XzIcgFN^KYFCsRK>pV8ozzdh!YWc_o@ zd8>J+=gkE9y)&X4gCBKzh36dMAEX}4+t=5HYwB}t?RVyShn?NtZt4r$)WN|vcaHIg zS^d#8SFot(JDrz5=#yo=TL-=Q6?)9Bj_5bUOLna@Uy%PF~LbLBG4S z-+9?T>>O|H^iSbgnI;2|t@dSvua-Jg+AHz%@?NY(d^Ps3$8#f1vd^C9K`j+(DAw-^ z*q7RuSMXn#0deoAkVO&a`03qVVjefAE^4eBm15|lF|y=W3iB=HR*F$0e}ewn)|WlT z@{-Jmau)hg|LmIP7>jqNnt|wychrY4e(1V+&M7G862}zwAKc9Fw5?xo_LWw6x?p4B z8;Lq|_FtHcujJww+s*F^xj?6ik&@@L+vnerHb(oqvrg7;{MPI|{ObH4TDDk$erwok z@}k4%XTy`>?!~e4;W9sw?%=ha1C|^8C%tooo_%jS*vH6^u&0gO2xu0%klbC!en5UV zMo01Ws%Lqy-v*km@ci^GKlXk!(uv>F=SyIg~1RY0lAD2rNZ*9D%e5Z0Q zJO}(f_@cM(z$YrE`Kt3*?hrb~59QW)j55=N;Vx(9Uv-|uLcnPnK4wHu#P7;nsh6U= zv2+pSg4qnJYZY?;N*aYO&?$m0g5QB>!x*7nW~7@DzM6m2JflKJxQJ|R6`Dc&)MqR#tj*lPQ*Y@y~_{bzF# zT5gFqML9oRj>NPvQewe#7HdD9K_3bjpW~JJ;pxn$8)Bq^CoHDeXoXwJcS$)b&=&YR z;`y15r;9U1IgI^7kKPh%#@#>Q{1mr`j~Q0l{N?knLQ9Vm}*R2Ayd>`#ywU5FS}Le?QkZ ze39*SKGGb#7x>h)lw@`r_EEJT7QtDJ^%v%tcZxAK#`%RbIZaQtBHk_?ir5geez=9c z@ZtXB!S@))*zTXaCb}wOs_-F~Gc~O_4d=YBkk?KeC4M#{!_z&^^)u@+;jM|EE%n;Q zDSV32FJ`uOIHw$wsPE8Jc($DDi|y}g-p-h|(RdqlT<{;0Qy~r=`Vf!U_pC42W$l>L zOykK0iZWYvl>D#CjU^uVD4)#)T&USuYlr3hqP{cECh^|N-q*QNhojP=3VECD2zo{j za*w!Q!ZTDit2YNf@Ys0B7a}In&OhWMo83MyWsBucLc3?zLvopouedHVQ({#fJ53%T#$82!2`4uKqjfk2x4|6P;%~e(?q2sRw&*!q{*I4I{~>k6 z!xJ!FW6jpI{KD(~FT}F>eXD)e{j!|HE#2^eJf=p@Gl5B7xOcAl zzi@evr`8ioO*_Re>HNh0O8PXcr@PA&Rceyu8Y#ZW=fib0cwxiJs%MH`!L@_%tc~B= zsV~%b&G~y`h=O4y_qTBBHFwqZE;KXSFlN(go-IE16q^q&ZA5(t%;jV*=^pgMk<~lE zE5ldu*n0$jxU9vnFPzua&eYq(JME|S(psNVi@}|d&yO;8Q1R+z{gvk^YlTnKyjOc> z-Ty%D(kwYJ^F4cuj`Y1_FO|>tetq}}OlILM8Oq;tPiEW_vlDj?<7YC?y(p78AEihO3hR_lWWzrpJO#Fk(WOfP_W-dhgONWSbxdpB>G{O)%i zb~qpO4t~|%^nICFlTJB8e-_VmAjf%4nOOYSR-2;DzAIhxv!}Gf>!jANL?8AFE?<9=i zqwg2Odc-#*Z=&`&IZf5-?#_zpG}{xGoKrO+Hn;1 zU3xO<=YjlbKC>0ul=p2voyihE^BsSe5`!dJOEapOvpjU4{Ji-9XC&oMZM&-{VIxr=w1Pi8gM ziRiIrEkn;m^8ef4Dc@3_1%C}pK$k~<7)ue(a6bm}_~cKWE5lh8A5c9Q)s}Vha>)-F zjw|T1hxuaesyUxBmZ?5p-8PV6tCb_bTM zn>P(H?u;D&$o6!v*H;(s*V;WX?(EBGSC1RtQu#%35$#T7pUJ@qV`x3x;JoSmRUc{TVFuC=g4!q(^xcsSq^fmM8 z@qdXEHNU=a; zZuInceS4zbOfV$iNsJ#Z==_eqlH;$vTCXE<<-Gt@%?norgmfXB0cBItKT-1L+aFp?A|M1(5dN~1z*!S_kIm>#`XRExzoGz962|n znOi6A8khdFy3XWHc-HRou(sq3Ca39hf4-idlP~G^HRci)w_z(kX~n>G8dlL!rI@-FDcIg z@00xas25|6wyE_twSLc|gqmKj=92Fr-hj^ai2+n=7k6*1&kpi?uAvKzBSt-Co`;Rs zn&JPf`JQa_;)urgZ*uOgL!zyNLp|6z$NN5sPsDv4ujABx>B+R$Y=^K4_-s?I(bGY} zPG{ceWUHI=j^7h?Os9vroRb`%CE| z!%f`#=eOVK*}A#80eeaQ`Mda#{Cp|qnpjMP>^SbyxOJ&R5QE2Oj%O=koep1wz2Bb~ zmR_7P*rY}4KhJg4pFD3R=4$S_AU{-GtlM*3AA6nF-SKBRULlUT1k;;x3TrW+p!|dQ zyXf7EIxP0iRe#_#pQ}FzAM^XLr}9zMgP!Fr*Ds>4(B?$yHLH)|xel9eqdq*Bv8U^d zENic`uAv`T@$y^pVNq`=S8z6;*NeYp{Pci6De=x8oLxN(Rf&OQ!#e)g1!u3?h8Alj zeDbSL@tM5tNc&CCYTtd+*MC~GXg;dRW3jBd}n@sY5u&l$6|^&t1D@;Um0T9w6I zjg2Wajh?>Dv0M25-H<*c2Kx5q9@#!roP|GpJ^li}WYHRq?+Z-`ML_R_yCO z(T-+9*L@|2>-E8o{_ps0e82RISS^?u)zP-i5&;)FwDw7kcFUPAasOzFFQ$8hevtSx zXUFlnSssgj`Rl$}+7oIL%peJQu3AXK+{1MjgDim&uX&4zyXIQ-d|q9M-xXb)<6GnE){ItR{PjHi z9ljlS432gs=j@aDS%ytIUQ^8$KGqml)*Q{#@aYA=*1-Z>-Y~zz4|qOWTu*){#q3sB z_*Gli_^x4}26FSN|Je*L&$$^E-S{~J)_8_Js zDGxwy63$=p!%=>p=9ATRE4XOSH)Ng=)4}DeJ|$KO`M-hvenKr~O5K+}mE7;>K48re zd+uC(C!RA`PYdU_!`WQzdbj=?`rxa7vzD>myA39_#6MnJDfQd~_>$hP8!o)9`%>$D z?U*jJ33&lrsibR_ev6KEtzM*@X+x9I#Dz;Vo;egp>k}SUtTc+2_GN|ulsQD#?(6c zjpn2z-k6MKzyJ{_we;XUNfq<87!m{NX+*#ZSC6?63-N7wcKkk=;Ks~LR? z1>?W?5cLajs`_->SfbX^J?=e7xxNpVzUK5f1mDJHGqkd*IHu&Q690hnSeJVz&b=y+ z`cCK{eHPt@t#4~kU7VZx8ZN0T&gB|zlP~!zeDL+rJhI)1EtJE7JDMCt#+Z>q&$D>= z+wP|xl;iEUbjX`X_ zd*UI;vG(zL=FccGc$Uu;uYd@HIy^Et@*oRQzPIL+Tvy}yZ<#pS9!tNl7r_-^sdTbmQ@l)qQ8QE(c;byIS) zoI$sTW1sz*bIYoKXP!5ch1#ne_z`~H-_n^BA4}t-D|fVZ_d#4I#Io=qz>9V>W@Z36 zC-Plyndx)NEC}^e#(jwA>WA}7W@99V=X3`-3bw4qSnkiD3zpJsv zJvFuH*f*nIgrx6VS!sNfgwgL~iL7r!b-vX9XuL}Fh*;mqDDgv;nW7P2llw{LF0!B5 z;GN2MvivE}J-LO0AgqUTI1l~a@;)htT=$Z90?!~hVRq?@$lcSyFv0nf?bz-&uQe?e zo}YR?eqCmX5tyy&I5Xkh8-5NrQpN9&?^Aky{~{U9IKWA~eysUvz8Z7(n8TN6h%AAt zgo8Epk$CPXzxw%$`>n{UeLksq9m2afsTn!k)O zg69-o?1Y+!zgK$}YHXS65*L5Ky>HL(ymKwcaax>6Ze$pXLEaKBIrkf%#TOslCLd}y zW2TBvr8*L`&ESok${U|%=HA)t@zd*b{6G18o(Gq0NpfMe){boD9KWy>aDXns88P}w zJ*VoxHOE<_&*^ofCc*XinZD%-_xpL?j6Jyes||DeIc>kQ4{m+v;?0F)NLWaEpdXY! z47~C5tE%P}^9x#wTE~129D?ravs9L00RqZ4lze?5IxeBKFn z=QWg!16AF@u=|?Xb+XX4DFfFrY+kCt;gh)kZFvCARKICv4|ja|h%bq?FzY3f9XizP zkHnizT}pPT)Rt@(_xS`r*SQPVQh)Ga>u@Ambtirm#WFFvVV>>NZb%Z{87Kw2SR+2Ia-ACoN*t+ZBOC2t~IBE zHIna>=BVWwJ$c^$tsE5e%Zd{_&rWRT5zok{Z90cFH~^ommT=Y+@fd_!Qm+TO;RVHi zyH_tw!z~ecImE-5FjUyt#0{{0M4joAdf$@_&ElcR+*cJBb+moDHJU5@1ic=RHGIz1 zoYzu4-Q#ThyL_$S=Muw!Ns%wk^Lamt>dR}FTg0=(5*NMC;+K5HS2rFF&ski-w43eT*5;YsV$`MUXa$y;R1+5x=-EATy7{{XTh?7)Sc|z zj0bhmcwoWd{4U(j2{WsaG33BFTf+5v-_=YB72t(0@9-miEzhUGZN#8r-G_kT(MWF8CnVC#NL z7X=wi*QHN_HTL{TyI#moxc77MZfxvb+8Q@`6lC6Hg?vg{_l@JDEqE};lT-Lmt$%QO ze;0WectnbR<$DQ-iY^bmYh7L5lQo{9OZ&ZGPDkPKiYL2)T2JnGs~P~ z{3{35w0=IVbz@8Ont<_S&lbUZEYf$++RI-ld6B%%{6F@!_&$Z&kAKel3AQIEhcA0) z%kBpbkiTW_kRU4^{mk_vR@1-xbPkkwjhy>e?bi6fi!41$9#GgWaxKh1t8-`a?^e9G z&gXQ?2UJb7nL873R_;qP&)f2!*nMzQ#6J(lH+m>+`LtQb@D;%cMg9g(V6d&SD=~*w z?fUc8j*5PJ66W&1Z=P||yG>56=_ja|LG`lN8Pz$TYO?}9A0JxZjP0*{|*TN-e>c%wFCTYlSB0s=DddLNhf5-W*GY*>=cpkjQk$=NpH1P#`iaLtbKrBwlb1o~dvue8Ky3};j&%4aoSfch!>_`s!e8q7c#17`O zXJ4S$NUKT0saNx%1M>|=V6yLsvxHMsK0nJHexI+;^Wiw)Af`8Dxt^QtMjuvx>=8Zn zv+KQzwP()sd{nM6*%Q@1$Sa8(z}6&l|ML61M00hb4aC52Y`y@#E{6ojhcl zuy4H>_4CHJXnh%A236O;uYc1SPjN=x8_kP)?z6k990zh=XSS~{eiOIvTQH%_l@~|# z=Xc~u)wkXFVNdc~e=xV&d8j%yjbE#8AMY(+>D{9KgIo9kTb6iG+c|-=a-_`4!d@H{ zAE?27G?>$*Ygg|+zoqVwe6Y`+Lo<#w@QWP`iP;EUfBaYM?}%D6Se;tGBF0kB4wyIk z*YGz|zirNeeFm5LwT*!cSA`!!zVih$MX1Y&BY;>&wV)4g)#LmN{*wHKv`+3P)x@K==>2pPq$4h@^kY#og>?x=O%KDH#L)No8X;d zc0IF5-om9ZX1|$}>G5uz!J6aX5?A}W!+9|%6CGZd$KX}m?<{@i^25;C_|44B5l8sV z&adcjKNp23mH5bUI9#*rH$T%S{9+gW>&ZXB=qO&Z`Ce@d<-N;U-kdX++!(UZeoncX zjJxV{-Nl@U=W7a<3z>9`g!;6zd{-aP^V6D%nC(pP9mpxaQvYt=TlYJZyR+x(=lP1= z%IA<-0r(#otEL=vI&VI+I6Y6XOC3Im;`?~-Ei=K6M)T~S%@obgiBFxbsaipvG0M-K zc~I>&zSsRI{n0by$z}HMJH6lJ1MaYChCL@Yv~7K}r_7f)_P&$Meh7)F_)vbA+?C`m&*G@hA#H}~sOr`j1nV#NF@*Q`VXVDHL zUvZ9|>Aq{5Rcjpi=%!#}pH`R6vh{D7T@ji=s4fudmwA7tKA|m9X-iR6N|fDpEN$)lw8`Oc*MZ=s#ZR1_j8<7 z^Qyjo&#wQ&d7!?{983HecpGdM(j0o@XR#rz9?CWg+;@`0*>=F}(CCZr2OJJIXYos$ zTlbuRo*#WeKF4~xbG${opK=7R`?X)ImkfT#ZB&2Gte#(UW0}R8>)eVJ2W#RMXSAPd z>s@ZoY-a0~KX1>DHTNsAOWLcJPYipY-^;gEeYpPY@y*TIygfJdndD3Q^Ep;H&%(|1 z=~(MXwIA)5$7KB(!}^cgWYhaT25VIOg8od3eoZT_pXNww{dzpXNya#5tcjg7 z>ALMYf2&isa*P9fM+>9d6V1D2p1J&_uutt-=KJZ4+nfbvWtx7pJ+b*n$uI24RPm)8 zznb)b%@SpQY^Ksx!HyJt(5pjoHeCOw-k1hwtGzVebe7*bMPF54#m@lpEd6?Ux|(M2 zmi>-;G3%PyzS@cVd1foo(}^>utrgV!C!Mo**_jc)w0*ET+S?s3?d*&<5B3g5TWQXF zpUX7r+xc^_8(_Jp^(38>Wkdd}@ZjP$-=U{B^)W6QFKEmuZ_Y2hKYu~Y4nOzFXzBgt z{Z+^b`g%$3gx@&p+|PdJviPI>nIHaU<<-s6{L%|-EwTCd>S+GA8_O?O-;O%5uThfG zqx@N)lWlmNhjD)1p_+1CpYiF-!V?>(K-!5n1q)lxhUW>2*w)?D`fFWAdDFg>&Dvck0_9PTsm zpk^7bKGI5xF>_tcd8z(_S+_aHvKlY@y-V-%l$>L&!}{k|l>=T)InXfEIrX=qcXBQa z8M2&giM5GeztG2+u+j5eXL~BoWD{48ZX4Z}vC+Q}zb1WST&|DmKg#|uXWnXZ8*AzL ze<8L*hah(sCB~A@X3mrP{#ZM|{w{m~$HHud*!=86i^anB-3!-DZ2i(~nO*l%HIvKI z``@#L4NpLtA<^^Czn;!DxkdbxSC`GR2qO{fzx%A&{ywI^6n|EI2l$8OTzCB7y!Lvx zoR_ISP~)o=K4#%4;OoDAv)8T__SRyZ6I)lsmtmd9x4sUe$WegJbldoe-1+a(#(KR( z=V5fZHJKaYviF`--D~{ij@e(ArpMCxK3quO9nGItAJcsatEq#N1b?ae(53LP+T-fm z^!)E(j9%5beVg4`=a}1lDv#!q*3*4F>yN_kE$`RM1Mqy>`?33W*+*6nz^VEHk9s)? z`8V75$MYp8O;2rF`wlj}_^ChG)24>T^OWz!=h~m6k161u4RihK^0oIv(vOq#P&@s2 zz^_^TAKvwBp)<$1vrjw&ayx}r)7Lh|F_Le`a$B9GGuJS`OLLw(x+P;fOvfNghJEyz zOtI!*IxOvz^4(<*&}khU7I~2mld&P9))yeYyXlZSKb+o=gU1Mji#Cqd> z<_hnwj`wyCcHi$_-7W9J{nM^x&AAPpZ=Q`8+VJUYe|pQD8t)Ul{j2yF z{t`S6X9}H9uN|Dc$e;JIeWgyqIug%Gq0=1=p{2g@7qBE|3FqfWlxC%rx)zziOVq zDl<_mg2SS#_y zpS@83^EPtm>m^J*|G`^EUtH`zsd=pD>v0?AM@;K8dzO^rs>Ka_tT`^Ir0V%1pCybtJ}j7r<@ax{P5$Y3 zuGs0oBd58ynuGKp3^jSBjMWzpCI88`k%uYI@akVx=RKkqCf9J7S6_0p1G5l@dBg&4 zzSbBj|Ci%xb3cT7$Obs0W6feZzjNkk4RYPsfq|Gh>)(F9uIk^+p<|q!kuR$4xoUY2 z!4VRhsBXfnV)EJeRMN?F{2MzA2T;ll58$o(XQ%F)+eqPr;pj8&wI)~GvwLu=z4}CM z*>kYu(KZ*r``ysTcOzb&rTb0CntUqHcW?OJ%O{*O)~Nfxf9$MB8>!F4 zHH$wN+n3j(*q`UfSCNBLY(ZX%SvPCdj=*O??a%GU$&2wVc7s{eLH6oCJi>1LsK>-H z@Qq!H_(%06C2UygiA?yVRCmL#gGas8+~U~=x0!U&b_|8@s-EKhsAHF z*4bcjpB8r{%+znWz6E}nJ-mYh$hqOuUbnyd&(AH2@|5@>`+c>i!k$rQGmMh@mwjGu z$#=h=!Otn2g>jkGIh52!>-u;6na6O(WZj{9Qt_cv&s(#;#I%3kSWP~5JEJtlz5k#O zrORF8J(7p?rmS2x*F?5M&N$~corjXYHJ@$YE$GhCmp@-GBwi$O1I6`7aRk>&br>XUp_$TWr_xlSmd^kh7p5Efb z$|^NMU$@BJT0Vz;30R6|E!QhX;8}bRzt6;dL-4IPyW+bQo$4?3;G8>A9_hd0e3=jK>s)viLfyKR_Y`9uZ5s!I zb2VIf99d>g?*0z;QalVc`xfkVse$+X;OvJnuc+*Mn#;PH`)(}n_6c7+-m|H#xAHjX zCkOpg_*`0jLhQ=k5OY&coMgYs`w(ipL>*gkXW*@E&)KV3|4(PFi-#}_M5?(vm;Bj_ z&5sE)(8JD9PZa)n6E4$yhIx16!{~iB=coSq`hKgQp4mPUW1P1=?mfSAUO0iz$_3ze zdX4lb_J2Li=L~i-uW_=IDm67K4kJN_tYiJ%%3LKi?LY9fBdi)E$>(E zQMLJB@D$5uIGk|)H1Fjc4FBC%J6kKS=)=Yze4(5VeeCMRZsLns^#H$CbAAKnrmpXF zyh>B+b-$s=2)G;ZHm4eWH^wizE!gD7mb-6kGad6aT282-7w{953+&y)@)xy6xdVrB z)g`U&R&MU+`eIoBl=n7y@Lu53ThQQ`+}D=QpL4$)|2uqFc+Lh#InWdA&l#~f+}~@w z>tHN%p44-V-mgVm6|iwFMt1F`y?2r&{VZ<59%f7N<>3NrJjN#rHj7>ln_afC^5tUl z{!DyYdH?mfwD&XdO?@uVnkVsRbGgD_K5y(o#B>eqCF|0BCq8%4$+k|NT#~OH{7T!* zb6ng8({gh%cAFQ^it=Z?Z@5R)`<-j9%a=_#*bnt{vwXrG={WHO(Yp->L38^Sc$SBd z*A23xy1(`Pdfc4#MwUbPF@)9B{1DX#jOXuYyT}WiTGTnl-?M%(KA~%?jSTT6q&-$I zuFqnBj=t`!PowUCraUtkU*$&(GxaUtEIYAV_DydyrXlDrw=u*zVoTxXVN z^?bMGQLXk!uXw5DS$@WKaeVjKKmAwPy|m_L3zIDlzM$j&P5!Grnzm-YY)|pyknQuY z>T^r^#0Kvd*CY5Or`}I>tGYXUb2h_C{4RD@bgi;yDd$mSn>~0-9z4rklr{CWqhC}n zm+#T$ac9QmKV<{pqeI6WWR9~&|5h8&@^HCsub9+F;GRP)sC-b?&*NLv#xhj ze^%-{Oc-2dBrvlu+EMA!x^^A|r9DAs^=$HE^{U?w|Eh^!WTR7UG3xMW4?Ru+&m8dG z4c@l3FN5}O7^D0Pwho+Qv{#)q^L*sdwqnCu@E6+4U|0GxwL0I=eop@Wl-SMt-%~v) z<9x81OL$WFAw<<@w><3 zHmql^U-#o)J-;Kw%u!~|=ZZBf|8BzT8CIpuJ0BD*uk3H~g@*dkc?RM6qx>%{eSde5 zbJR74@18B5J=CQ2E(N2UWz6NE?fyY=$swlf$-;Q_o*XC30I!?YzIEh&!<;Ke!}`*83zDoFz{Z&wf=)Rsk47o9y{kw zGNBrB_xevhL-CUa1GWY=Y^hjt}X(Hlw(Hnbxb#`TxxwXH@te@k?Wevw-_Mh zz{uH6k+1gr@!X%!S6z0p@6zP{`s?IkbG%S;Kg1dE&J}#>*}Y~mjvtN}#==tDoLc9w(;T$i*R%XZyo}^6J_r9- zdNlhSaCtXA2eDLL->wdeKJDx9IbyXS_lik3Kc@L8kB+;OUvs(%Mx1`cxs$!~^Qrq7 z&m=e+*6il=%KiK#Zw1G}vne*1@?O%(#qNE3{h`U~OT$=L^ zy6rLi>oC@BD986T#U!ckbh&UuBYTc>Vx|)~hFtdverSiIPk0Dq*J@F4fwC6VMwmyS z+{v0_HIQLpr96IaY9+IBXu3w74RhM*i*sKz&vcPZ^mQoxwq-tmY_@FvMd@?xoxhAJ zDtzO7r;#ycVn2Yf`ta(vjo+=GEzbs`f9%!ws3Wrv%{?_MP(84pG?OFu*ji0HJ?r7Z z;<@^Cy8f%#D&4>M(?5$%bFRsqn-;ULT&DQL!P3AT`3tjmGj43P=AXgpeBoVFPnO5_ zo!?2W%A6HsgLrbIBVQ$7P-EZ8?fLtBAL{*u^L(D4TJ=;G6x!p5;ojk{XNwx-L8yJ(0XOa=7`>$~|}`Vbxql6@%PvMO)ciqnKiO2Q70f8RD&9(n}^{FS0VV^2XJhn@V+uDva~WSt!F z!uGx2YjU~yz$~;E;w>B_ud83c&?Y^8_7C#Kf2KXv?^CY?zfU=ujZino4_LB$R(UHq z0M5xJeNOv2Gdt{6-h<9M*PL|bOKWl|(xU|nzo^9b)=W_^T|3~SFtX%9(gw=!m*PB<#U{|;AcG-miN&$ zyheXnt@iRE+4+dw#UI%Hlyu^Eu$F(uXYODWYreK`<29o!?|;eAVmUuDoMj8gV@SG~B;w9XfKG&PA!KH#kSmMfQ7a z)^NlYa~*r;=Bz%aY_2R{Fqho+rDwM@CwJnT4Z4S1EPcK=yPp&zH1*PYwjY6w4f*-9 z-o^fbO%nz;$GXLDzG&u#}Hp7s= zXSptO4Qv0q=QCa zOJ_{JL+(GUeI(5}3eUyav%CiVHj@+N0$o++UzG3k>e2G?-CkKdoBRbn&-b_I;89mB zVb9F(vTjgKH9ce0DIMQG#sSrq<+Uw&g6F6=)_LaUuX{XMFes`C(pz~%o?h?MU=f?B_azC)y7A(W+BKeg9-^reo^V&F?Go#Y|m#l2=p5C7+ro2$52?0<>Z zN{#~ggAbDVcV3_Mb4E;H`u=(hhxSR+_Y`Z89qzI4&deFG{6dXCdODw6^$EPR@cvJG z#u`&PJ}L2RkLUr~%ss~0SH;e#_qAhJrrx9GLEa6;d{51RjF*#Kd{6V1$zzpTtGGr= zpR)37;XOJW$I-T|l8aFsl`+Cc>bVm(#q_7=X8Fw6=68w9v;BSFCRN_EH~XtSJCO4p zx@VS&lB4N!qSbk_#-%U4T>T98L4C$a9#icu$yxtQJFbL0De}C{T%t*?%Vk-t@dWlQ z);v6q+V?D@l#$QhMUVVCfpKR(1xu#<8TmKmSV{!4x4f9A2 z>iTc>)>FEzVoLM+AC}&QuFoJlYH~Dh`3Uwb$e4JX>RAlD2E_TkrX3%H=PZ11%o)2U z{>!<4_Qaoif8ls&ZY}a0KMzi>kymO1zrVad-glNsgI1KNmZe-l5o_S^h?vM??G$ zm%-sY@8@|~?0TJH!Av&h9)CGqrPm_Pbt?Ww>9vB_aI!!iNAox$uE~8>%{Dh3xlMnO z`d8Rj@@?W#z*jdt55B78f`1`4DYj*5{u_=0p7r`&>?x12!~*kC4&hK!E>Zo>ny0Pj zcNF9Dj<_}puF!<($ld$Nex!d-cT;Hh2 zHq9z8=Ny0UG+(>&j_`SOuj|_y+n`s!$Zt>Q#p|dkPq|^(SH(6bpTXvKa+-cU^xVB- zzx)}!SIUW%^ONhrxi*(`_33ld@CV=q@5o^sd}Z!7b+&AaY;LS_{a@(e>6~q?3AuKk zDb~9`=RM~{trnN|P&r)V6K(PgDNk5+g{~d@4&u)x@8&kDs8H@MmjnS&d86=U)9;`5{i|S6aHKUhABB<9y8v=FNS&c%9#m z^A1+zh2H!1{i{22@kLgj#nxQYpR3usb-uP_2>kCRSl~;yL7iT!C^OjqXY2vLt$QUb z9yr7#E2@iIo#*63wqbhi$IKOyY?huTD`r6P;WVq^vp_4u#Eh|CP{*rampFt2WOYd*-q_2lO5`Yv&f&$uF%D?Xmi zsry~@k=WhC2ZG7G9J^6v%vpTTJ{kd|6)PIxhZMfcM)PGG*&&mDx{*bF7_oaO9 zHh#Hy^~^uq1K0ZLyn}@_{h#!wbpMay66>>pGm%=)%W_T*wkK~7zkhlyZse6$%-8eh zpnm&}7z8;1(=C2|^!;nFR9h>3j30Ye>Q-fbN8(!U)?FTFTND3lvzKtW+?Twa>d|d) za(eEPuW%cZIFXY^|&U6SrI!-mvn?AwruT}yT1 z^8E1`r}MACwFw{H2!4nB-qhHJ@DzEE4NH1fdH%DHwt}x{Yj|cpnd2c=^Ur_VSe;)! z94+nd9Gr}f<|h9fua4Ju$DLdR*P1R<9e-v8T-55_L~}&pu>;p{`V?NxWqQ@smo;(z zNNhWNMGu-ulj0As9_Q5Rl}8f>Q8}DdVG$+k_=d=GXOA~@FQ5DN2|m>CXAhsgy;&H4 zeRFfpjMj^#S0>BGD6QhW}Z3rO4`zBl~CU2t}Hu|^1= z+Hc+3ljXlzTR2?%YlpvxU+Z~&VN!AqH=f@%hGb3YMdF-izMM7eJUO3B`rLlI*a|%} z<`bu$pq^i^eaq)$aLz&+KoYd&4~2z{#Xs#b@!7 zvnQ;BI3JAjznSqJ&uH{R$aPYOKSA!sF&2K6F*WZ3o{{%AOhWQ40zScVsp8}Kg4|xZ zZdJ`nxE#&7myGUyi_Z}Aqgmf@ee2PH7iG!v-1h~Gal186xzeQniHE*{ldIfS$u~ik z=2T0fuY+C*{ErWHkGk<~o0qM*&V>0=Jvh8$yv|JBB+g;`9yUJNr8eJH^@Z`9esi9K z#T#<;>P3OGYMXq0>hVbL%eB~J(-Cv@FUnugoO}7UH}DWXudFd2Og+I(jQ_OQCFM5m zYQ4S1^rXCZgY)rRdb)QQ`~Uh+wa-z+Xoe&i$fE8VYyIhq!ac&(j3<|e7$-;2Wt^EHfiOcsVmO%&*K^&boO(Kf5FHP5I znmA;iJj!**jalwwXW1n=kYx_>y-mqM|3wRCr z$gw9n*P++8;ZLW=O%F-u8G~L6Se4)_ALqL5T7$=&kz>*Obn!yu@lxFcJJR%Zw|m?D ztDG!(jhpkei;FjVuLiIwi{h;CKD79L)ect73B3d9vzPKqnNJN?@tE3P!7lz7i(ZydgiI2q8f$}bQPl9TB7`nP-q z9#h1gzTV87f%jr9I{irW>tvl}XC}Sx&@3dw$=5ZhSQN|or#%6$ddW3YuG{4PGVS4o zW5zcUxcWPhRW9)lmG$ zHr7&X<{WMr!&vtH*Zmsm1G_d;Y<9g4EGsxJa=zrJ5;r2}HtNx;Gakb+TlMu1H_>X`HEt08p}v2KG1lyPTb~#H7@k|#_^SC3-Om;| zK(4ACu$ZLCQj5|1sh$tX$N}?PJioOdPU5LpB6u^YyC@ex+y&l<9t72H!#-8r{h0bo zvnL*px-SwiSe{QlTmr*+61nOdd|DG{X8$JT>fp;S@gL_P=MI7$?Dk&N{X>3h9JJ=K zYU9V%x~$-n=*c53|wEID<}>+w#V zIh?=y3fsH1pYm@v=&vF-u1k$a`ai4LQ-S7-H1G|ISxxtQ82UkvQlbDR&fYeXi z{amU+=sM&`;OM4ygRhixfZh4>H_XZfAJX2t>YCJRV7lA!bNO#SJKqY-GyU@?_$ATT z`#CIR#+f4{yz3))U(u}|lXT;_N5x%m5S$6Kot}TE#4LGDsLd6<70*wS$$all+|}Cf zqG!spruZrOws2fF@A~|4l4|8`{C#}*vecVS4&fWMI{Na>`Qhlksm(r3_xu-pC;KES6>7`>8@Y<+CcF{k@k zPi3nQWg}ngat+NXcy(KT{t)hQ|LVJXCtnvV3N`PP`)e>05g*~TJp6g9>HV$Z>x6$S z_!IOYe~+=5KdYP^-P~Zi^52z@&+pH3*!Tag-css!Lp8_0 z{qgaoYK-x^<@@{%?$}rD8hcEV?W69O@sIf#8k|b0KRz-BL$_FMvtkK_vvgU{zY}+v z@7=EPGbf+F!CF=w^_SEaAHb;mfYUKxiL<}_zl%#e_LQW2VfA_X*ya4bvvtn#^%A_* z^u2+HiT<^5h8%i~Ob!{If{c^1`USoCR{Q)!ZKZiGpELO-;Ln(?n|MWzlm9Wr7Ylxr zW2Fwjf|5&aY#07eykDzN+OyD}6UR4?=t&!FUtMk-{Y7Vro>1zco)4kMrdoo{ zLb(BFeS>ej8uBHj26q|jW#Fqesf}*l60==`tzu0__p0HN_hbI{Me471eS)8_z7y3? z!2r$kS>a;DGvMoo-kGcTfrLdqT#olsd;^vqKa1~@BO*@HJM8FZT|4<-^xbex?CCu* zpw-~So3GC>^NQb3;4900l`6}`{RAZH=x&%oFVtvG#NnWSpR%nf8Aes?kD4K)B0yTXu)G9 zpP93&ci0f_$m)(wZ$QT6F1=8k*vI29gK;_kq`#%>+Ke=OMzEyjgM2%`SI(j1Gs+jK z>*)E(JU1?5@99~`SGvjmr_YZ`XF-3{tmZVw+c?Iwzw{WOn>Kb1?$(ax47;&>Fxgx_ z94~F{9xSepSHTE&xKE3pAdKa`dK9$({m-HQ%x643oLuRB@zeBqaEa;jzrXz3A0Gzt z$ml!1i$0uZK26RiXTM_p^NG!duQ>|$DLfBvJp$`+$8fFU-L-S(XX8?R z)=78e`E}yiP5to9q3oTN=fxl!pGUDntDEBM2WN|pS8qc)$NTUDWqiB(siTgNEX&rQ z-xp5d;8p&x_PZ3`*W9;+Z2$`j4pF{B^m|T?3#74CMSh$6C0@+LC88SqpWOTAO~R4Y zdus;eR(US&`GUW3Pq^GAP_1*Etha)+`pm zw+7$q@4Bs-6kUFD)<8AXC&&KDPjeeBevbh=7ka(ufo*hQ>+5E_f-Vc+$s8{_Z3l4IRk8L*GNzBkjo%syYd+!tSBIwP7l$hDGQ?$!s( zcg$wg&$;b%8$IPa^V^H`6@9~o69Wf3Q_kkJ?-BQdtwzqgZknHySuormyb}AZJoDjB z8?zWzmKg*q>I=Yzthjvk@)BH+b7A&HYp9+Ju#^e^2QL+Pf5qr#1He$fxqo#(TsNKC z6PV;?aw;1{tuDlOUPHsyh}VU^DDR@ZE&35`^`-eHs@r<*`>H1s*e}gGW4^>ctyV1m zN&SGy)*Bzb+xqGEpNCI?TK7A8+32%mpPF~ldWUD~?w4{rOLK2m>)y(zffI259X%(f z3-ssK=drv>)%*Ic^{ql6xRKLpV;?iHp zR^H2JeYW;FjF-3LSNdGXwC?2@X6|c}MSnNr*-h(}_0W)fQO8;}9~>Ex&(P(Mt+LbO zO%>)Rf43tCf51Z-WdGt1WGLAKdUTbajpwZRiB0a2y>DyyDLA<}QF!iFp4~<#Ul6<4;&@#RWi(&4=3sMUA#Jequqi_%B5 z@jF-})hN*SJ^SI$pL{CW)f}t4Z+X z_7}~7Bv!y?Sf4FAWMH=4m^>qM7UT=P*aU;Q-RKbXJp5Y5QOvC3#DR%_O6;ImpM2Qm zCH^dPRpu{G!QqPE=X8PE=^^W%dq>iG{CuD9>|CdCuGE|#n(K=LpkjpLtgDI#@t7>- zBp=(KTi3J3;SrbNd8zaD3H?Lr2X$G%&*Ge)=X>4s&s4EDey&R1q+_GpPBPCr+x-%A zwK_&VUV8tH)y3ugX*{bhB`m}nX2PN4lCE~X`ZUvd*}2? zc8yw}cxT5Idq&>)&yAI~M{?-hO3pd01sI!VKVvTTEaj)i73U>9;)BPScR@BXSB>iv z!~f2B7S@$oRpgT>LI^dUyH{Pc1gn-^BAZ$vqh6f2rpW&NJhH zw*2>hlOH|9f2PLJJb$ZykV|r2Kk%pVSr+c*@l_s_^YGl~1fO{u&N^z$_uc$Y!S#f^ zWWhG|a!#FD5knZv>PzZ8!e`#gc{vZ2?k8W9xucyNpxb`SS@HbDD{y=?wMfpg=JJr2 znmLPwI_b={m>0jxMezgLSiQ;bWL(k3A0OfET^;T1&W+#ij5qgo#*_C4bCb8bechLR z?>Wz>slHENF1SGSp7{XEA&BcjIsXI0ReOBV=q&sjvnAG>)YY$1r&*5a;57A4(GO4W zPd7IdasaySBj$b(hknGz2cNKIxlPrFP7bJzb$X*~jA60nKKYH`?Xy$;JJ02{`50j& z#x`3g#FU{&qN{K9{^6a(D@hIIpS4C*`*I$M{c?L!eA#?{O7BfimRZLpN7U2_RQIlN ze)XeeJ8JAy{Xo4>y?4ql6CS6Fo-KZi`>dQ|^StVn2{CK$ zobi6XCgP4;tg*MB;nIiLk0<2=TOQx`G+_>I-}KH2?;K>Ddz_jqUF8_tYZT#`Tb;;v zEywKpAl?Md7Cjo|h~WDPXFGo`#-#qc=-b$}QtVOdaRcX$`?<_7Qp->Hs$6%EGH=h< zzh}-An~{a9&^>{@gt~}P~Rfwk$B$H+_Q1BRx{$hF?IE!KGgOcKcO!)pZBuP z_&MU2KzICz+c>SsOL8}x|56Uf@)Ze7BmJ7+mzvmzx0*{nx}7_nQ%~Zh^^AHi=EdjN zW91f~QT~pW)fe_FJPZF7z1QTJ?LFc-ia3R~{|W9Mag}5~y3mhi*g$dIFTl+S*QfUc zq|bvXN;a?48zub62tKQBu08gf79Qk?y;WWz^g_e$>HX&7Cd2=njVBKMHSuhvbKmNe zS?A=;dhZSjmpA&{`vYGW)2LQ_#Zlcam}%o{;t9P@3QWn>~ja_gXdG+ zUv2Mh)z!bMbJar$Zk2fss!7~}bzFY`=6YBB=SS3@@V6uO7H*-1ar%9OeJ%AMa%J;y z&VcsxCMO+RSMArNuXzlLqk@$o{#iAV3T zt!KlBcOw11t{C!6`rP?Zm{ozFPtV2pk~rCT6^;+Z)$BOf(`oP1-tRxa!S^dYLhhf2 z9-+7&!umbzYOQ4V#6_LB99zH0>npi_RO9Wd;urVgg@hf}XXAC1SE|?fBwj!4OO>Ng zyZY4q9(zZ8c7bnATrn-qfrB91E3=>CkQMLOg1Dj*)^S{CUhw`_b3)%F`8NMC&J?sb zKjjs(tQB0k?m?Vu93}?~#w%NKSa2eVGurtY#qsC;PU$_EUGZw#I~tZ$adTd)*L!V$ zKK-1Jyl2Uy{0YyYFs}4IeW#`$xfi>=Q@$q8+Do{8PX0G_@mXIG{=+L@$n1i+?Jo{HF&Utvd!vWsQ!BL^XnW&%|9V8|Ly$f zIqMqa`s@3od)D*Q>S52bs6WBq0nGktT_fX=$!of2dR?*0x6}2L%+oi2dXx5TsxOl2 zT&(%Kp*fPu9Wzgmnj@Tt9`i?^X@;M0gpXsqy_xqR`9kQd@(vx}+VX}u{!$*t*C)oQ z9`lyZxIGw=KO4&)Y#kqcUL2?OJ?ro*dY-?`sc==9Oa5l z)hA+S?MOaQ{yepYlNVc`+xMBH{*vntf3bgb!yK$@_+h8=Qg0Uhi@XQCYUV(=6j$>D zYl=RhuLyZzf4?(Bmv?+w`ZiP#OL=4G`otETsZZuboICPUz39bvLZ|r*TAPJ2nQd z^mfNS3fC1iC%z(VZNvtUSF8HJelGa~P5lGze0tHzV}81DypG4zom~85dbG1{kbWEN z2d=iPa(6yuCW)U3ID0Z~if4D9<+5Mn!2dDaqx)ujC(R%YxoO_9aES68hI34_1!l}g zVQqc=Ui9SIe0bgwI&hY( zMLRQ;4{dBh$QxD}%5wxhgMG4}cdzd*;j*2aeh4-JzG~z==soLWg}*Y@2m>GN58~I) z=qI}m?`8a#){~-~0K9GFhBWi}{hOQ5pU?8#-qH(tf$rRXpchV@J^B2?ZNF{t6g_)s zrnmJmH#xK_pO48m79YlPf?1zNF1*ayqJ9qM`cBK0l)A6m>oPMW<{I;ROuI&dZOrd) zxt^rwBhQERE~YigzRxU7(_nrjVVcA>l5=^F^q=0oJz7q=GUmfuJdCbPKG+#Eh1=(E z&l78Ok4!ioj~MPp{OjrZ)8j$A@AekCOXHs_z8N|{$2h$hGM`b^SK$p)?!C%Rqf?Sj z`0>1@59OlCN6{_B)V?nDI-FaVu`rvVV*}9d z?$>4CtkfK&KZ;)Ma7(Q+yXS@G3#RKUzEbZj{tmO$@O`d|-=jL~+oPQu&eB)$M>Rgt z+T>4So}9}M>-{u8XeJ(O(9i1Nu~L1v%nJwa-^FDS)5ANQzB{;sSA1N~Sdy(ytrFh5Vi#uO$baWNsyDsFsNOeD z%|iGt?9RKy+0g7=;-~KAZi}3}dPM)=Y&@o7Bx3K6J6OWkt? z9J`o%s)PBfsoG!c! zXMW0=j2vukpX@BL9%Zg)XKms&hdHsd#v@zLyx;g*`7F1#>Cu?ODkHvj?}UPl(V=vcC6H#HJ9lSlng0itmdD1OK4zN5kDP)$V#co9!+MWE z1D%<}#m}#`#YVUEx!;C!hvoB!SJWQ^epTjtF)4Hl(+Br{u@LrFzXUL|{l%(EV za-EV7_;ui3@N;tx|14bME6bFx|4$qnKF<`u6%mvtGX=H~1RFtjxdx>&fgKuwUdaWjDlOi4FgS7<*G3 zmc-8BXm7^XC)C@MPDt0@@L0m{+d0EUuSD$4DLyhi#pCbz9Q*Pe#T9Gwdu-mf_CY)t z({=hzdJg=To<6YeA`AIhqy3tq6OiS_NxtUmwe-Hs8pzMt*}IG?<5Q`F%EoT z+qNeu$K-nMAnnWbFLS}Jq%%=;dEWaDmLadt4EYZAtrU~yYt58RpM71|v##;KX3D77 z3DWa#WNwE1?;q8>jFZ;mkxBjzwXJsVdw;(ne|}KxPT5QH5_Y{Y_15#>FLSOr@A>C9 zj&~dSOuL_8GD{AFd`Yo^IlohK?lXPlsXFl3Fhiq5ILlr%{DWc5h0S7?7&?A;((!S# zuNrV=;s*EYC3!I}bKvaly_U1ZWv*~FpI>zKHJYQd)ldT}P zX8SZI4}5;V_~9LUy}xjBZJ5!azh!+{;=-SmKm6ZjR!L*KUy%cZg9H3YouANfrHB2! z6@Pu=(7%M!-SB#Ywle$TZ7t93>VegP`&cXMxlDRDNKbz)>`n4<` zydRQXk1^!aWxH>7)XwtQbGL9so{e_D<$gxpLwK2;xw}91ug34;g%}--me%NvS$8=e z_3i{uGQoSCGb{4Zap`4A{Gt9xuy^z?7Tx!Aw$yVErC*x(Hs^pt ztoXBj-FoI&Nct-EYS(*2`3v{!a8Eo+R(jWt*DE=PDElrOyvxTloSk&B8 z?s&=r@*Tv4`Pq;Q=d&9*=5BxC7{7@alK%R{cLt}a`t!W5>R8#C^~I?+#knzdJw9k= z7yPszWHp_W)nu15eF#VT)IB7_>o>u<5o%XvzK$o z7mxLIzA={+n;_15mv!e*nQ{p z4DyHDcedIswU6|D=K{64kt2VP!h>Wyi*VpHypC2YDf{AFlDz8`*u5^_1Mld)x0`h@ zbj@M@$@DzRPUJ9JnVISo`xrL+WTDO^(cIu zHgj`eFR>NBy&v5%AHF<~KbPhRhyyk3duvzx^XOBX$4Add@D=%6tebP~yq{^G;(q#B z?CfV(Zq%n=_S1Q0XYJ>JjN~(4xoPt?S^NHeruTQ=%|RJMhYjy%PiFi2O8c4Ko0zh2 z)lT2fbj@}@2lUa@{Y)IGkKRwX31co6of&HP&Ce-+!_1-*o6hv<$HW7g=RloDJ&tZ) zo!`f11ZP`zae6fV0$xe;vmGCYuH)b0ZWk7uz8+*0zCE{rBQR>REe+=1IO0`5J!Xxm zV_QF@^j_1$*Tf0%_pZ@5DO-56Eo?FVg1GX0E{5h^5T7yoB6Clu)`q=P9p7f9XwJwK zAL7IEAEt9}&OgK38|;!eJN^1#GA`lk%C=bVdA6ZvS=c_?_~86s_#?r#@>%-~_ICdJ z2WpM__a&dFrcMo!p2fz#$9FZ{uGU0YhGp_){&_!V<0s=i3|DNtL^Tgk>a6aYXS`s_ z2P9viTi?rmd7eK@P1pB!BjqZS-77I)^6{A?LCs>SFI70O1{t-OwC1=$Msmd?%<$)&F4yM)#hWS$v9W|zvc#JKC`D++xWW3;`QXxa$>25{^q*=zUKp&&8dI4@3{~76|Nt{ zroTO04QIjaO0H4n`;fEBpPgO@O}_fsT&_{6_Tc)3{PmZFDQ9Tux?e8_i zoIC?P3y-rqufDyxUtW8Agbz!d7@c{M;^L2{?}UxJ856%T%gON_uMh6wu)02Hy$*zR z{y_eUx`gZNox@$u8#5}^6Sp=2r-&{j#~b`L-7oct!5Mr+Pw73q6=1gw?@hj#cnA9g z4-GR^-yUs#JU^TlR!TjC)?-GjsU8AqZ@al~k{bOyKPNjT-CgxF9Q~SUlys?K{cQG@ z`^?n7H^{YNcRtbg@%`-K6Sx}T{4VE@KPbkY`}P(d!?)lynYZ=u=7nN0@wuY!uMeo% zYYx$GcUvEKUUc5kI40o{lTFhcE@oogMO(mg<-C;S^tW%y&#LE@nCgLdoRH@u2ksb@ zuI-g=9Df80D;!hOONNnJAWm#@xVFFh;s<-XzB_lezV#38ORhlq^lftKOSf;2#<%7_ z+%J89^WymBn}x{(y*lj6QhM(1e+N6W^w0fQNq5id-Nk958DC#wO)KF#f5n%$gxX_ULZAqEGxA%B3L zWH9UUnbdDNPTZX}j-j^^nH`a{xMYr>{1)}P+5DO!Z`94meWY13&To*g$?C&7$6n~3 zsx!H76+Rnc{-@>XQjOQJ74(U^Z8hvKwPf;G?fcaDZ%S{nY&&Z-V&6)yB(r3}U)|8p zV7x!7rRa=%y@B;*UEO!2zglNKyi0>WEj>SQaD1_IlJ8OX;sMNTyUy8W;*Z7rP|4r0 z$M1UeQO?HACVk=U92(<}68_P0PVU1Y8|kxfc-)M!m(oc;g^jd4yyH2p3=fv?C;i9o z%R0vQnBi-%u4DRy&mY7W!QPU)D>5rx2WQJ2XK+(LQ+F-z(b^-oDU!>F#D|7Gl^v+E z?Ka3{_hCQP;pG$PnS)L5`443u8(*NDj~PD1-Q?sZ%{w&y)FEHUK9g;%e1IUE#n0$H z6FB9s)DPqL@|+gx)EBCw+yvj{miaj8JePi`FU)@J&f>P-QtMIF^QK(5X65o8n2%hgsieO35YCv#;FSHz)t!km$eGmHH( z*o^ECjBdmCzyho0i98YG5!Y>>;sajid0w?QM&FNkx#+)177HJ~=GArAua&=?mmtOi zF9(m1zo*Y%>0ZnJo!7H>om$7;JuR{~e;Z^Qm%(Py*mX{Quf1=sdAE-575y+_{1pq+ zH%450KFRC*W{-a1&g?$fU&R84;8CkQC;oanv)j!x&~N(}%G=$Et4X+R7@6^y-*B#rKlGk4{T@YkE?PUfR<TA1YSv@v0XrRR`VVbp(Zi{R9?uu&$oo99yvkR`_PuQVuxcl5Fj38R#`JU)M6sdJ2ze>ay*7d&Yx{KEIRKHdc}(W(8B^5?j`yw`F`SV ziGEJl>nS_|n&qT*J+O1>GO|KH05%ER74$mwwc;CCt*z+AHZMwEPqBdMa$isBwV}S) zj=s-+(hS>F^jYN{9gNk>=d!+%jViKG`V|J|iP#xgo&DVG_YFRIymnZp{}TJx(UCTv zynXJz9qrly_D!=yi;Th#zjjf-dpM#y@46#opdxs0n??Y_el z^I7b=jjbn_WV3cMcSqM}iT+E$Y4mb2GcjBXOW*Oy6!&OmrPofefv4iCA!ms%Lp+#z zyRrAkBQsNjuB~$Xh`!(35+7xJTe2rv2Rr`s#WFKGJePs3Fix`=Pn5Wbp1`Wx@sSjF z?$49%&z$uoR%YI%^%tbtkG=1=&NW%L!s}X|Gt{^x2XKl_8eH47*ye0~;@8-_B%jax zQS$UTb|2F7IY%%hZpk@Eo$GwPqTf6IbY9Ef-oy9i&urW(`FZlSLa(UgD*C@!Z;DC#$9J7kvCQSuOdlV7s5@r)6vtdHuZRIj`>= zwiz#N^4dO=aS2YXN4Q*aUHM?&a~{ID8&sQuJ0bUsCytR^=lDLI12erZHIBoD^z-lY z|MR|_h4i}_&kVLQtX1{bhzS}@<>3Oc9e7oE@%}+tv8XzR{?G4ozLXqL zvO66PO0Exn(DKiY*Xj6CJg@c9HP35Un(&>$`Ui2qe9E0GcaX5xhs^hW7x<_xhZJ)L zA@1L2jat3#>)|}WiJNHR_b6*Z&Og07d9`!LRW>{=(#!Cfk`Ko=7ai%jEb0=8>nHOS zW;tXnS?h%BPw&;O3B`Os{JGRxa=qY@IcoTYT^GMNr%sZvpyY>#{fK|JZm!QWTQC2N z4z1Vj>(AKBSFas?io9oyPxT?!MIuKd^+D`Ro(*+&AN`7~+go3>?xlR6L48Oc!EVA8 z-93Qeb$^eU%+yqpjjKHdkFw3o1g36fcnN$O;V4vZMeo;j`u{R9zSk_ocLA61EHXj7 zQ}?jixK=OaJ}G=JZ1THh^n&nKdxcV`~=dYZWupKs&sh6(+6GRTr z`vvhOsOh*bY%_VNHKf{xxKmu)U?ZbPpKeuWF> z)!&d)`SRs`4_uGom_ki3|Dup7IaQ*~!@|`3iVvF1GFs8*M!x<`29O50$VO zpB+oS_v$9>!OiO~j)=3X+9dU>xwk8Gx9m-`PW{jK`4rn{2d}wunb$(NT69z8`Gu3s zdYL?zGk!RHSdOs_{~qbz>HC8-p_=Dw_wl>dgMEx~3VNtr&z}EZ_8OVkDt&MscSN5a z8Ok^>zJ?hH7k^kS*0?l#I-ToVoSfsPMz&|*x*V5Qe9k^Djq?)Z zXW$$vr{=k;-u`#iLwdE@?@k<7edXj2mAJ=Zu%GdDlARLH^HTi}=rHH_+C3b7d^_^I zHucJ&Lu;PkbX^MRTk*f=kv<=x5G zXKzyeHrEEs|KdI;H(d-(jFqatHo$q}7!>L1X~y}@`gJp(!);;CGh5CmzQgpoA!jX}XX%hAU-H$ezOy+lLq4Bjdyj37 zGxjWVd97SFYiRneo-guN0fW+;QLTcNpDdp$s&u6yxkUjC|!T$qC zU7xMy$D{tLe`l7X_d_XPv_0wh8t6ry`Ge&7ZD(F+PbQ}7x#qkF+wxQXXX5m(=Qi~Z zh))r{EuP?n*BJfwRhSCudF-`e3onlD7r}~d{&Bvr`1A2!i;oL)a9Vs^_QexEjyY)J zM^GKwv3~67_0RCmItJ4@u%usp&R;doy*2S=McHrnzxu0D7iC+H9Skz(`NcDfjkkJs z+hegT&%@XP%Gng8JY;l*ccYh1F)xn6ad z^~~@LRM$nyhw528|37~la6B?#=Cebt;NZQS23Q;KY!rayZP*}ZvT$+Jm|NS zb3HS6*YJ3RGn_ES&e;eq+hZ`+Uj0>YbX_lryBq8}`jc~>YRKdo4f8H8M`4rcQEFz( zeNe5_&!6%Alh*(n0nVk#fmZ$en7VS4GqH0qg&*JECDyOSwLmS?=Aef@o8#-r99%pP zZ!>M3nSpz6xR}(JeMldN+3f4{TuV#qhW~r5 z^T~hStLFIKg@`>h zoxb0YD?m@AIbh1|bZRL6T-T@cE@P`r4z0h{-eb#WL8FJnS#Ld_l4W`|#6JQC7F>il zKg;zkXO*6l*v;0boWG7w$2}JfkI(#5;>@%zhRyS{V6nE{&+#W2pWei3(Y9w9_^|wf z+?&m@Dn8mT=V$M}ozs)Ddp)@)zW;d}{Q}+=$@2?x7->%BzBrfn9EVSTiGEhEqUAb| zN9pqmoCEl}`CIZQ5-uM*8*@QV&!fWK3x+h<(HQs4&Y$Xe4o*JP+sSO)`H6Z2PF5E$ zPY(||vS0l8aMmspmv`r!$Zo=!X}S^rmwd=R{5Qfre#*Ze@LfIj=6kg^q;mrHaDGhh z$@aICwS)TofjmmS_IPb6V?@gHH8C^K2X9BrCn4W8W|fS)PeEUe&Xjs1C#8;1xWVl# ztXSSE{{3`o6!1)3i_cN-O)_x5_>tLK_d7>BpSD&y=RMzdeHT4Gp{@Ym2J5HyDr*Af zJl)so)Xu{u4tVEzrfw3R1-+)3H`kxP(P#8&^ZxAfz&hkLDqO5v-C94-Rr3n0$>cWs z!~ayj*3sU@XWmDL*{OSe*a5ja-huXs!TQt{~%2!^5<>V6M4#_knuH zpHq3Y7UpH^v60^EdcFXrx@&s_?xVT>FjhC=b1hFsKBf99Q4h?{2|Hdq_1Y2RisyEd z9L<+sJGbdQGRBL#%@y3Ylh^C#>Qkh@g&EX0V4SI?r85nmY3A1Fd|rcJ2S3b=&YR8q zE7b@-s&9*0$H%wK&XEijeU4ncFZr#RJ@TPVPO=RWY+Zzs_|!xvYar+OQ+LcpYqi1(6zXnjGKkv6+6VK~8@!$9* zaRNQ#;JX)?9gg3m{%A1$lC7LGb36H5a=U7NL&9+(3xP|_{93c;@r?Z2{j1-N*UX>u z5i*Gm>GW)<-*ap+DBRua+w#rPon~8<|FXWn^sdMz`bRy3$eVZr*;~$7;3QC+=DtG^`F#JIXPaKzkIX5v9R^ww-;|dzWTQDVtaCY zKX1RMkCeLZ^4y!laF!2KEVI6K>l|Y9=9?jZslRLo-!cEZtGNg0@kYPv`F`YwD~DpX zQ`b7Xm(3JbI`u_%@+xO9)Dye?2|v*>{qR6|?O`Byhy2Q~*rHxi^}po?Y;WT^Hk*_` zzd!tW?~U_$epA2u@rU2VS2ry9DRrSnmo(4t@TBY1Yfh$Lb9>4n$xdeKC{i-#A)li{j_y1*W7B~rTm_I)t_hV%l6OjOS%5me7IM8-}0I5 z-adBgCRXS4n7zcNIy;uTO7`XeUIJk%7G+<+D2R{kU^q_{xKY!0a$MB8N5bLX_kBO< zyZyt-?c2l93mx?OCOyN)IX=Rc9bb>BOP+kj-UMGr{-%1+yS?z^hwZ(^8|6374>$0q z`OJ%pyRG||_isLCUb7kf;EfMBdC1t-IJXe_8()Tw!=F9f5V@E4rN-w8_{WV*v=kY#{t2!s5*SpR647H)0EAH{c=)C#7 zs?={I9Ky12jvL-fzVRvNzuQ^_Ix0|MJIV*=U(Yo zto@7)PsG4FmiJhJ%dqrM*V&t`eNDLS@b2lnwKB|_vG%1_nPr$*%XQY?W%u2XnSnfI z$st}Y9*aXk+$&`+(PC$P6EDjl_JWvhNZ#Ckq}Ec_sq>wcCTC){7JIS?KT@qBmUzzc z9v$8s_ft=kez71r@RGq z8Sy(Y8%bD&iWgK*ht?=yMtyDiIDp&}llnFM*~KyVdjCtv@l4kVk`=>efrZh}sZZAG zVNcrAj{d1K;(IR49=+%CRqH;3V+iZ7nJfWAv{?AaRLk(^6gNj7hnMrRKaikq{qA^kZ-0LC{djeJJhnPYtJm6hEYCw6KV~0Rtq!_zRMy{TNrHDb zyEbR_uN0FQ=HX)VMfvPa&u;iLTMn-JU(&&rE87A$L>}$Z>gw>--@nFBB`>bo59mjF z6@wjNKW5@PgPtsYP{RM4{=^T;^4scqa@*8qCL1e{k5=&@)$C?sceC zgVuTWT4=Uo_FbzJrCR%7{)G4TSz*}*`5qXyFs{AcRecFIgKICvd)Dg^Fvq=q%Ci4{ z595?3hp{&L2mEPZUJlZ{tuM@7yh0XEI(x$ReUI(?!bo!lRBJyvxEk#o&5iaB$3EL= z1D=J11NeQ6j1K&MXJ@>5uy-)pN*IBQ_bbbOo%ziXe_Kz#r>1s%-L==*#%vtgthH0} zZUtLpKJ%LY{-0pxHDh(F&3C8wcr_4@@Q&5bmF_F@b+{mZB<`c%V~hOa(O#+lm(L^H zX`Qyuhvb`j$rt67d%h5B+?<~k-`|R}G>*(Wf6vbTS#IX4SKqYtLT1W!C%2}OGsm=M3vr-v2|5vxnAoP~IHZgnxQf=5u>|=6%57I^ta2k__*TmzEDEo6E@m{@(cW zXo}7(@mYO7i(9{*I|u#z$=((CtkIYA!@eEs=}O6u^<`yW5BcwL`uJI9UyKh-wyebX z(kUbyy<)HD7`{b<#my+yKx2zZ#<|mgTP68;M`w|OPI;GJ;^!0oSUA; zdDrZ-IJxHG>YeYuGuJH~zJ{|%SUB(dHDAK`edC#od`O{wAznuKH44YA)i0>0Ge6UC zw=5`7eRvco=S9Y)U-%<pxR%HJ5p>4pR46k=5B}lMXOKLnv`M``OEWQ0-3K^eYQ3i(TS%$FF~HR z@cItKLSCon+6C@6t^PJp6Xd;0y=eP)`fc%P6%*4Z%Dmdg)uKX9qf>M9p3|xarmmOa zfgCINvmDirSkIo`dCK!7z2tn)@@=zEmu;%}g>p@*>a}JMXFp^1yIZ8;#>xVpdWx%_Ug<)+&0X5F}&4O-Ghz zRm^U47Y5EE7&_s&Tbn|ky7hUKYacF{Ut+m^^X-LMY4Thpx0ZEJ%V!qyc%G|G{!wS9 zw#9qCj=B!@DWAzwxa0LVv(Mf2DI8jF;fds*f`^Bf ziFr=sm22Lh^<8|8PrgcC++H%*4Qwc}uxbd7O4ZTE4}#^X^$z&X zbEkn{qqTcMenMS!xW~0CzxBJ$6C@nE=IMw7CUae3E2lljTBsjW_kQ;x;gd6-Cgoi` z_O9_|$~EwJW{6y?7fCsUrSCj<$`gfWm>M@~M&bxuh*`{;q=}&uXWzL z6CW167Hg|%O*j{6Mo>?#z0WJ_s?h8@*DJ(jd#B>;9eAYTd)nmEN!Ws1Ybg$L!S>0pVP0cxpvRCu_Kd0;Q zG1VV0ev5CiK~1jh7xXs1BDP^-7@sMx53Ru9hth8kZW^7X;z(qJ2-E^wKZE&*p3d=vNIyE+@4z*&G_$ua%p^7UNi z2S;4LpV6Xk;{Lu4{)qC9@t*a4J3YsCJ>9#kXYQ#eav@Bg`{USI&u7vD)z=-)Umf!) z9e*hB6+hA^XDyhewl=y-yav{%MW34YhO5_GdI7&cJ%PtL24>z)o;?Gf7W>9b-Ta-} z+xsuYs`xJV*aXAo!Er!5=KbV3H_n+r?`|t^atYt0=GwP|Zn7i3nDI5{mR$OR?q|K{g zF61$@C>8HVU#8QW5U!i#gZDT8j(eZ1S!|Z)9_7zAy$&;dqj9-L!LsAi`15z-dEZCj z-t*u4wpqD~&HGoJo5cHxojFK7^57e_hYzOXt3E9~==xipZDsnvAi!!jrJ|&P?J5f=gz#8^iiV^ z(^}%k!m;}H=w!09F#deHQh0EftGS%_ZC`wf`8m3Jt@?PJr@$4Ep0CA(un*#3X!_+< zXPDppmU}m{4SkJn*&_FtbAPY*7XNh$Z`SLTvo4P#xu@)xEvk?6ZY5HJ->xNmva^8p~h%E%vEpoQ<)1X zJv%g84c`ylU1w10b74IThH&Wm*dOmJpFT^|-Z9&o*MmK8o{LR5s$a_Ug56Iw(@*Y4 z_Ve@+e`W7o*1xk3LpcL`-}#@M#mRnjVzcrrcHJ_6b!Lq-KC@w0D6kJ)5tIKAd z7<=938v6b-^$_u3=K8#0O;XLL)=^Ter->oryA``zv696Xc%%<6|SpN4-=&U!dh z$BO#jT3+k)JHzki_yd1-D!(*y-r-3h&cmm`52Al>{C${TRL`TF**3iW%-z{*dJKy^ zd9J3d8>wG@SG|GsRV2TJdC|;mvABr2$=GqtK{aj`&7xP|WALvzC+aKYId%WtZ}5U? zwgLTC^yN`g>E>MAxAy0KOzutZZhF?&zI_+;MA{SCgzv>aw3v69cxwtq+V-#Wy!N|J z%-gA@rv0ny+{cISrU-4se ztpVQbk@?Oc4`i5F)gr8hl4Lm6OoA`{^m-S2q5daoFJMqRwV0qA;yq^8zlaCx^;YwH zX;ubv<-N{>{%+&UDi5_jk@KqTf6m! zMqn^>14ayY2Hb!V;BMmqKK=Wwh#VqIB{A6EyU+VS7yWD7h*DKnW(+Gxm>Nuu3)m-C8G268NJvIjm zviD7nr`jsLqVzOSPuypoo#`)(InyU$AN!C-bcFyPCas^eN*5k-w1E$$I#v*c&uoOWt1j<8`iV(UGmWity6T zS|*K)7JD#WKQVHLoBn^Cron!ZB>bKw%vSx+(HEepxz4>!EQ{we~N1t$% z^-Piu0~-HVC$l)s%5%1ljdM1<`v4}#{+*@^lR1IY`O0&n-M#Vn&z;NfOFI+%Hq-Mf z96iNu$syrQf9e(yUqHiSMlpcSkGZrFV(% zEgU@cN!EVI4$nHq#PvH~UGePyLp>?pYwDj|qUUU9eS7cwpL>_%wcX)Pde7vvQ|_aS zxm%3CymAx2FaPd#+B@5qi}WDpYj^aCh~MMy+P!A3eBir>KGCEXeLKv(qD|fr<9Nrp zq&c}lTz9Vhv|npR@EyF@s&fX5zu@2XyW7fb=zIOFI$X0))8Fep%X_2cfi}NW`M6Wg zY0&8z4#mMd>Sz`;h!qyi@g`t~BwI=Vtvqq20Q_I8&*AIDhxl z>vr%CtF6Di?)V?W(i+w67f9){XasT-u4sA`x+1FPnAkH=GLoE>LXz@yYU zHubOQtMS9L=Mp|u^LoX&Mc|rAQ`-Cg=G6DgT&6L#am`9hn(%c`bZ00(LTARW^E?gs zUAu?n^G46OgQpl@$>JAr>HWEm8{O|_wr+jjA?CTsmG%p7Dk(s}c}==0wF{_ah4hOi%& zcg1VAYvJE1++`1aF=iiS&DHS-`n|9V$}5y>ej%qx{5p#r&zZ4+K9%?oi~4uw0L*<; zEe$Q*Pw3{(wXs|L9%d5^Z?|?<7EU)-&j+V#OZU=hJ>K8>^7d-{_3aCEA{3JjMlaE# zCY~Ni*W(eIseFgqQ)yC>)zZ*l$cU}O1ojJENF zU+w0VzGu$u`kJ#QjqLULJ!;>d&o-8cx%pnx65#Lcn(N%xGhx?d-}K%m&mayWT3E~= zu=|1^jb=9b;`*+}mpHam_!%2_kGVJM1YwVX;RV~KHEc1tHs9YY`@Xr4=jcCbE+u$@ z&rTPo0zP_r_LF9g#M5%uk^|*yrCOWg03&fQm=OZU!|j*F&9dVGM-*Q*t*LR3(pDtT;E0_!4c~|B_jP$(N8)6aWbGRPb@)_C(#Cq~0RpZ|BD}82T`1$kO zcT1-myW?YNDll)bi+y7l>_w@74#hps|s(scmWVFWT zscG+{>78e1mgls2cJaL%j}6;~7Wd$cyl4O}-O085xu-qfY(5IMX%&63>&+YKa`nza zs_!el+k9pwe2wk5wVm@L>k-qeWc~TPd_KnC**Aa>i~B{cFn4}ppYOxg%D#cKytH>* zX5(hwdfhv2Gg}*Cv0S<@VnWS8-aFi%oH4;Y6^yed$*N$-}35y5>_{+_F&rchRI!x=|8u6Skg?u7F8_;pHl>n-S!)pWjq^`ypI#- zcGSM%&*;G>y#!{OlRNfu)Z4vI{4gdK+8M|13iwUf|KBrjhkY^y541UwB{l?)pHmG7 zTwVXfWx)Q;LISx{5mT5*nicf+~ z>wfR=-D}o9xxehb-yNR4b^dMp9o^5}zsa8~x%y$}Gg}|GCq9$40Gj)Hy>eIX3oS8n z#_P_t?zZZEQCsY+)$6_Qn`J$Zh)1aF7VW`^&3*n$8V!Z#QSiqf=Fc2gOk^wLh{{n@ zzp%K1VBuHB;dESO_4@*6ftf?!Kf&7!czC?upmXtmIHkwPn*H?;*H*B+JL^fc7-hsq z%DE9XQhJV+le7Q#Y_5s;N|*Qr*OF-SBj-G3UWNDZPti?qEa>gdC}EM2M{WHVHviOm zQ|&s^EL)TQ{781i{JZpWiTQ)CpY)NOEAnIN0rVtOf7I^};jL4rJ6|2`ExbM$fQMc# z?jFqT4EKlIO+Fa0506bV2Uzvz%-i~YFK%l+Yn7`cjBhh)4W;L*e9BJ$Xw-Q4I5_+B zBI&EmRb0<;+oj(!CKqtU-QB&@H=~3vHu;9~@q`bX*|fd~FXy*sIu?^4v|0q-we3pXaq|*OR@`Yq!Gv z8h0%G-7p~ZNe73Wem~-EaI*F5qdi-zoBE7km;U*H4a6FFvR8&rrF9vhwHUFiaQ4|B z1>+Vz68Ck96D()RSn%+8b1ZB*_jknorM(kAH`jcwoCVo|@;sx@gZAFs)^|RGj!=8; zthoq=_xZTSUBc&CqhF{R`)Dkg4y{PjDP zi}uu4TEASdKJvvS*k5OM<#yG30AGeX4Mzt4px4mc z{!iPpU}W%EgriVF|(Eg-a?G{QT0Lf+<<%1)3NUL1=m|MtYr6KYj|=nIzL_^wjsA8&lh)> z7>J%oIG1S_8{AAZGhVC@?B@|rDDk6w#|SQ}=C#c!E?~~`BDh(_zn?g>r|?L)mNZL? z9v@tg1;=wu4~a9f7yNdAj+eMu=^Cl$mpJYT*Lq$*iuTDK^TrQ`bIec7>wC*uqF=DX zoYvtdcmUJxKVUJMk;5KYUA)!%QsTf-Q%4A2k^Ud7hrlMAfWIw81s= z^45AKnT16Ur1cOgUsG=}>ju}F`Q82=*ZF(CMtAKhR{vohZuR{4G2GP#!v|NRA9KVt z=#S5RP-(yOeVPv%p2@h@rgO}^acVTo3T(7Lv$mzjMuy{EpkrZY%J&yIrk^LybJ~Z* zgT)r}XD}${lO6Am|An35@9`ZN$Gc}9sM)4ZCt&cY??y3i^##QF+k?d|`2jS1yS6;w zjQCVyZ>@9g`%rw8&fN5V67{pMggi3!x0hU`quuRweb(c${0`Lc8SEu2r! z3&inx7 zIIrRMZo{IliFvN)LRCMxua_wM9KCO5z@p>O<{aENea|DSM{m^qO3b)}cmgBM1sNZ8_J^;{XJ!{u|4MclADwx{ z@g3%M!*`Z-x=vH{&|M5583ns@`?ZS~yqT_pBU+m?roRa3!t%K6agbVYt~{x=+^H_f>sA{&RdZ zxvigtK0S6~Byex$Jk8I2`XF77uwLm}<@?gQm-iaKEA5pgmgkw{*>>AbZ*q!7bWR_y z&7!$6<~K)|6X%h4z;|gTE&FC+?kL8N{lk0d zd7Ag?vqr;A9B_Zf!km&1qwfWN&er&3jd@AT?n$wdbjPh%MgA6BM;yT%=)h5yAMlzT zzIT6;)53E*pPyV*anl~(P5($bqbXMPSj6mE-7oSLzGwQ^)7QZBnIW1;*o!^v=-s*5 zpY-n6{oKx)>)_Xk`%1Pl`I)r0EQd?}*=kzC-NN4HUWa~$`QGAB`E#>(`FpZMm*hnq z{L}V<-wSINYn$+;7QS%?Zm2=lHJR8$<##9clHqD-yZ3)*lV4tOcJC+mC)ZwG$0iK_ zj=saM+tzQ}{P^sAqs2ljZs7T}@6y^j-WhG$pKCp~#?~jtNI&Bp1a4wk`$;~hzl)M5 zPFbHNw3|og?<0=SHKT8he@;IAczu3{o+RSp-Bb8Y!53vM$z&Jz?@q}O=HQIbS9B~bPS@7EcrRZAM?Li#B|kIe ze&-XHJu1``hh^Oi`wA`S^K2Pb<3!fq8&wKs=f6rX` zin%rzLX(4gKJeZCZOV5LFG|}=ai-@F_-f9iw5>ONeJ$Q=VouXa#1C0NPoBxlyGlN0 zX%Bz<@jY{+Id5<)59M_qE8y5DGe z6kc3B^JyKIKa3i#lFlJE#`QSar~Lg#^W-gYY(BnUenky$IH_ZoX5CxeV?_Vcfo$2y zzv^CaU+l3-;Uj%Hyry?{Zz7ikmsz;@!28enDt`L6KYRTqvvo5U?P`628sHyCS4YZe z&d@2$I6?ZJ#j7LmkkjQppT_+KzF5D{@5ILVv;5u4Q}UnT)68)X@Ej~$WwS>+U{bb1pZeNeCj@Yjw*8cbAbBaTxPk7c{hn!>etV3S!OEe3o#1;Dy zJ2^ML;|LD*>FaaH6Y;r;d-{oe+xv6bKls8kVyvts+{G7suf+JkDG}Xg6W=+_t|S z@-F26UMU_x!vPIc>VR;$?dRZ9pNT1m#j%rDI}t}rF(5POiSK0(z}w63V$awITVKhs z(G(&c5l?4j;r!iIv=6>!#9YR+6!rzDI=`dOZ}@Y1ALK^W_k?u;D})Ep``k75u6x|) z_^AGo{OT8KbHp>IfsnuV3w;6iC-X!2;>5H$FTYrzZn||(tTUeW4tWmnobzu}-xF~l z+yLoRO}yvsdrH?5e^7m!nTsbIEL+cYq`y`Fo&79spYl5K7V_tc?ViLRcyG+F%y{G5 z3-B7Su=i^_gOk@caPm)IoZc-EQ_h{g)fvJrTOHH;?uDsbznvd_Jl`~Q{Do1zXUU@#RbLKSz zYa>tC)hy3!-xt6YJ~3Moj*?~|S8TZlW72w+_b@G&n#f;;VQh1TG!u{KSvZ{k{^_u4 zH3-|~-`$3XSk~=Ks>c~_>Nse|GtglXZkS`@m`~Z>%D9H%wAiADp65ZV)%I)$pTYMP zyns3?oc;Q4;b{G_ceyj>TwEonhrgCAP;#mzexVFdpu+#ZYq` zQvCen`Wc?g`_7uh`5mRc3+7;yy;=OZboWf70RImzp6&RvV!Da5FeRVPzJ2oZWv}KM z{KWbvKYRZHtxW1h)8oLktp$3D@YRkJy_-LLa6hGMI!>~;c=h(m=KyBE1ZFNjlfQfN zb3NJ;6MHc3$Ejyiv0(9|U&+mj9VWkD0>4EYVCxfcq%c}E0<0F7bl>UKaXpyzlR=8J zRP!x)Tiu`k#kz6r+sWr;*=wbFtshxCj@PlABGx;Xormf)HJbtSERooPCc8_UNP15q~ zi}$%k9y!-*dG7a&*=l|*)*ZepF&(~eo7nr?Nu9OU)|Wj0K9>eVq%w55-*mpg(bNhUIrc3S<@L%fBJ#{VE zF8xD2V~WL{=h|R^VPCoLtaa%b*mCAE?Do|bt?#ab?W@f; zHj(RW{Y@X9Yv+pB%e#0#KmO+P(d0vX)+!o4*UG=J3-I0SjJG-h@!dN%P;8NLu@36@ zOq`W^X3N~u9AD!Xz$w7FuBjh^D^5GR^?oy^-2UFg8D197C=SokS+0?&Z!_h5V1K$8OQ4wd@AR&E#^>Tfpo7KEAeLrC+V>V=ry#@v95XP z_|klzTH9%#NpTFmr`BET{$IHXb9%77$!>#XuKUbG&f?;ir01&d^ZSIaBj1o`?dd(G z=eb&M@T_dpmdeZ^+1UJ^w4Xu^2mK3hB8!XsKEnE|w@r4*zW;e=A@2F+&yHQpeZGcE z_F1*I^|?XC9E5xQ(`xP`oqK9@7Q=1bz@e7@CVDQ?nJ_I;ojdlR^9I5mZ086*r0vtz zL%p}KU#m3DUt!jp*`#gjt5ff`Fka=y@g6$57)?F2S05qtNXP5+>mt}%?CSY*A6C;# zP~&LFH|u;Un_)qkVCX1 z#1j$^T{ZIK7t$xDrpua9o4pWU5PcQX1wDnAWiA<3*|ddzf=MX2?|g(cmzz zxR&axgCpijrt?3oMqKQQ&ql~GqWNQZ%p-ag3*K|q)nzKWDH9qez85*)aHMO@PY>3) zY9pxzk@2cn6Z)(FJ;RM%8Gb%qkq!fTG6{2R{YtIZI9H|rcRY?7-}8U<@V!gen$KOa zvoCv5p1F&0y|%gu`a*h!eCF&qSIKYaeNg=iTZV>%;se#$ANQW?ySxFH9y5Dv5p6c- z-sI96sF$!`-6s_*%PKG%Q+G&;dGH?$dYYuxM7@#=T!HZ-`0>!pmpbl>|fT*ZR-&OFcT zC!N9l5jmds?f85Uw+%n=ZW^0tJ~HVK1%GMvPk0mL&M_Vq*Cb)n)MG!GHf;U7;sMuQ z8+z}N_vbi&s?kfT@4#~yogIHh{I<^Q;BXJE7t2?AwS&w)PCJkF_noiq&scMb+1f$A z?*1%Zf0YfTp8|Wm^#fch`+bXf;L6PMcMsY@#mI>tg)hoy#eB0}H}!RxzDYb=(`}vI z+wbzJ{eI2*H%h!My-i=!1^bR%!<>knQ;eXzRCer`db;fKKK(>in;8x!F)(Ss6USLD zOTG6UzRNH$d_BI3cp1CAd@f)2`JHOv2h0U8xr+5pr=Et=??->UYu#6yS22Rzv;KA$ z?W(m9kCDIm-pu+37O_Xzvs=cH=+Oz0$&d)d6& zskY#0u|(VdW$Tgnf%SZO%|v+w9MczFO_ge|dhJ(N=Q-W~=E+XB%DfxGx-XO-L7jyLOg7{VT(d--CjCFD<>8{n8iTgemBlc|^ zEmvNY^L3d&7_L)l_Ibu$#;$gy34j*(y!zcdAE$;V-q9yGCN+L2oXs-7v$5asfXE5! z-px6-;)&C%G2Caa?>P^1;}+o*alY!@N}Kb69iBh7-YRSg_hg^nhgV83PF`2dCRG1I zwNqf1cjZ38UrYRV_O!m!q+{e9&8#=%vm_G6Rrn#UDM$=iXLQFs9eXUZ9w>h5m^cfa zk8!?s>hZQX(f37~7Z1m$zUvt=d~<#$;`lA_$Svu#Mn9$=U+#gKD#<>@`=0L8>T_;% z@Lsd)#b*eE`u-I=egA$r>{oFi<1;n6dcelQb;Q%+JuAl|U*41MN$Oj!|3+U?_M_zt zM*GcrUn@^je`@JZR2)>khuTKbliE7o#D_L}c<%G}1D~5R@jZ_{>+Z7>*IwEUKPUG? zm+w`w)r#$Ae=zKO+$5IU_YH=MWPY8%VF*@zv?zeWy3I^n;e!xji%A{2o-_(f6l&**VU! z@WDiHt?B_Ojtd;@ef-`B)1j{ZOZZQ|$9?+Q?H-3VOYS(;dy;>$S#Z|F!W?1vzNW)) zt{%WVt7oItxQ_8F_w2mp{9R9vSr?=UJx|OKeT_J(W>bXKD~8GO+7IO0KZ1owo5K1m z@_EN6+k12TO!lDqV&%QWDLyM@l{_}a71A`Q`mq1r=+TR9Vw?R#eA%{omy)*F9%tO= zgB`}+=*BnHygpt_^=NW6o3~qWmFadA|NL2Vg4mm~zo}kWxbWPEp1bDrjsHv<7UlcW zzO_E@vWIWZdiB?4+QP^7tg-Im#cS>nz1fHJXW(<*)6H6*?Io=3?RC}t7XO<4mThT? z$KNbJEjQ9T&1+}-BR{WcoIZ%PWv+9hKVkWu`gpkaSv_=9ZQ_vM6@UCL&z@>^hCIh+ zhJr9^ab%|F{KakvuSAPF_rHnz_-O)r$Qr|G4fbEagADVpwdSU`RbvPBE1}ggfdQ}= zN5_-j$t-d1w|5_TesB36KPTSU`dd8(?B@y21m{_^)~)B~NIF+9BF3LEh!XoLwn%ns zFX5_Tu0!Uyq&-k^M()S?A|v^J>aRV$;$BlFCK0aOz9X+axc%>4M`@C2ym(&TH-~&Ha+S>sxHPuV=LX@z2ln1=H&#j%gUaP8>cW*F^8ddeak^_J3_{q}+e7 zG1X@KS(N=MpVOYr+LFS$OZ~zyh!@1+m*mfP=e?gHK1{w34m)uvK5Xug&yyc5=-uY{ zuZufur<_vxxN01x6%hTL)w3+#go{T16Fmw#U*K}m*(G-{jz_8Y%!=jmJt#;22gIQ9 zS>7D-Q&Xb0!21F}Prg?8P4+h@$`jy;obIou-ZJF_6|<>+xjp-~C!+ls z-nQC^S%0L|dD`FStot*Kme6@Pi`rq$y@&5_>=wVDT~F#}oB2e14uQ;_*d|(L=6lK1%VK zJ|lltYMIvC7kh}rXTb-oe!q}@5PL_sjMsVAtQS=^PHFG!|EhoM|5l$ookyeK&VMF7 z7I3#AGhV-^oKd(UePC#SIQQgtu+Q<^t50xdznyJelJz>FRfqG^7YzBOP==qw`vc>FF7aoe`Vatyhf&n zdAFp0|72RoVJ1Ph&vQfEU-V-%e@HxAx>L$oBSV>b(d@hf|66VV5yruO= z-QZqz{^JA99QB!}U=-Fn2#=k;;M#)3I+x^(=v>l!XY*g8CdAY7#(?*WuSWly`y%2s ze7Da%@;p#>KF;iIv?qe*q~>@h%}4Ij;xDhG__NoXtKkV1eowOwn~oXBe}m^F?jZg` zJl@O?)1R#-LG1=Tw|XwSJfh6UBtNMbpz&)8S4Dlb@Gh9mE{z$#_x^WK`LxW?mf>$N2iMQW3SLZJ){Q~pL;c@S!3Z`f*YXs%6+=_8}mjsC-A$X+3Y!J zxK^n#Ov4ddUAa{IK5H>e&Wz^{rB>eD?>;lv;6J|X#}&8e-7~DmVhQG*>F*PE_2h;0 zbf|YOpQq1RkM_iU6#KS(dZ~KlI<~}pi1m@Ow_p8DPGh~pzf+&V&P?bhb+3_h&#$qw z;F-)a!S7f<^1IJxhkaUTtcUk!zJez({F^y$|MGiyW$#nICCBJCGf(&~b%lK1Ht3&M zZ}Y}uub<|>=vnhMLf&RG0n)zn0YT*G}y9do#>aO?_@Dr;=uWfy0&J{WhntQr8ZBV+^{L);&%8#{qL3y8=ghQ(ke1R~VH34c^R1vyPTl@JHwG(Ohe0Ry6+Ku0ajTYZ}tT zFS7{w+@8(*+o{))W@gL{XJV;n=8;1v-WSG>?j!G&vvGi)>I>=iFjw-wUNge4G;_Se zd?|FKrS0VytN+<`r_Rxz_*`&}gem0fG`u_EoU?R`51Cgg?Zd)tT-9u@xK~;{zv`qk zbKqPnRoshx%`Vivo)bfiUXpKd*5qH%-6Otmtw%J-f^RNZLx}CIw+^iZp1eO>oPU zYn|?YALz4H+p?~ybKcRQTt54IBl#@lp!qvmzpJ>>Fqm9NV?K)N63n+`EvnCpbqdAu zsh=ofDg`^S{Es+_z9j2cP#>f6s>(rTjrDz&!?wEey7nXbaq4%Gvt`qsyk11FoI_eqLi3TjTLP^B)yESq+}`ZGK*T2*EIdVwH?lz3pH?J4)r!n@4If!mS3~m z=e1Gl<9a{A23X&g&0aOW8`wX&hVk#wSQ=kz9s}oW0spkijAP=KSM(LiR>%H`)Qgqx zS^KQc(MotIvuI35|tW#pHO>g_Dt$+2)S2x zF9x3^o*H;Rdt&NL$j8;&d-iFkcc@Q)3gU>wI`o z=NmoM#$|gB#$|ScvjulaXG}4m`f+F1o$I~a&@c21?N+{rJx-4A^-bj;iN|?(ZI#?Imj<&ht%Eo_auUBx56bIy*h+(4D#yVb7VyS$u?nm?Q1bfi& zpBejDLYHds^W?QN{w%C$B#e1NzqDWsKD*rea;wgw)d%ajSKPaW%|O4l#lB};*KJKx zD@t_)-c8z5J}Uhv}i>FYzQWwiRC`I$}I)1EosGqz{2 z`R-`)-|p8Z*CstDGi;<0+Wb!XH{vM<|Ir6%>&^@V!}`}o%yZuUzSZ9EoPBrS_jpW@ zG%kIuM&^Tdy1Jxs?@rqXxt8$Y`%q1)?knR5n(lY!yi9%n8ONTw=Vt0zR-9im`BJ^9 z#_-<0G!C8Cm97mw6+YBqOKtg0ywy66BrkMn|M^(W%L(P z6M;J}Zsrs$F!+sX)2z<$K-^gQZv{6?b&!k)svfgCN3X#6>QQ~lb!Jxbd1Z!{)%Q7n zwhlA=Q@y8&7}W2B+yuU7!TCxZE7bTSzZE+`o&9=e8lK3WDfifkM-A)9xv}a9(nhoQ z)tieaoFnJ;lh{d)Z-+teH~E?0yncDcJaYK?XoD}G zs1Fex3fFqg^?>5*>N~_{EPaM!0S|h8Y%`=+$~h3e{_g{7PH?8q_EEeA%OyA9Y*0@I z>)`sI1GdcbEW=Y=hU3NWteXu;+?N@BU)zQ~GT%(^a5eE#bN?26Y1Vas@BWf_R>~Di z&x&}{Svy2JO*xOOeze*%i|ZcH4w%Vlr5+?4dB*v%7=+sIm$ugDJWSac;m^()uo-JS zbJk&4FwP&o=gE5UU_q6LQWhvU{*% z=JGJ>3$9|e(}p9am^%I$9w&M9=$x1dJ%~}}^_|vwz-(Otbni{$-*IKnowT0hPv~^; z_th~uT*6+^=X|eT9mgXAKK{%1LgCNn*noXd`W*h)n_Jo+F238|I~pDg#=nnNMr+Il z%e`)M)aNz3@Phi!m!r)2+_m%YN&Rj<<0tr=4#)m+nEbT0bKLux`!CHO%KL5_hF!2u z*|BQd#jDXgVfCG@^sUhw@oDnsqunm?&YNAEw?O^#Y(gJsqheu+`{wvXen)5!srT+q zvnWjue|Z626Es)SJ{IQH)f~z{lg*`0V0^1|md@69W$VF`Uptp8|N9>S>n+&#MH>cxD{VRIEFaH*i7k2b2j3Pz8^gU(k?>tL)bBUl0SP-uJ2Rk zp{b6QaOrM8NY1IH;{cAU8hxsH!Yg4$(6w+~#o@JoF`Z$0)8QPbCr{7%0*-X2_8M^p z+34QARzI&V)eAFY}PpBQiAIN<#kDsYY4q4y%wrduY{)M!L z#9A58Yx8ugw+Oq-^LfytPCj*V&O^=9Cw0vuuZgpREi)`n@l(YV{k@m{Pt5Q29^+S- zR{eU`1HL#d@nw!*6hldqGt~z+-|yd|AyJ=8yhr?Dwnxck)|y|59hnzWV+7S&>_6hN z^L)>XO`oIJZhX&*Q(C@rLIbajW1F0Y`3?E^hGmW+J>PDVt1skUnzbykYiG@W#AkMO zi|Dz>UsC`23Lguf8h-Be=l_Zy4cw{Yd{z&3d$7l(?PI-K)U%G~Uxxeb=*TpfURqmv z{+rpilW}ON&%pm67M&YE(^sP1Q{t}KXR_?`^7)^C9@E}?+<82)+M{Fp?nASdQ}Utl z>=avRKdZd8g!lQLH$NFPNI1JGHvCp%(;2zkWPekrBbRs=o5dWhZDQn4uF?BS^E#xB zmTaVE=6pMQ!+ZrkXBd!az)ZvelicXMC!L$^wPV?!?DNUbiXLM*``Dhc-jDbHZQj5f zOZ=qw2{|{Oeh2AhFqekfuKJRzjj|ekI1fJ>1EhCn_{1;BiNdoz|BQ`oZE~E}?jh$e z=6xJ$rM@3x?p^#{s*6q3P%Uk`MRCv3Vdk3H`o&0F%mV_Of?m@2>5?MukBXw?6ZG(?8C_FVRR z-QIY^#5|rkHeE)Wqiww?ttP5*Y|tFG8ky;GDL#L*^8Nh7_1LgG@gv_}D<;Ub-A->t z6X(c2v^wUI(`oUZeHVCE)+pxs?HN@JRN|hQb{<=Mm$W97SE|n|>1ViBPa9X|Yl^eu z{9)^rG0YmD#yR!64t$AX2c8gT`5F?#!=-|6XgV?(&sFb^Y4?O2{(r}r5zazg#rleg zSyEsAlk$`N?7e3q=JEDDdoR{MN*mEIq~-JW-z@&N+U}3pHQ9mr;kSe<3gf>x^8SeY ztik5|^L%Ep&x&`g&)T$I9{YZr$A7Q|Uwi9sUjx~dEja(94eH$B2P@JPA}i6{B{4>~q{6yZ%j`gn44Y zw$`{baxTrz)%tvjU5#&;{@ms1O!yDK&pY08%5&uxW@=db_rcQ&+#J`cN*KY8_s6Oi zzuL0UPnBXtpEd5^U;6f+U{_NNlrUd-we+)j-?h!fb8d-rqFvvf*w}o#&ng(x^SGe? z&`)pSH8RT)J3rTOkMkaWRA096s~nR#zLeJA`h(DJ1FQaF?zFF4su@gu-gw^+Jo|HE znb~?dEpM{e@SOXYZ_n!_{G`R0(wfzJ?yMT_Ha#@NARphO!>L{s@bGzJwtMwuVKY=W z!e-M$Kwek%JIDB8>l@BBznnwS8&~tExQ3>A>vj8&;2@gitJ=aK^?WEsq`y|ZVBnOy z@J^}c=sACYTUBeWK3m4-LOa&Ub9pbA&Q0QG+8!gu>FP}8{sFUp_wv=?i}gL5*5zH)G79#(U)!v{ALFBK4Yt!fZ8eF`KYFpXYN;pRnbH8@><3NyvH@;W-0#K+OHfey4|L*A0I|t7UY1thtx? zwX7usk7UfA&%LDJ?sH$$`3wH*^u9i)@sl`*d%A|S6{V3m{;;|=KH68W&C=HP=={%j zd!wy)gYo;F(c-(^(Wl`LoS#SMk>s(`-?EsT8r#6Q$E#=`?l0OrzZrGi<~zFD2gctC z*NMI9@tXa-^z!|$Q*AwI9k=_`d_ViN&X~-<2Y1$T7kX=|R;cUy^`8m2-C#DmX`ZS3 z<=%JFo@ zbndt0V%$ePuUy}_=cOh%%ZI!}s|B8M-pgVCn!c-Q(*tk;(_za!dGf#1rQqSX_Qdpk zs#yo8)EiD34RvDaOXkbioMN4cTyr#^Rr>REzDDT1`n*KyHKy^Z*f_k?#$MA4rkqUw zsV5shXc{!+FI(r#9!k3C=U=UktXP|#EA(+MR0}fBFy|d@+`E(Ov3SC!n{mj$8Kz@> zAxow90&fD_4bPRnS?y8$q5Lnpn5WeGc0ThCIM?#QqnCXDob`vJ1= z9(lv>o@(v6r{=q)D`YnCWX=2*{a~6YPVO^5yyD$R$5QV`_mVi2r_$->TAFve{>k)) z%K4@i3BGWu_o4U5OoPLUum7bQFxN5eH}729HKTEAxr z{Fr!QAnj}6C!a%|*zGa(5@}iDx246j)VbETvyI{D?)GTu&+W_c?>ocA)pskyHRdm$ zjpo*u_J)hgyL$`FT)rLdk0yS$v^O6AxpVn_X{XEObXyHBAfDLz*Eg?QJ&O%yZV`XR zXF}sI-N$JCD9w2Ol(3yT7h0T&{JFW&ZuoxVC)ItRXGhzqv(7yK!QSO?`(QBK&CdhJ z?rI%OysoM0R_Swd>%;BQ`da6HtlxkC{`9ogieLT4@1z`Jbo~2ppgP=yPL9QP^<7!a zS=PTk_ZeIhzt7J1=X=e2@S%Hn%KFLohV}dU_HJqTfxHHr&6yMqBkrAM9OYRW@J239 z`MGS6**YUkZnezaL)xHmg=?Yuv;GA#Tu|y^(xaJ~#L-Y%u%H z?U-@E4vxeHb)!s59mA_{6^sr#e4Kvv*0#iEw-Aq@U`yC)fA&yJZCi( zaQbbI6PXnv&TO@5_EOZ~3*8|D7L3(rXyLbcob_dBPYBeaG5 zzTzIM?|8@GvFcZfb>P~8bK>)z2fMqv_!*ye$L!p+C$>)cu5E1R>z%#xKi;h{s~*it z-bb+sTf_KFk6VBE;n(li#5JG#9Q6J>nf4^?l!rcQAVR9gJtbgOTdv`CJo&D#qOA z*&Hh%HHhF(#x3_fa;|s7dCk4>b)V~V?E9?0xh4L2s+Xa+ z6VKs!;P%QMJp7!(Y!lw8{&Sv}x`yUY8W#yIDEf>ho;lzDi2E-*(l&Rldz`rvjcp${ z?=j}CeLl!?F~!kl-`yux+kG47yww__Y1O8FiBYU6*0m>woQU08e_iuvTkEoaX5#1U z_tHB~zD1sMHJm$M+wtB%^iNDf+RR1cdBV+0 z^LSH?PkyGkEv751d8NsQ*E84jUmDgPFf+&7J9uu?DlqMxoM$`-TlHt}Y7=k{ZAL`q zNUlwCOtItSjM6V#|BF1B*vW8dVUUi+wzKV}|C;Z!_Se>!$8sy>I+gTrAPO%v0xvAtPq+2~p3oFKdhVfWPJw*Ky7f@$v^ucNby z-x?h4o}NY=y!m|e6BXyHXXtUZkF(R6?PPyfUr2+?93QUace%h`8Q&ic2RHB6b_OS} zZ@#{rAALODU%ACri64~k4LCc?3t(F(UpeEqhr5Hjt&eZMZr#27_V#WI3~!TM+|U2p zEA)8|HUppQMw(ML7hH86^%&yQ)u-~2nPu3;P5t@d*_vH#rkejerth%YnsP3t^J(LG z?DVo1EU1fz`(E~0utiU*&V3DeXw?D_IA_tSduTT11STH!z}VYm1GY>u#+wV0b|XZ(<+i=hU3p@?0@a z=+&>wyo9}?p*>|51bA@jIe*5CgPFYDN6zl(&c2SCqu2uPKi2-T9MLq0Du(m4_teZm zOWZr3=~8hDY!Y>j;WuXYfd}yn(l0ZuHDzX~U2DQ@6LzwmgSr>GGwg^Hj4#HzGowdXPVK`w zx$9!u%5A*QNBLHtjvm*`{d^P8=igCu_0Has4}(j>HU4(CxjZ?qifg6!%Y7yN_33(B zUfb48@{LDo&6ewrO3#k&S@;37WnGh0ebBrEeE4~jQ}VkJi|ejSsav|AFwBhpI%Z60 z&INivd{5TENNYfkHSe>7YrP=efp7fkX5%j1}{ zk9!v9*E%+o&b;FYL63JpoMZZF-FwF8xrVsarPeOX*)XgZeoef`Hb$&C&#ZcHoF`iH zsEp@O>jeYCju3~rzC(%0r`LFYk``G19P(n*Qg0hIaM$|m>V8TqEAxU_Tgy3fE`<$^ z_UPgH*_MOC=Py|5gZ@?bsqZYD6mltB$9A7p%!0K?E1;g|KbBwJ**uq=C&MW%b0BK( zA+=r8=6XlH`6FC<`wq0|zVRQL(}4#w%NL_#k!!-j(y;%+n8=02bH(pieHR^n^E*k? z2~BLP34@tXBc?W=YO&6LQVwJNr`W(j^~cQk(lu6(KAl`E_fPiE@{VE9@}rl+uXFVt zUX8dh`FgCQ_xMUna^K#``Dv`{`tOlrfQh3E?PrvEU&IPIe^xGUJwX0E=mesJ)qaQN z^(XW2z?vSpr^ORxkES(E*iP}Y#G>F9i+94&r}^%B4PPteKOU3Vd-@{0L4HQ>EUzb@ znZCcN59zZFXH7Wo_4+v&YW%%kKaC$uoCUc1`W^7hWC!7Iv^as~9=f;7tn=x%Q{P{G zZ`UvO`#fQ&^?S-WVgJYLPx?LPcwG7#+FZqt$1j!^(%&1KTleTw=8#waUG8nJ&LZ#l zA78I9t6YA+uMbzg;9b&E0Z*a6L#-wG?BIu}--Ng(>PPnHPyYRn!v?6`iH8);=MG=;efMzH#&2G~`L=bxbh@#6J~&-ly8r#+x37oSBVx#fkMDh6 z$K3I*<0&W0i}SxPFQUo4HODze_sBKN|Ck?N{_#%NdDUVm#-W+x%u0)`N8kKuxJbkC zvvrx)j|NtGJiqmc*uiS!rDndSnE_p1ZN_+wmuoe+WGlg$(c3c4S@gNB&UTaE1Wl&H z)MpfJYr#v2ap2NvCXe+&dCkN2*dJ)C!i5+zBL$4mW*d1dncv?;4+pXL`~5jMU+_6! z;E!FSgxGfxJTPfwt)8O$NItgA{BED0@`*Em7W~fH!R|SFqC4MC?uDn#T^?Vc346zE z^Mjo|u8VIT4K^ay{)^rj`-6VJ%jg68bJw-gbDcByLrGT?F53|tIQRx|&$ryCg1zXx zr0dF0z}bU)r`afFhSV!GLfiM5`G0?A+>ts$7x&;A>j(TofPpp3yhq#>Z za>Yd`ad(QLnPtVEDY#MArIQxu&O%)0_+1arU2NWIdA?+~BX3xkD|r9TCv;%rnT)oj zd8h1wD||az@o;gxmKoLrKUV$mwCh!zE%1iiUR55^(bae934cMSb}a7iVVZGi`fi$i z@sRKA*sbQgL_btH%uPR4@kQ>ZQY<3dWEyf2n=R{0{u9?i`CsNec5IUSw>&3>o_Ni9 ztm_IE!>qIhZ{X*S^}2s5=VYVYKipm7F>2;_=^pE>ky4YTXaB%>G)X5fYxixMezj}o z)ql%-e}mYq@(-D%@VGcNX=5vvY`JDD4f&!vWmt9xf;(`w1K=dit}rC;Ne@04!TcjdunyDN)(2ZJqf&Gv+q5L?`mQ%f6D zet^$P4`=DkySbe|kvLm=chz#oJAO0l>!;xSnn zeTMM*nAz9$@4Yn$e=jTY*}eVFj-|pi7GHq<`z`1WxIW72_jBIYYvvpfd;4dmazd)j zxM?vM)u;Td5To9nEGtLNwGMKbyR*qT){Y0?mRV%varXY_wzjwT&^psu1G_$EP9?Z3 zF_rqbjE{8L`V*@yH$OL@_}YC;_m}o( z-|v9I*4QC%?e@t_+B{b46>4>SA3lBBOlk6MVKl7i>sRgbbgofskMCLP$n;QvcZw&9 zKjeAgH3`Gcx@l{hjqUoGJznIRb4OQ4?5W!0b$meXB+a$N`M?Ga__Lh@n>&_zVjRb% zU!=qgub##Ss`yO8SG*SF*S)lOy4+vP3FM1%yp^@V(0BuT*X*{%^!sH#N2xKXmu<$q zcVe%;dbYTk;$<|?JjJ*1K98=z^4`(cepP2@q}ggc{REDyoay{OG(#_~SH*^EJfm|) z3>36yb zk{^;UQqM5H$sTpMBY0IunvK(Im$**m!)CmR7<}Qj z4Q#GpOvMNL`la_=>KXf?7aOQ?PhqsuWmA4;h2HX=8H3?RNt)eto&!z*OAZd^k%j_ zpI@1uQuph{5rUHz0u$?;0=mXvtD6-M;4zZjrpIcd+IzJKL_Lq zFP6rKFJ_#B!fW}S_3qhom1E$wBF%4$xI%9%ndiJEo^1QRo%b#6%#mXG^qH*9m*+g0 zM%ky6xvW1{^hNsibIOzad5gVLEEIZll1;Du$VE#}8sKP~NBdg#gym^@CLS6jC*OPq z)vKG$-B(|8&jxh?>73oto3_e->!TsuO4Cjs==1m^aVg+_mb$=99(1#>O0J{Xnl>Z3 zU~j3*JIS3B~h+H3|a2K%>z?>v^T=%p555HTS@O@Io9vs80?RG zbm%OHF18h2;6LA9oSZQ?**-s+NBTUzjq?84rx*FNL-j_fC-pqVoM;tq5!WjJI*-qi z?ft}AWRKU+rMM%-s!iUgvrui=R6iZA1t$VtN44Fv?JDO-_R#RDG&9n$*u#RUtv7j7 zy_d(>)5P1QJ`&EF#iZfy!e4#1RpUq7noH*LH@pCkN&R;@ul1S_`s0FEZu^`}-%nN- z>+{WNW`@;sn4w3F_Hf>OwR9pE3^VNcUEW>6EW*8|XFY4)bF^s_e%WVQZQ?8FA3rZz zjsf@lf}Uu8rptr5-&6-8=Vi{v!5jSyy$|W;F8*2fg~xfWMY8bc0h%C&i(PO1d0^Z? z_R-on^VagU;ejmvNq>OF=_hEHPQRY#gxt%Sdz~7!I8Kz}L2<{Q++Qt&9DI&*H~q&J*+H$y2t3 zY5mRq`NYftd?7Vs;~`P+*k=zZudKN-Iu#>uC~CmhJ2U*EIE?fw$KPAA9Pol%;ScWh z&%9o)-L}Q|P+NJu`DJtY<+tW%78i`J!E_fgPqg`Y?Z+xuklX0X$V(y)A`e$j;ygSE zYAjQ(QR_7Dq19ja$Gc&k^}%y5*sKcGuJEhON?(ExG5Yepea_^w2WKC0&k^=;fBtli z`?>_@8nW)1r{elC;-m`0Q*NYsoU~0eKZhD}uB-C%puvKs#A?HfYWafGb9vJM%WI=& zKvxkyK+^*$+yVZa=EHpt{E#N+qc73-%*OEZ_2I7O7M)(K!~I;J-(+qfGe(&w#Q*Q2 zt=PCwPdhon#nSQq-RZf1{>`=ePx<>t|NHj!!Kh-nZEX|H6uaNgH}UuNeTR2;50~q6 zgU{@tXlKy_ra$-f;D5jl=w({5`#Zd_&wsSf^9;J*gPJGVdA680#^mXobTLBW7y9wx z{Vw&IBGjXPvAuYW2ig;{)WHo|W*HWLl^>@0~Q|#mF(P%KNPnhKQCik0ygBL8Z z)D`B=KcFpnJfIG>Izp%J&5eHsZMP2Ze8O*4%(38gthZ_w%}nmJ?+V@<@6+<(b%+n7`&5|649{E?{J-{)3Z8LGt4wlzX z-dx!{-EbCmst(r5!uh)^=_N_~B;P}Q4~;EZvEBq?nym&Gz}}*PGP-+*Z9HggI((`H z_{`M&KCXP(jQrjeX+L4J=NFa#x(^DrB<6567fkEs`CE<&JT9J}BR`p011)|oa7}9c zGrtpy6{u6K$>yjROKUPBUkPhMjfUO_>Vj}w!#zjeNME@)9ClCGd-1rx^R8TT5!=0K z*dzAz^;V-D5bgbD`rPJRuP4HkZMp()DNX zexGC?_Dvt9u5CT{XMb;``1j50X*0GI&vx?Fbbr%oAC4jVJ8jpf;4Wsn_K824Gi3D| z`bP(|w5R-2I+L%;YIpA*iUG*wASZ1^xZ!cbcQ9u6vi*%0h z3EpFp&$acEHfxJsWMkj5&ByLmT&jyz`nzhcL$00uceD-L_#Jxv$S(rE8nD>3r_*~^ z{RSTl}fCW??d(I-N{~tv?ui50uN&AcyldVdkK? z5RKL^&&%(gkdrRGQ?G8)BzaG6{`F^QDWH!D7uxO82jZ#YFz<#lZ@KN!!Elav5nW&G zeA1MLr_DJN|B;y|a6nv()HO}8U4<)%{Zidb{+U=A9I&hl>mK45pVQ0tOXp2C44;y* z5AXN#_Zn+D(Y{gZ{GIh2|9)}v7aC8T{i4bGO|ir_|4EmXYpPd7y#e&sq03V7f3)SI z@2mU$e@Q&5SmvRiD_fP-ycWHcx z@0h=*gXsQY)Wh!_MCUG6UzqoLYa1)>%o+0hV9#_@iXKL? z)u9&$-#{$vJ)F&bWcxR1*Gdk-vlG)#`7W^Nox9Why-yqUEQ;?Wn_0PgYXie+^4fHJ zScq+!GiADB_57(;R_p=%)}+&Gy)E!;O}||IqGPmssdWTwt#IhhV{D}FVz1|3FRPQm zyWP5}c&GPu#eP(Aqq3IAiMY7xEt$s;+Z@+~qf&z-h9w7sgBoL_Rn=yN4e%YRYaCo& zt0yYkLhRLl-VRumSmf5Etv8&szaZO$; zO(6CCp^IJWE7DS?A5VPWoX3T=&3h_g%g@B3e|6kHjgO*ON_xwmzr4LzD7pRvaliJz z#R757WB$Jz&BndlGAk3Ve3 zAIdYj_IYo80j%N%o3E z`&^o`R@*fF^TO{l-oE^jayseZ8Xui{96jC5da>@&?v9o};8#A}y}JIeeDW{y5_rtt z&g$P+;PU7>ZvPG5{&M~P1{+MRm(Q%fIBU2&5qqh>&-MEA63f9F|Hk?$5AdGDpn;O+ zcO+keozJ;vi(}%W?#N5(8gMP+x@Nu+`dSnCFXue%8JiEB>%VYK%XKuyz)#ae&rGe@NfjBTS|D%%hG36E8WN;W+8qLq05 zFyqC8<1x7z}r1%WZ7PkKi9R%WQ!w z{_mJWq~2xEDD_>ycXVxA(|NbG4;($&FLdwkZpVb z%TcXhYf3(#+QkmMtyed-uArL5bRJAo4~@?+8*A_3{J7RmiTz*i#ke_gTb_DP-=gh` z`9l4^URxXc=zZOC{>_XG&U!Bw#`A$m%_Z#IkMKk$IJU(eMx3d`dpMRIFT5P*d zFR*#kkYW$aPqKB=QvN?%XPDVP-PY~-43oxA#eF?t55~b3^x3IlnlaMYP;o=*9&h5i z`-q7*`!CthrCoI8Z@|ERlKq=@y+%_t*wf$(YV0(H7bu%wu3zwgW9kFcB*`1P+B{Zk zEnHHootkdlBRDEQyY9QH`D3qc(tX+-Q`tw&BY51r-zC}6ric0X zW9U7qb?AOu`C8nr342-n-K-v;mDJ}#ZjR>6y=zYzwir0ka24ji&sm@7UDaX{a@Pm1F(}V;|YU7|GHFndo;dgki;21TgMAraa4dPDve8+r;@ms(%Qmt8dwXibr z;xY%0pY6kuRy@dj)04) zm_OFo;+cIu_wD`{=l=A(j^NO>@mtXlXnXaJ<2wH_BB!jnDY^C-W0hLlaV@lr8%o2v z_+GCURJ^)(R-xw&y?d+^!#>2Lwj7gMJTbg!1|R1bK=%Q*DV&#hdUU6pd>yT}ldA>x zkGRWlp4F294^=;N3~^~O=#gN{UKw_5*S{d&Up^)88C{BJt)H!X{|B>m`B~bVZ`LAj zqvsyfKYPW@(gWvt$9r%d=U(hL1uLkUzi*aj*!iJzWH&TV6@69W$nfsYzpB<*W35-` z$9Lo#VA0IdUo=+P`-RO7Bmbic2IdFaFb9;xvMTEtN_d#8K-TDBW`)>U>-S<)L-(#Q6 zc=$)y7IEo|ra{Ba6VBq=Q_5LX2Vqw4!It&3v;G5{T~)a1n!jZ_gg4S{X!dx{QidE&gA@~I2wa}Y@e_N*peCfRq=ms1uTfael-*Nv{94qX3_eq_7RAP&0`=;># zGM;1eCUcIK`D4o!bI_XR+D3kVrM}axNodAy@ma)ocbfffwf_A74!_{$%z3fCZaK z_25UP8?Ns%Zf51tVXM>c6n@@;Q~!B;jk8XxBqT#p3~F#Mc|M?UP+CZ1ieCENX<=C?zf_^24<`X}D|a(x$%U;i9un4d0j z^7@qL=+*3SACzOhf3mNBwvXPqLdRV3^z{0D;)f+Zrnm&|kIz&?VQ*p!N8gAUzT)RD zq<^Vdq0!FZtBa54Gkn*=Wz*~2#OpVIz2o^(53pVk@v0QZw`bu zE#+J~&9OlP5&b^rq(0(0;zGWrU)k`jthvUVTFvWHPvs@>7)K9)sDR9F3*lSyuyxU4X-@s=^Q-u zI&1Z~PL^hmR$iCsu7=(w=X1L@oX%ViHy~eoQnS?7%XkTseL+n>U+Do#wSC!?x|h56 zfZf&Etk}aW?3J@TlUpYJ2x(XM%+SpBI&x>@VqyEywK=nTu4Ax1m#3Z!W?y9AGYe}~ zP6}5Fj+f=+T$eROBhY6?Iq$1phaQwIv^e4nrsn)Tzy81b68`9~^9_0~;>C|>9!4&E zuGeEXYu<#8&M(AFg-eUGd>c6j#`2Ajn9+RhX@d$9N8|MlEX=Xb@|_;L8`($}}wmh0MV z_ln`2Ovh?phcnW|cR!5B;&T=*(;lq2WG5ddM$H&qZ!X@SN6>rt2u!l%pU=zB`tScq zxazB*rxWek&%jQlgT0e9G%C&=Y75neMEv^odazfSI~6g1^>)?wmT)jI#uk6H++r{7 z&4>GF>4RkE7PU>&nb6$L*RNF5?8K*Mv2XO#5qhd`1WJ+uD$Q(F<5cZjjrcurdC}ypA)CN@}dILxmST)9^X0`wQp85duaED!v;{Vlm zXV!P^e4>}QHJI?fL04;I^*8L+=U`)g`{FfH@nIq!IxBt%{^S?L5AT9be~5t|iw7Go zdTO2eiLuX~I47nf|CBzn8Smn0u|(*bj<)Zo#S;DdQ4}r5ot`Plm>r*`!_z!Zo$XBAzZ*qF$k!Am{-h>pR*zE8ai&zX3tc6eMoLLE8$PFzFdz}8sVcp9oXKPo2a{vPpK`Mo-WmH4H7{up=u(pZN5;(ZV0 zJrOyH(zo+$eh-5NayaT?Eqrr1H$d5q`n2V#xoUyDg-hMD(`O!vuCYq74C z!914X0KCREJG=(|G>lg@$#Ng(#v$Fmhr2)gEN;>9)^JX|{5eMG#C=k^Lj@CFI^F~e zb-Y~EG zv0M!LEIyvX!xF!YnMc^p^iILzYp-T_ztQLZbNPkk-ORw5O22)#*Tl63^4eMtX?{N; zmwl9;Ub&AQ`om8W$N72t^OgFGh2gW8E7z;PK3VR41^v-)|ET@BGX8z%a{T-5Xy*v7 zaYrYFxY;iruV(wp*00nruFu!n!>WNC@mKH$@|xEJG_qW$04(Yyb3U2fEF5KP4hpD zXCPOcwYUD}SgUCY7yBTc$z0zl?+i}n!=4^DK2deD)PKLg97vu$ z)Hu*D3%^(Sd!<)v!Z+0O6!(T|XW2h-e%ViFRWE0HO|JBox&Kiw*C^Ecrp2tu?p~rF z!+Pg4%QgJncJQcwQmxF-n&DmPUMKqsru10lXAAEu*8(`#9i4^Z&|nXlO6)|vD-PFjvv|Vqq$s{*X*xPoVx}~ zi2LhDY|qcoPWSuUOtl)#Ix6>Wb2Ga7v7v_d@2uI;gSD8Q$XwZIcOPLJbgt>knA_Hz z59VzY{qUr}b!~dyuhD6la>m8GMyDK274%@FRW9w63&rV$&s%i4nw(MGm67j<4Q#CT zMPEEu^PUH10;VGet1e?X7c^zN{a|88e>qdn!^>$45!Y?k|BK3~$TZ}V7kHM14= zou<3#_tmSNDE?xa-88(l&uMmw=`Q*`AM+mKSqdMs3R)=ejA9MA z@_oBHTt7Vy?bCQhUvn&-{wwW))2Ko6bM>G5dtd^dDGk_eY??JpDsI{KK0W=souhrW z{fPd+X*DqQ6{Ks-P06v~S>q#A=NU&$m;Tt*ua#_lyO%Rhh&oNqrPeRdlu3DG&X25z zEyX67NEH9!`rhxX=;v~>$NXU&H1I%jn(tP>DsG*y}er;AI{I6zeVR#yieCvUi^ag z%opZnT)&+keLUV@x!wGDc=z`H1U=*5KGIk8@$CWgzV=6cPt3YFx%w?|1L0cOyzvox za`>5A3h_1ioTlM3Mq_v39{#({9f{bIdSy5#Nd!>rbJTa=zV15qg0{q5(*g3Oe9KSKWP4<#$xlN0+Uk__89`}d!b=9>D z`X63DN;Tw$XUdEkbn#3#op}Jk7D`iY-EDM} zp8dyT{N+JAQ>30-k0DY`SG~W{4)kd|oUSge(WK;nluAw)oY8B`9LZmE26OHdY8P3X>7Dnm=kLevp)(D~6jLmo z9qgXpP!ss}`^9fx!JTdocjxen(!^a*jDX(%@bg<@jiVgLyn8dhdGXr|`pv(-d4b)& zo4c1zdAiqsk+XjdI#SFebG=^E6jR^WZqc0jbTYsA<>W5)+(#Wj_2%zq?Pc`{h(DO} zoXky@o&f6+_KVF8<@+Dh5v;${U{ufNlKx2D=I-T}x0jBGiU*qP4Vu+Sztm!7dMAwI zGEJBE@pzzL|I%VN&XRN&!A3MgkXSawH(eaz5p!sK&k!f7_Z!?2pDaD5A-)*APp>+y_p`P~??bjB(obWS9bET5eePI?s$7WW z^L)+1hw*-1t}87w=J6;G7pE=1Q{^_{Y^Y~C+Z6M?U{7WJz=M4jd+_OezJtI2kWP1J zZ5Qy}(%}F%1(Qb;m$`(RO*s5$|3=P#7<5k$n_MVqWm}I=?Ey_Wie|)i{c6(hPVeGi zOSnHAu2b>~pR;Fq2(|)kZtYR_RKOB0Od~YwnR2h_2B1GzbD+^>?*Apn0<(O>yqX2# zU$~@MCtkd>shXr=X3B-lhQ%IY7Y##~Hn`>yI;r)<4XlIsyKl8y>?iWgb7cRsc@F#NG3KwvHT90wFrkx(+ z+%Fz=vs5Sgr`f~>(~#c0pvEuVVYI8=HojDy5dD@N{e6p`@f+1jj+t3j<5_7J))|eu zMzoo6|1|m$&+Fan+J%nxb&u9HcrEuX&eb!tuV-tAwmxd{%Qo7K*l^b=5^mWyi=p2K z1f3A;%Q3ysY@0WBCuR_4`>yYMmd~i~#phRteJ)Nx(JU>t{@EJZY z7PDs?rM%Pl%-MdPJ?y8NnQF>O`)BK*lR;kl1V0s@3GL)IXJC!eyp1$J@^tMK|J>2V z5N10D_ay((Y$MGo`hUr9H5$bK9Zl+XFJGOMobicu1?N7^um7c7;6yXWn^^{$V{j>b zj63O2xn_oGR;!maXh6qW6KBI_4WO?M?mgq0-#gcAb+DWIRgt>j?K3E7GwIrEsOIT;xo_n@&Ww$9M|vM!*hL9qsQ!;eM9-U9AAA3I%2N5 zRBWnzn%iXXw!$HjwiP;d_oplAXU#kX@h)myUE^ohQ^)TOJ{*7*YYsq~17`Z`(jkQZ z9qO^yHm|7t%)ihRsCA?XeMIzvf{y&F3o@25F8p?}!5oLH;69v5}ro3?kTYlCp9&%CXf=tYHeSGcVahx2xUZ{&roB#Z9EiBCja{trGPu%~N-iG3T z`szywcPv<0sp-Ra>BrjLU+u%Y_x?`xP7I&N4R}BYfwNBROl?VX33{{;N^a8EtEhRG z5uXV*+G=j_IbAQ=dgI{y91Wt)h`Ge``DMSjmIQ`%BE6*-U5v&2jpm{Kg{{myI^*wo zJwS8zexrY4gkRFUKGgy`c9)pN=DkFXoB2?GoY1H_yM@#ApVBKJ?=_v#pH@4!^OSn_ zr`4|eai4frqb;=lu6J$ErQ6oSSjSzB{@?Ua;p681zp1r+%f-W4t+8^f=lA=e?)8%m zVFroSwa`_G_xIoC%RZr&o_R}QU5LjH&)T~At8-!hF;<+6alLM>IRA0=_qM+7cFXJV zioYLKZx@Gu)oOe5M|)t}7r9TJ9A14r-WPw&2RAa{zEoxr7&ju?!m?JgxW>fE$NP)) z0pxrbeCKNPCEE;fevK~{VlMjA*;6q``ls?9rkwHRMmKSEd{t*bTK#Z!aqe`Lc?{T? zR@-Zie+NI;TBUbpGaAvb$9^$qJFVq@(DTvE2%WM0xv$u*TBDVYq-#T-2X2byGDbb% za3*6s@&o;^zgTO7y`BlrR6C-FATjqrPV|$HKe3tU8HwADhi^kz$O8=MmJiQ{&>ir>Ee3v->g3*O&KY_1}EGg5ONxF>RM~+;cBA zo>6Xalg_~7Fhll`dKYe~aWc=8z6@b8_3V{3AWql3b@~mN&%+!LxJ;k;4-S(4P4(9> zF9aOD)^D3SYps7K{v!4R{37G=-QI^K%^Nv8%xi|8xy@^o#;(mN77lVQe$t&|N$@I* zjiU#5Rh**4p;GR^da_5r_?}v)rDm6AqV7$dRq$Aw zwtWo`+PGo=c`fH(U2AwKHYmCn`5mYE@}2|3QI&1Pep$R4xmy>+L%ff^nZ^ZI{7>?p zep(z7Yo#6jPnQpL*ZKJ_ctYs~hT9a+0{tcC$7Ner))#Wj!M;0Iujq$m>lHowlYW!> z_f2$Uq>l{$sH2PgG`ky~Nj<2wme)UD&SDvx|1FMG2j9|s`Cw~0*m=Rci~le?o34@d zxX;eiFIV>1@*zBE$4lVomj2P!t|qOKQJzg6Yc=_IpTWOL_WW^q+auyMz2AppwPFLU z?hMxA_PW7UTiTq)>e%Ty@Dqwd%G%a>_W5_yOz~gMi=h`XBjKih7D)gL%zhWxW_alPj*|7fm${~_OBIgMck zebj)O`b^ozVzXO5N2^_%@yG{ou_k72YMZ%sU%;(yik9l?0y9YI zl^WlkZX94Q#8&}hVuoPm!#L({vsZ+R*L9y6!v=m#iG?S43=88^&0n>dB9D8&kKi** z=noaV%5&t8KBJMDiZP}Xu0!94V?yjNY$q6vpZ|mHoPSGqPJBc9t!f_HnTLrzc+Tt) zFn|z0))9Tl$rnR)oJ0DP!#Ac|!OZ;ocW)zpA z&rF^?>eWmsbwJiE<3OrqKA_G0x!xQ0$9Wy5E26b`ZJ;6d({m4cZ}lwtXH)!IxR3Y% zzn3vR60dHGy`csZc!=rW&syB0;h2o?v*vB8pJGQd$3*pvS4E?R+M};ijm`+`bT1%1L1RojH7(m#hw-hAv{0L zE(YJoc?PyzHBn|2OEYjWXvMN0Q*TtY*JxfOy)VVghF#>`R&yNle2%rvj7!A2K+A=1 z`^3O6&U8KQG4??1+y|T@)^U?9xePdAtTnv)YvXd^>*?y=zcwyz&PMwStp@p;`0$VQ z3-oW5T8ZUOEze&(7Q@Z^{Nqr4xcJ2(Ivm1sQcb(=>82j|e4fu6^g(`M&-m&?*lx8Y z>Q#-}y#Iwc&!$@y_bGebVwgBzsF;u%w%65oYm#^@3+ zpZ&d&;=DJnE03qG>GOQPUlUKS-dm0lWBjDG@R?e{pX|<>Y2WHF*m~kKPF{>YGXv=x zb@`h-N4I$fTlX4|yuFqd(OL21#aH_0qJCNYv-bmf?le8d(7ab&C)b&3FIC}7%;GKM zk6n|nsj)BJgCoIRk=9hx7hLivd;%I!i_|W%Zkq9PGfznU_w)qs1YURbF%!Ql-67&f zY@G5g7B$4oc`Rph zcj2RYXC|Lr9LAFSf2HOX&)aMEZ<B;7cS)B`{OcX*{&7!7@xG4_Q(qTaEX2OphT-7m{o2mpWNlO0bGJvUFVXAz z?Q1%xU(>UZ9|(>HE8Vha< zbG%K=;xkrRL+$a(Uzy3{)XYI_3c3y0N6yn_?FlhEv@8wGl{d+avAU6!;L&%1p|RQ!T0c;>jU-b@n^%R{XE)i9`bcGt>_(gJ2-c)&!Az< zzmEsl-Fy1{`ELJAJf9WUkqvpS7X2^i*I5%Lg?=BgV8UPZ%+y7<&^_8}dXBI$-&l)t zwC4XkQ{!^g^+&~7i)+xaQ9;+f^0J-plJcnDcLz2#fBqFb4D8=^&FB-lV;@|`H8%Ym zu$Sk?P{c#_F2Tg|Y@y@LdoZEbd)RpL*LJqvQ~F!F*G=nQ`deBIvgRC~t58SLvt}$Z z`3laLV@LJ8&x~7U&*3wil0A|7jh@DhYIwp~YpJcZJ2xuV(9zMbd?9H&<+{QIS4#WR zYHZ8_9$U_Yc6fZ}@Z|1@r{K&i2#dYW8X18v(_)OvOKG+}d68n6t5a$qqc5k#hb8BX zoSYcrKELksLwZW3hLU4hpSzy+6gDj3uaDAGnmubiY4gDik8AMX!P`1wiy3$qgp^?>&3@<(lZ!G ztHuS*Y}sg2ro^ZC-D0a-{#U}Sq*-0=`w2GI*1l__iF?trU#a?H8$sg^yzP$I@KM;% z1N>C4Bdsi6O|ijxC(OoPzvUd9;}7}#@a{v!CI3>NJvKpl(_ht-!QZpL@7?Foo<2WL z`PF#JFYGI>cI8QPM$x|-9L}FBjw<^tX=^=a&M191={+?)zuSsG!hc87te&erKkB_j z9sk-(5o(^C-55*sY9x2giPbGieo*wyI{FWr(wofn+N*?Vhq?r@ndThl>$KlNj?%@_ ztp+@5*CXRJ*uu2l^}HEY>)+w$XPH^brB-Ws;P@o-E=RZinW6NFQVcaw2WYTg|9pHN z?m5;1;-54AL2qo;+@6{9Jivi$-&wx~S&kXu(0Dw3u6f5`>e1gN?3}otm?_6;H6~lz zx;X}eXFp#M8z~ya(+1To7_UCEuF4ok=5BOelWF`DoLo`zJQAIu2S6^7Em7)buZ73&@AXJy{zO(<^QseL9Kf&ej^t z@@n|yz3PHRW4p#V*zQMZ(_-JVT@L%I!Oowp#q%qAIa+dV~Yh5^OkclQYaeFhB0kDRyi# z#N084{t3Fe87~TRv>(a`XXR31p2{?=-*c(%_x0pJb-%Wpfn1A7v;8`;8(O>p7fzff zW)aY%w=O(axZ%<6dD!c!H(v6-cJ5^BOKtxL;;2?n=V(eC#ksmdd+2Hoo3{c!%nXHt z^@aF;t47fx7_e%99#e<-D4hLfkN%_V-%rGi;3d$vChd0kf3*bsqxBgs3#;wXCDhzLu<|W10iStpGx=VS5A4r<`oOG;=-+G>N6x`=jqqUe|9?Jh z&~lVRK34i)YHXt1IqRH1I`*E*$@sPBgnh89d3$+&ggD9Y!HskEa-iHC-Dh;KGy{7P zoyCZw)jXY<+RPnO9QN`)_NUCu+3lR#_m|kQuIsd%eYVEL6#a&{KTK3lEV&zK{hI71!%yVmbL!shS5vH11~ zP1-y!>OosCzDDKwwfw=K6?c`mB*$K+bFMk(Bj?*?9|A^3A6entJbM-#bsgjJb##!a zg~AnEUV`r^?hjbJ>f7YjV6uN7F{3u=by*Gd5G_LL=9<%a9es232hXnw{Q~Yvu7R6| zM(^Ch!dEGMj$jJM9|zwvr!N1yuUqCGp!Z_eWbe)QV>fTvH(@sV@zD!u)$W|WSs5{- zcm1<*wyiIS*|_i<#1G2YPMU3(G-;$QQ?=SON2N2f^i__H@!S6{_5W@UW&isR_6FSP z5ty#+3-cF=<2!x++SFM>aA!DUx8rtxqvh}=MvoXUz6GDetoJfswHx=@duVLH^txAy z`D}Jvum#cXfL-@IC-?BGVhgeU48O46TYoJrU9b4LW4_<_#CD5KTV3kxJfHvm7!uvX zHTper-$BfeW^f((JbcFUYi2v&QMdW+Pq@WB96xN#Z)cm*b7ha)teyQ+@I!ixVlFp< zp&Pfk;x@10Lh-&d%hj%DHNTg2{bpe^D_ivTB+bEHICHDxkK_i8PAZ%|>-jrewfS?jXW+2Lcm4d_>Q~f~Vs6zx7ap57scZdmakFSwr#|fq zTdxvlhzFy75}mtfyDMjJaQ0!4u}@*mr*mKsm)OA}oPqz3y*F!XBWbp_f6zYo7@utp z0V4(*bu&r8nT2cw2yi!G5WoJrSL75~k`Tsr5Bq%%`fA&tQdL%F3@cWwxWG@bw(u>* zgMv$7^}3A3tyw;c@4!#2T=8?)FUh=(hDP)&XQ)kl?~QwZU3{?6IS5+migRb$ttx(X z=URQiF0a#nZvI)ID1Pw;%6ao5WF$xL5AE^Ei)TN9(Pryny5fnK3k#@BLG4pzPa0 zj?K>T`49en^Zg{;%aqnCHKyza(-PtJr0Vja)k4cQGLE z!eK4UU5YUwH7T$F`sRJVW!)2g4KE&^^wsP>?#Qw9=j`Y8asPvRM~*x2C4B$+3w6Im z*DHBA|AoFc_0`OgD=()w)$?|U&lh?N_u?AC|I!S$z-#+;Jt42u8f*yj%Jg z;6|@n-Hu*P;tX`y*86ao=?OxwkT?!4?3QYv3#SMCEYx_Yvz57u^q$dssal<`zpZ&< z%#dOx>$L+`HG1<&PL%iPbH zJD{0+N({AUy18eYor@EAR%aux^WlAk&3dr;8YlRp#8o>(Z!+y2=_-ghNy|-{yUwqEi z-A#H|+B2tcPk6`uS3k=SyfgZ_zp<{&__98fl1my-YlpZ@^#~UOUr4*#V&xDUwbTRi zH2e_HDCf>S%M{Gd_xn$-6;ImtIS2AR=sy!nPx~*%660K4@3#~Wj;I~SGo86UrCzVz z?#6s<&V7#I8d}odk-K~s-f}@49_NjndD}_+C9aO*dSdcH8CO+rq zgE&{ZT8l~AuazbuIxpB&-wQ!MXyNj}p@!!T&z|)Rx+TA0Zs*^dcQxt&ex0Xqavb-5 ztS*o^44Q3UV=*beo~BtH>fS#iM>0$^+G^v}_*jhEs^%}7uiAOO#TQcpzFr=FwpkU< zM)0#>@8I41sBb==bJ`fDWm4aRv-y>s;vV{2JM-*MR|96og~KhHny|s1H*MdVduM}2 zzr^aGH(E|UYkJ?rX3C|Rc>vGBw722jQ_EQn@kH>?zE@9d>C$3M)(Y>BljUgs`gRXbdm~pw(W9W zua6}zkkz$y{sXu4nAj7(Nba{?Pg)Do*I&C)OpVVB_bd&SfBTG=w_};iTcv*MxYpo; zm&UV$m%x0MP@69A{*QtiuKlm(o0Pi4eO%A13t83|elhU@8lUht>sa)4HH^(M9Z2+Dl~~Skoa}S4R&9UYgpW7}zaVQZDsL2)i6(A%H%F=wb$&m&{;GM3nS)hw zkC;17i(6;RvIO&CjSOpFLX+^3o)F~}>Z9ks)}{R$b;A?qpNKnC-^kZGW~JxjdWHHT znt$?*n;qsTzz0m&Q<#Ys`+d{-Y)gxfzLGxr0D%L_-)}kVXat#0)H^&sxheb_a`N>3 z#@p&s+a&L!o+ggEY1}f~sB=Xhu-?&pPqQ7YUjVE-#MPJJ+3*$XI_T;3aMb9PiFS|p zu6(D}Oe3caeU?>VmW^_jC5-d>0Ok={IM#x7?bOLrmU0B7@Qu4epus70t} z=tT{I{Tphf;5O_#&5cj7^6+#D2IjGfCI(jaR+R()1MJRn;NM&IAeFVF9#q5NZn`fX{ zTlc+~x$;dd?I-DhE1qJ;!nAls@%@tWi(TPzu77!V+PnmBYq=+3ilGls+HiZf4iAm- z%y6P6t=}`k@-@3O)n2jBt{%N+T-ho1mYHd#ceutfz#pAW)O}8zR|ifxu`e+Ake}iU zRG*o_p)ccu+mfnwLZG zVq3AF>5!*q6z3q+i%-9zb0)tQwO5HDlSWMNIk9&M+;yQne|D4gYAcQR;AfJrtN6d6 zCbPA_NKKY}I_gRUEJePgd(wR*c3qkK)B_jLmA2i{)a_@N%D(bB`mtFSiGYYq9r z5PKE0tHZ5^4jw|iCfuR*Bn0x^CW(V_5a#ty|T_sOmG%^-LHZ+8$EF9 zhI>cOMe!% z>o`kd%;uN%G2h|NXG5FZ-|zRw+hINZenTVoWgk%QL)r4JAu){lC>z&7*PI#*J~L>f z?~GQ-mFwT37RAr$WeR)E`-d;T?TFi&~h6nqPJl z@h7y%0w$*ZDB|DE&UMI_sNY7Nahp@(c)g*AEyqbOY8swybsojfF)gRAFfC@1nGUCN zAmgC8xrp4$zb3~Pmc5jFY59`Z9W^Yl?l^9lik{aQ&kJ ztIB%QZ^PmaWK%p=5Z?6%arZn2<|VG(EAsxc$$cW|`?oK(pV_CbPTV0+7w)LJhQtJ! zvw17*C-D-DFE-wfF03x*`+VojS%>uRb0$NM@3E_d1A+^kE$(t};1a2?z05pJXGpw4 z>}@mu7e?Up1BnGr&=-^+^v{&eu>PHU3GtxjJD`my-KmJBCLWB>wRFB+pGe>{VrS|( ziy5yG2KDdinUBwI?~!*u8TTW`{>RKP47Szc!JlqBj+8gwjlfyq-hs9Lb94MB^ zdLD4aqkeTPQgCYYyC>VlRA;dm`RowoI=L?4SW_6dV{;_!7ZRwS$FDURpY$jLE70`!%B^S`u z$7>xA>|@FcoAX|=nK5r}+N3(qd{OtqYJ|t&b+;eNJ^Zq~*5k3cPBd=Y;{C)}{pDGK zl`Swl@fYWy2@jppiy}>E)1Iw+m&x_S1?rw!?t)#d?)zuPsGqNg^hC{?&)ujMZ}!2! zJLK+_t?_o!G?Px4E1}$$Sk2|J;^T(T6W83toXmgLdM!*p>0*tV`_aAb(Z`LP;Ro_a zxEMQ}C*{iS4EdPv?KRz}kC)U1ypQ;fnr^P=CJZ#_$R-;mAHpp06?*sU8HP}{<2ha2`NrIgI*+EN67)uf&v8HReu5{N`Z7O68!)cZubPeTS6S8>T{u0OAAF{N z&i4I!o|DbHO~32wMO=gL&pjZ4x9%{$=6Y0kLit?C?~l-4zy@VaOzo$PEut-Jvp8RP z4{;6Y#d3Nr0b4A!z;Ye`9G-LjVlT=J-Mh|%_StMZ?dp*c127zDVR&8X)^4KlE}nd} z!yc=r*V$`R%I`#uNaVcwdR!HEN*mhxp~>Alp4;zjyKG;?`GOD7j6rc=(jN47$=m$5 zV{N++zx}HDe4E0qlP|1hFk0R&UK`ww=SrLAhcv#+zBOMVOuQ>yV!z&YZi>y%n5grS zx(BC)nf+C>?|GavRPC9}3t;AC^{!_1LWlY@{(~MHup#Ue^^>n(IbWg2aA@}bX&3x` z_i`=piVjyF!Rkl5@0n%gIjL^;UFhrE(Cu0^5(ft@#)F{lXcG^_z5W z7Tcb5_phdXr)hoI?1Eig-|hRP)#~}M;+XTCEyJr4R}gztc&W7=`sF?(V|ToRaBtbh zRdy`a?{l5r<{^gJvo#M3&U3E6BwXJ6rpa~s5WBI9>3-jsf-kxM1ruJ@cwunuh zmTRr>sz$^*hqLP6CG|d6w|`}C0y%l|vC;rShw{o|+0BX@nRt}{qPmT<5k8Jyzy0Iz zdS&kP@b(XKRQMD{Qz6Vro-off#W9*SPH(5H6FXZ`)llE8*~k1<;&rcMzqV?cSlvE7 zS66W!Ud3%&J*n2;OF{q}0@l`yl_|7wbv+MydrLl7E_CSQm@i<{w95P zaQx_bWLEh#^XHg}$_zELX`jK3zRPAS#+H9)o)7b%OD#uO>^%1Ry|CHsa+WI2^J>|2ZvQjrE66p^Vtgk2YE7&df++}URDYHIglk1)8 zF>kH`C9Ko$zn5!3!{?tL7j8d@$K&r|Z&UbO=Z3n}@^+lzSN%NCr~4^f&FCjzo+(Fc zw^+DTiZ^2}r2|BRL-8yTJ>DB;x(=%dto&g@wds- zyU#&C!TZu`j-~3nlY1PE-=pizKJR0^!yH?L{EMF2l+!kI+|a);Id^rs5Ht81Gx9RN zU)oPIczT83_#^dQz5BrRPII@^WBjT*uRqthzAQdOtTn54N542&TjsS8m%s6xSD2t` z%vQ^NU9FdMei3+ZWzCpBL=D>2ze7!96AaKlmufYOoqP56ySepWf4<%LFUMQl(Ee6u z)XOt4#(GO;$0o0|IaW`7b{y?sdxFN|=sPtQ6|3koZr^x2C=MPqM>qt^M+>$C?&7%z zFY&yW*yqMcFI+w2A`){s-gmP$6M5j$OP^*>%k{)VoS0{3yULm=rw%ji#En`X_@2yw zXC3d>cwdOc+;fT(D1G<6%$4)^M$W1^GgEkTUSE7%Z_A%;%R49Y_*@@q$ti!#?vqn4 zbmqzo(j(73xA?U@n+d*vk zKa+OAh&KGL$@)IxH^?*(OU*>AR zHJ+bQFVA@K44dxtM;yi{j&Z;r$*0{6AoY<3jz{WwQO=zBn_%6?>ecvyw_|WELVOxU6R>$Ge6_$37 zPJ>-TeGB#(%g51>P#s>}$fTX*JIKRq`HN#Nx4SN^7 zvv++qvH!@QkGIzpSAPIIx-UJxXw%V4`uuwb4cyrORkSd!$a(jr%L>jnRR55}%`3e- zcfE*>KF{}#lcuToB(Yz0DqiHyMXK+Ehtt>1e2MF5zaoa8{NbDS|3>Po8KgZ7$D=w2 zlYOcBvDowE^~P0$7xEvlX8h&TL(&+?``gv_x3{RZmG88@WHvkYsW)nE4Qy%BXHECF zr}LJ2+qSo!-f?zymdTacn)^Wi;S)LMEM%! zEQOrDJ?yXlv@d`fTkFmP8Q zxAHM?VpbpZclX@4C;a_{*zcsSi<&lT;`(TY-Us-`+v|7dC(lI#pPK$OZB)L0Lq2!3 zd+BEg6rFzS1D2l+_uh;tUyD0BE@R{@qD7SSoLy{ayg<*FQ4J~m-uC+?Y420h4Yl60 z`TKm`j|Zw-NtfUC@oLU=;W@ZIydyow+-K^i%Ka+5a#C+{;>>W*XPYaJAJ(Ob={Y?U zzBkPuNIVJCpUmr+F<170!(^R(9IH9c-G4mzmH+9T=kwCc3!JVPvm7^{zMXEiz{#mk zE#eclY>tyOYtY)XeqU-r=pSwM=_g$y_lHrDd&l@H9e4fk~vY8TPA89&h0ceRl>l-iA- zS#VTrU#Qnv-FfY@HkbyOgSaI1wP)3IxHoBh1?^_T0^K_mr&qcQ zMTeTWAZtF-*D^R=kOuYYb6fQj|Bm1aH?$cw3-3z#u<`>m0dGwI`u*Oc;v)af#xy#| z^fCLxq^;vWH&quiJmWHamIrDL)L!(Qi3@04bna<6?%$+i?YT+fJ}=wMJk`G9y*vJi zG(A_PGY#*&@IgOpYNoEY=?xC`Cj1@K2w(kkd;QF6s^}{Gxy`?yFr&nA^vq{`aT3f%1e!DjJNoGJ>WrKMSauMM}(i7 zzFVjV8D^3EG4?0rk>|PYP5l~-*?PmNCA#x5NniM!KEX!M^Jq1%L%Jp$y%By%^GC$L z=6tJP5DpMLaPUmy8ufgSV(amO^Zm&C;{I38w$XWXzdvq!!Dgga!Hg!&%2q6WkKOos zN*xmXQ_n+Pe*dd_fz;n%{LYFq{MYaRj}|&lZtu}kL#%P#y2tMP0p1b!ao`^$o2q)7 za+tp61`reQZ0VWOJF5J_)Ht@W7q&xBkc*G(+Oem-VOLX(AU)%ec!tG>mpS#>H@~Wn z@OTut)`7p*urJJNAxCv*GI5nB*_dx1M{5jH*#~cctI=J4>>tzbA9^$^{~%kO{yoM? zuBQXL1{c@AAM7CK9Nyv$oV$v@?_K5Y;zREU?*3PzXgl}1mVbt$DUZm&4hVh+fzjfP&xi-(cf1k;&@)_BS88*e; zYl+dNovPS_87fuXdKF$IIbUbQoayspZ_D_7?g@>V)mhr-hs2WJ-WHCq&Rl$-@!Td` zA$y>Fc0pLJ#ax?>J#^iSzmmllh3%n zSutGe-7Rqg`XxJ;oaY-iGgNT{F=6oC&3_l)v`38K_XFo!n)vfo923{M#%3+%DScgu zXI=FwPqZH|$0jy&V&`&aGEcFx&32!!v=hm{2me|8f3h>4WAZ{yHL2EOv3bf<@U;u7 zM@x4szFX?jt+{H(VSRRp_2#9KGUwmJ9L^vLN}tfeP;tKWF{$58=h(mC zTj9np-JHB_G-C}l5 zT3?&m)u4x6^BhCJW`=vD9(cw0xkjQpCAY?4=P9;A4+;I!;ok9H z{yFhLe5NbSD)4nt>5_{7R-S{}l+}W$)x%ePIG$gzIS0h&&&Tu31=1Wv_#^tA=JU}b zocu|_NTiFm@ih2+Gdw0nRp0dpo5K`y$ zsE%)3?BwS@q*z${I>tsfakeh!ml$piOz=<6w7t&{~A{P*I0k+a=d zqDSxR2^imt`DBIVIlJs_<;Gg{W$jz|234N%Dt|VkXKdV`m7MF}gqs!YYj=Tt?#_{7 zs^)x}Jok*BWxQ=}cir2D7iPjp=YL~^S!W&1U$wZQ^o*e~QZU_sAt(;0efpO)Lks^G z@g~2Y%lwfB-k0a6V3(N15;42yld9fX>~6Tuo;XzrKb96A{tK>@+oNG`DQ@wYFTFKs zK3gN6of`k1f4m;h_r7=Ah>Op$f1HQA+k|_L|NP}VciKAmbN^xTe6hvkSN2lOUe9Zf zxh1`>36I-^@9lKGU*a|FAM?EQ^x3R#^!Ph*D7Ef{yX71<-532$iLX4<2G9pT z|F!Qi;SK5r-T4dRiM>mK{)G!iRZ%wo2PpQt{SdgYxDk2=Q*tB<|)MW002 z4F2N%uJ?D9Ho3HQ&K6dfvA7JbdX{k?=O@VXIOp%@{s)Z~s||XdnP2A|qgi|$>j(4| zsXp854(FQK&0D^k^Ir9qPX7MopiMsoE82BQn7?_aER{_8c5%ITf3L;I@5c(HkSuIw3F@LzuN}P=;s=*y}jB7d}bz!yZ=D9fJGadHLlp2ub!Tazs{R~-g;)8Fq`WiL8a{rax%g_E%v-6l8?(+)QbE-KQSE`5T zdP#fAe}~sp`yT&zXlLTQj>AL#m(N^Sua0s(X=9K#RWW&mBNKN`{+#LyQS}AGv_7X+r+&vAFX=e!)EYbfnbY@n_j^a^5u9AF++o9`{YFy)j29cVLVS|X z?Znu@>aSC5UhKX9XngXy+j5VSbAfcvX-}Y+H?gjqu5&ir|CV|H@lR8IukG*5lhT>X zap=qZmxU+UI^N5P&Is|~gxHr{2rdjb2pWiv|8hd^YoE#MoaSiwnqXxgS9{bj+1L1x z*27;A1HY1c5}vQICtvM5(I@-a@w3BY;Cdc+z>tn^dv%Sk!IxW7E%l+=zYb5Su-h4a z`XjTm(YH$9TgBfIOAT{EH2bc+d-!BegWk;^=Mw(y`~B(XQuA)W2xr$t;ikRcSePBN zm)Np;{yO%rdZ}l`x_h=iiw=9`6Y+DSlJAxI^uqA)ciMCGLKt>zzEk&9&b#%^V$WA^ zrRyUN0H0^+92&>?D8|w2V>n#Mt>U?LwrjK({w-hE#~!-3lkjulz1iO>M%xv)Fme3q z-*f&~@7l!)jnA0=V$Ok^_bhBreiS_rI8#kbT=x*~E$0BXmee88Z4(!y{`Y_lhB+Ej zKU?BJT`Rn^au3tLQ#DWcb(ROFKf}XWO!4FXm*Z?_8<^#cXN>WYdzKPgq`GI`zu#Mf z4}EvZkFh_Ei(s=7ZBL<#!gp8=?zHRcyxu;q{_){znX`TLpAQ$es_Tkx6FH6KQ#9&C zja>FM^Iu|323#azym=p0_9n$Bs$Wp|26HRFM@{$@_3&B!c;of(!V&!6zo*_7Fl+6z z;PZn9O@6=h$rYObPC3fBdwEa9C&flqTsC+tt1G`>fUCqlx?SIo>ti74F5d9p<`H$B zm79#O_`06cC7gJ@8JHY3{IIVSPdQ#+^c68auHyZ)Pp`;9{CTh%Lp&$q=S1#iM_jPo zljE<;om2;`eWC1bRVTCY-Y^q0xu)mmZP%% zFWJzI&JsP!nhP6xo|!K@#?uZQI{cRKol|jU)Z0w&X?cfnuR8zk?J2e`#Jk}P)V%0d z>PVe`m zs{xmos+nW`%6x7l|YN%z_`%gihB*^H1Lct^%&`tl8kbgRnOncIA~hID79HPWOUl6wp7x zEQiyD)*QAv&bDmKmYdBRRNV(Vzi;|jZDuxOx8|6$Kt6i%U>c$u^V9&&ne706vN%Oc zR9Nz}^|b2qH|+_%;KkpDI`0o^dR?lQqrYJ@sBR2jCO(8$!u(n5+m)|GXH`ABt2c?u zvE%Bbn%|Ik$-+B##cR=AgY~od3B4s5yTS)C+o$~v+;xs#5Y_yc*WO``I%}s3eQ9y? zXLK2T9|-r7^pm3>r58SGOtl#~a zey6*@^(!vs8ror7;DR)|azg@hUIYcB1XGd{7#N z)OEk9*G+!G>dPr_kLt)Y8~yv#n<1^I2!(T!CEwD8z$S&`ke&q77iTi=i{T+{SccmhhM4I zjT!d0pSJer&Y02sakRqhXmm)?qSY*sPu-0N`dn^4F805ETDbbQPc4kOuwSq{bJRpH zu&V?0E&286E?91~tXNe#A6k2>_jF$WJ?y>9ewP_6^DEL&nfnAL)bx{_W#Y+Y)kbY@ z!Nh0t{1v|zZ|AAc%FC%4mp$p%rS!8TorR~uQKE@7sk2lE)Ec{k^NrkzmxqUJvyFmaZkL!-iJ%;>OJrXH8Ya^iFQ+d z4(h`4g_&;#pO~4ufAW0N!@Z}cvDv@l{o_SXT!?P#q0&Ry47xk;I>>v`q1mJtyUQFC zI8S}94+hE1hfq(acgUUVHk_vRpN_8z-b{}%J*n8Mp!-wdNUxi(8hT_jcW{3MA6WL2 zGrv5~eW{kV3!8?j!Fo|+t-ZlLE!>(k^XPl-d%pN_ z?adsU!*fH&VuZa^|DnsPg^|Hk;+%gz7{qsrP6soclymf{*W*iG)}wl?)iEt0xJ!GJdhm@?#c+v(3zD%UT5cVV|6X4H?fo{@v}%fT6|jJKwpG?m#=m7{k+} z5SI}{mmCG0!rK?#Rj`Yb_~70SanHV%@3FibYjMtqF+wk!#h1Ic&F^k%sn++h`pj&o z{CqF*k5VmGT)~hVVH0cLOD)4a_qFCtq+HbaM}EGXe09SnSG{7@nsH8?y~lpS0VRIX zjOCU|sUWP%oTjK_+NxmBNI%xU+ZogOuInfoPI`eHG;&5?KS)6dqf>{MMt=q`g- z-OFddpQkR?T>(@2htJ^f@6Y=cr)BV0=hl9|{@!`_ko4AwKl{;c`I>R;&6Vzc(6eyy ze`Qm@XI7urSdHAy#;ne!ig-%`+$8rAWO;t4b$OAK-_@V<~d zW7qX~HL-jDo-$S<%^k}tXJakIHZlG%j#Q```0UfT74$y5Cv?{=Mp~|b9uXF(4;z+pI_s1`^xT=zV(GPR)bGwUd~S>_C+KaELlJjHTTdM$=l#qojJ%pEwr*gCtFP)S-jW8=&a?3x zTyKJMU-<{&VQ0d<*ZaQj$>|*JE;RGvz=wXjZc_7lug%->As5o*I*S^YF{Ti9KRKrG zXKiZU9)0KaUdg*X25wqNclrD$jic@N^h3X2RWI+$cAcD8eG4TXa<#fw_|EUhz3~Oh zSE=U>d#iXX>0DWTBgHL+(>^PHVNVM0a=J@9ZV!2TIVFDCdsCjSUcU7=VhG9a=XH;9 z*DJ7(H~W0QcU+7$1ye{hue7%L+`08^)NP1S(WiDb8~iWtTJyWE_hbLI^5blqo1EfF z`VS@VQw)4PMH9HhpTx4{hUyP+_+$g;u5G^NS>3>SKUhPrp?{07mAwZ8J*{lLdv0`; z)DsS7;`Z6=xbe*Od2t5Ye|?zsaJ-+daHWsfQ}_eaEauR({P*}aFhH|+hv4HjLo)GE zOs4{E;L3(CRhV1Agri@ElfAu;CJ9_=W}iPf{OXUXw*9@wfRY|x;J1;3Kb)eqz^tQb z=M|n@d+s2_59T}4{%`i5>`^C=d`|R@PU$<`pQDDPnqcH}S}iGZfT>kb*CjT6=vgmx znvI?2LeM{^ITRH}xqP0!TXkjP5p*5UB!h!Nk15~9jJeQPdkx=u4vYd^gC2trKdath zGna{tjq7_hN^^o-&RTIbicSJK>o2W8zTJ+@=&{-OwRR-o?9tXXVoC9xr7>6QJ#}-> zV`upHVNdA2Y%ycN_&kAI+lc39;Y%JLyXvEt6YA|V`YKxY55zhTm4@c@{y*U)I!A43 z(xqM>KJUM8ay%FKaf+ix`p@GylWPLyd+MC$(VefO$}VLbI^p`#(9xP+3^;46jr_d6 z4)^p_;*A&c=UK5pT%R@0KK-N%ok#g?)7T{z&^^+N4@aEZQ};={hh&!mPt(WTMxC&Yjh%qK^-J zgQ^E)g0DwwDa7;i3u7ZTrRyBHp8q}L!i`D{^mBc3jsYIvxk{5nbMU~Tu+i^J3=jWc z=~H)pUb$C#&%Fh(S$kLKjkv;LR0+qMGPCDjY&Y1W=hJ*Xc3}!fv~?eB4ZRm=ltkZO zde^4t;pDT2y|V9p!G_3&Nh7w|I~?Ar`rP8r!SK`z4d)wUk>Sqq{n*&0w?~=M)~-kJr?1&+~JN7nU^v(HC-*^jTsi^A`^yRIDfY zF*Rq}ME-h}Zy64x`}6&mu_v+QQsRS6#mUig>~r2%pRiHnNF926R+-hDaoDCNEBy#7 zqkXeu1H+E;{A}L8h76JZ%(}bz|XJaY8OxXxR{>5n=^3)4w!F9 zEs7poH5R0F#d!Er`tqk|fHTGEX3hSPN(61oPYU7&Z z+29S19r_@7?xXD=`NGhj-x-`NoV#^Md-m1!>2h|IYmBZ6F7Q&{Vw3A`_*cdJ0mn*bcJ;2juFq!_2U`@jT6+WGB(O8|#0n>}0ry z$_{S+bv5OGJdWn-;UUf6M%)_V?h;b~4ymX@LZd9_)+5-;#!KbtX;E zggCa+^hdB0=*ho{1$-?yq5X9|`^oM6v;5b8){+!A+It9uT*5`l9n zJpR>oB(6{4*ve+N!k%`|>gvK~tHv<8Ca*Q0Z{ya#n)Bi`a{mqeqbnowOyW4r(jA|7 z=xu^93w~D|w|n9b)ix9x<4e`sxI^ASyohh&-@ctJfLB})(_gHOos$^<(_gnEtnrcF zI{JZ@{d}OLnP*x`F_(}}H6E_|JR)Z@{@nFoP~Tw22>X6We4Khfa*wX{4e1`M=UV9G zek}LS?Ymr@6?I~5Mlo@9AKnRlANa7;e}#5!Ipdx$@c&j%P&waI;#j}N()fp?g4R)6 zapk@BEJ{Z`a{y#ZJ?4=(c;oXfuy^RFGVh378!jdD89O(s$>sdX$9nYM&f??{tA-hm zp$Bx~;x(-g zb}FV?@ilJV)a&7&1Y@WwvL?l9{!T(eVY zd=;I_n9pQ;^6rmX4=D7O2|uC#A?a6$yGyP!B*&?HGNl`E(AA8fsx}&b9}Vv~uY>zy z24lbKM^%p$eYUduhVh)xU)1ly%hZgQ>oc>(WiHhtJ^_u7;~nf~vyXG_Q1eJaA8_Xr zzw_;+6?-_}-=YiKx$Jc}r*&=aQlyFpE$jTUdW~Q``a7v zv85wQJQVOTFg>^z1wT}ew(YT~_od!~l2_uFu9!&*R@!(Lr?Z8=X6V_h=Q@RcXZ6wP z3`e{{yhF}EXA(_0$48xnOTy2ZRofT#gk}SJF7yK=jE0)E`McdI_(bT#F1>f&f8$57 z4{c`FfJ4^v=kTXi>nr)X`Zkl+;ETPG;)1&SG_Bzc(=Fy+!yKOX+ctaW$M5-^-VA0l zS|2Lh+tJzN`)&3_PVNKnYf+saY;M%|(u`-gct@dUjDJu4eU+|4U8nH<0mEJOiA}^` zd_UHO<`V~d$$P2p#bavh<-)60jbnXaIyaFQWj%}A-TplG^U8W3rKcp@%{+#)i|Tj5 zfNq0EV)kcIPY~=QaNG18-Zw4f89F|f3py6neZ6CbP=y(aH|^IkXpIrC(GNu2w)CNV zC-YGKwZM>E{e*rAr#n`#Dg4@D^nHz7viKd{19cx}Dwg*NADL&&&wIUdQQJ}NYtG&h zGwsr>L41wBKl(i`R_}M+tX6%G`VF@aT6s2+dPzeJQm$9;nWT3mUpDFbC7yk;h7_@A zY*5GryXY#QQHD*VrV?f;VWUh-LAY`00h!EmW51`~OwNkqV5`5A|E$j?&on(!ULQGa z{yR!f2YH&^5B(o&J$QE~-Tfp!rTl6pv8|A~)Ni0zp15_;0ZpA~;aZX~@<%>D}RH@zF;vyt~<@pm2W=IfQS z`a(lIfkuF4;%Vk=4_kSIK1$TcaC$DBq0nb@`t1|C7V(|OI3nq1xp%A>$i)qD9VW~s zi5i;r+%dPQX7RpGb0V#e_&pz}x3`72^Iv=3YVObC+lk)>Ur0TSHqUyRCQ^6abnNE& z{YB-{Ufa`i_WXOWSmH)&(@DI*k=|X+5XU{v~nQqA4_4j$3!}ol0bL{m&i;uTnJ-pP0u6D*<53N?*hzq1`5Ovxc@kRF2!~kF&W7_{g{~*-Us#pVi@6OdkJloylevi2V z_yx^4n2R`ZtUaj*5`A?vE$oc@cq*-H(qSMzF>R%U-SNBWGx7(|Rs2);4HXm- zd1kH-9s>7`yg?Xd((ku;Cu^=LFGN>MSnC4uyv;|koK^j5hOdf$5NByy&YgMWWzR^{ zN;Ng?N5n>h|7~Kiy51O%JoQPkM@RCl!c)f}K)@`Lp&7QNv{uS?1;9zyQGEQw?Bg!akn&^55>;(@t}t7+{q1y9GkR8++vp_72a@YHe?RtxnMMTmd*5`Nb`Mt{S;wi^HU3)osk9$s z+%Eov-NTd|TK5><7q+^3AMl;7`ymI<-~Zd;ndSI9i=p19_g%gF^zYJcWVTd%&Zph? z(pmO-T@#na1|RJ#n-7n@J$t3501h?qJ}YwO_t2*a`857yi~|z;@z>54+tmD*lV)!D zY}AGs!>0|FitO-d3Kd zpLO%euC17tIEDG+d|v#yoAyxnPxw2vy=&$>h4qp~?Tu*`ZLWnscfz@izdNLFoc!6( zf`%isg$9<*0r%nFG{=0t#j}L#spioMGm-7*A#Yz)9sF#;%}e+1=D&5| zU&Ln|uLavofzs0yeNUY?&#M1A?1s8nOZXvCu-QPpHs|KI z7Wwj4oB6r2SG8YP{rC67CFRG`cUY)qyZikWv)*?}qy{^Z?l$=6q+Td$w#*-;?rJr~h2iyQ=75J; zq+r4Ntj8+jzBN83I$Gi?rG3r5Rj!J5x-|6RjNDv3Y;Tx`bl}n6n5GxM(+TxUzUvcv z9p7p?gRyR3*T}IE;d=CUP?xiKY@tnU1H4%^^1zegd&1l<`25UdLi0%VQ9TQseLjHUeN=h;>@(G130l+^_*>NPDwfGw5ZWr}_#%rw_d7Q=V>h*qeSnR+GyW z@^|vEiG8njmMz{5zt_0`S#|91)IbdW1X~T(n6-H3exvqR#fTAGFh4M^#pE>n_VBj_ zXAQYMx$P^ojc5D5X?l%5)I@w9#)T$kXdjag8T5274NFlTf>M`p2E6-H0Nx0<$nNo{d{5*if!T;B z6}4!*j-&Yh9@9huLS9$&=k~RGKK4`} z?)P=rx8}>sKK!-*-1|s!V7N%uzxPaj>vZ3+3qdy?EO>^Whx63A5?-#FX_;-X_h>nG z)EU-y7#D8#_0VJ5vG^)r@c31$OTdRy&hD<4H5a{J%S#%GH?k?{_;0F@xoGpbJabGd zxi?x)dc(7I60=S(HS?sEtonT;=PeqLN0tuH-1icLQzIyH)pKBeiUjj{H~jYSm6&9{%$x-i+as8cC`wICC`QypD#|Xez zlxG{3!@R_<+jsdq!;k-O9qDJ(ks|)J_P?6h+r@Vl+XnZu=&LG@qW37Bl?vaexR;Y= z{}RVBZw_rIt0|JZgt@wn{>C!v!}fUG)Bf!4y<*O$;#2jNq@E4=1RwKZ6Yn|m4|NWG z8@Y7>SJ3ZluiuT;u!wOVi$C&nm*@-0y_(gTDQEUzvVMle%{CKr!)jC2y+$8d*(kU) zgWu%cz5B90>EFQ!z%al-9?rnLKCKUoqv2~titSm)F#jm|x6JPg`Xb!Z z|Gvbv*^T{=aBh@qTpEvb{mi&XiW~Vm&-?cJT8>j3mq@p?jY+XL+8~6I|P!2Jg}I_;~ly%oER%|5|e& zHbcF%_Cb~xk^7W0>ot?YGsp&L)-;&udvc2REtkJeuED2u&CgZ!%vD;x#G-ZFQ2Qs| zpEUTtXMRtzpD_mbKVw&;9!q(Ds#)ZHJz)ldG)2}PdvGQD(id5vmyJD_=BAyzzY{jC zJSg|ZB)`qSS)D&~-<4D7^Hr^8Oiz6Pr=>X~@Ty0?$)5V7cfB(A;o`RVBK3N@nStdD zRx!}e)wa`Y%Kzfc7I#dm8K?bW8X&^xK=EQ#<<2(^JS2b$c@9KJKPM^=AU&M>!j6pZY#mD0Rnz?$3TkD>~-^Og9m!=nBC!qRK! zYw^U|U!^TEmKXT?*AM&UpEFmFn5GYQdUV^&S^T|nzBNO)tkp{zh8z8%W{;!AB0e?# zYR>n3S)V?5S(U$4x)XJL`V3DR9J1CpeuN;p^NAxxNP|xVtz!yJ?+I%U_+@Hc*VHQQkN~Xk~@mU(Yk{{30 z<8@0s89DX2#(+-|4!(tM4mDBrk~Z%l<0P-ykDJT79(X3)|AR^wQ*jo32}8Kfa52Gj zh}Wj<)2v%hJXiH$Jbya=DqXL?LPO_o?em+mw=;GLH^WY?*X4d?EaxI&>FT5;pcj&dtwb9J;Z{LksZAn4B%-|eb*9PBBd8Lw*-wCU9=PoI3@>rBS=>iZ@ic5}nYr}?fp zJHECNfkSm0e})DLHKVztZ{8X1Ewtd5jq#c^pC|Lw;6^-v12%Q+CvdQq;Eh%DxWG3j zYoeiByrMnm^kE+S+Shz6tHXXD9$CGQ%yXCC7GwuX*Yl^X z&NZ_b3Z8Q;{ucPNakf=&wHZCqoEML)Y3q9X*TZM*-{@m!sJbiIQTw*vJq0I0Gj4M* z*WX%W*8Dqk(UucJm);RYj@~A_};~;Rx@2EgZ{n|aZPz=5i6^&HLG_>J$>mKsUD-a zj{oSbc?qwQ9+t4G*|TrTbJpkhhhyDN+FwUmQ}-yX=`V^GBF~WizKHcSuo`-2n{yYw zD(>YBJe;C47<)J4yP7v1x{I}9-OccJblcG-G=8XNvTPeR)LZPseMZj}T|)egX~!mx zzv&Us_ko^Dp&Di$3+Ln7?i2 z5tf5gam;ekEStt954an>2dYadckb}#=5@VaxAofEADjj*xMI(vlP+2TTjDg^b%;aS z!+uM@GyOU1cnh1}h#wRag!-nd8*hU9Ep$Gjd+^-6$2`L|zn2$r@b~!r%TM&W>3Lo| z=U#ZV`r(CFXAFF@{)@9&Wkycu_mqxHdrlaoLk& zY`e@kPg+24e0!u#xNJ+^?bS@~FC1oWr?-z57ZJ4Rb%xx9udIu~L_d zoH=^p_s-$zqW_+91966H`z*fcNq6q=$_p=g*a~=r4;AK5uRhuonl~lgW8{W)PB#`})?aaoJ!$T-iYw;r`yee5lNrQEA0{81Y8 zn=xNg??1Irok1{WxB=p7;NN&Z#A73TDKU-Ze(-P6_5#m@*E!Y`@4xHx7~PMqv{&diuxrsEwA;KpmJ?CH{zcZcpXUL%5mN+n!<(<_AAR!>?i) z-+uykHE1IhJ8VAxUD(eypQaJZyhf6T~^{8+2 zZ}U@XYs?%9H48YEroG>5^l1IOo^WsTtOkJH(TteTM-RqFk9q9#2k#4OJ3lQ3$@o#g zldN~i@kZY7f)|eU*5zl(`$m21;rDW%V*CA|>buK+I_%A;l|{bJj8o!eG_kPjXuGTS zXJ_-G#ua%kf6i(@81RIu&aB!2T0x43>)-Vp>!=f(a%k@(O*^RQq;oB27e*5?1M~A4 z6MVmfHu0+T)n8NlaL?B6?Mjcye;-=KU`}Jtk#jX^$>95&efg?csa6*7o2>c%Kf;`( z&ps&*@z?A=uSv6@zBh3->wBYL;T8Ah=3Jl6-=T9bwRb<}^~~A2ZatqK6%B`GJQseR zIG#(6dyRe!^{o%ulYZ}yYZ=~uJed2H|NWtTpM3hq(QTy*wGWn*_=41%#W3;}bJ<$sdWST8}nkW~)scRL{M!T(s4B_;ideFM7Y~ zt^4qP zU|S9D^8IwYH_nwOCc8gt%r|*O%|vmt&5Uq1Nbw!lsxZ2V^9}JU%sf3~Huox6MR#oTV=xuhB0Xoqw%=mNn4AoY>dAd(NP0nZ1R(V7tR-!ZWB}jdR;Wt6aE4b1rYg z7VExchcEkEgWvRL;gp_(*Qn{_^NDUFT5QW3mQTg!$~niD&UcP~;Mo4sbH*7Kr^SC? zwO6g*ZW5;#Zjp4YhLbqGCr;ZGzfOJ;v~%;hOS2~&#tz@fd>HvTXH@g6!<;7GgKFpK zXRbZyXY@+m>wCG@S2#|;K<{c+|3rD7WS_)ecbZS-oPkl$bHcOWPrKwZp;ml(g2oB< z>w~KC%-%DgMY4|&-OGlylW9`U+)zyclxbzuDrco z?a9E;H{EdIY3M3LwYa~0X4=kcbD!Y_SUhTT z5})X|mFDwWyw65_I!zlP&V@z8+4NVmPR3(6ID-phYZo!sed*N<&K8-`L_Iw`!A8~cpH@C%CE}TWt=9&pH}DlM2I8jJJ80NKi}~`*gTUiB-yWNJP_31E9)&&N z2iDNoKRfSePQ(#B4A%X_#%bs9s{LiZvvY7bzw@QD(K+c%p9dt449~o>gHF#7+-4+= z&}@T!tn2L8huWX%e(X6u9?Ww+_(NklP2>E$kJrQ+n@{8&`@~&v2BdXN|EA`~pH{%jUW*;QXnRNC=IU`#pYv9qSoNH_Xv}rOZk&h*Slw6Y3&bBw2U}Q-^cxMs zpFW$%&jhW`@Z0O_Gc*@awtqJ95W^XsHhT5*WQ9dx*gTQ_WK@edaNZW^}2 zdW5>7^E34`%)(c&)uxq-b{n%);q{*_ncaWhcnot}u;s_f$+1CEk2>Tdlk5Cl=>ok! z=f4f|qFmFp+`)2FcXqX((FC)1j7_RIa~{Vwu3OYVkPey0g@sjno#1W!I~+RZgmI2W zma`i7F6YmDzTOAt;^sU|wlnQ8XQb1oA1__=@w_v?vv$;4SvwjIzwBQGvWiQ>(4n9@0p2vRI@%CP>VY4>^Z*6nK$F%YjhSMrWh6gNNGFww=Dn$I$ z`nXQazDbK!b4G)Xs<`fzU8&+f&Au_5H)*!;yXCC%oYF9ZA4Xoyj3WGzG-Va93+7!_!Ld*fdNYh!O6HlWxSr zVxQSeo;oIYlfBj2isy7mZdBXu@3T|oI+i!MJ>=uH*?nVw936vYqk)<02UaaYyT1@k}pJ8jv79?PObfKaCE@uTwjRi6mKZESy?0(7@Tf~Gm?C8 zdtLn>=<%Z|Cai-sw{s;Nqh6nh@mIbl;~JZNs$;1Ti$^V>%xfX$2$-P7o!aBkwhgdz z=xt)>7P-%brJFjQQ>?<=iR+a`Y@fK8M~Ykb!Qjy=xZNLie%qU0X&nuBem@$n9PM`o zM?S8u;vBQ7JntOmXtSd|cI)}Pp3mg&2mD|y$49~Tn;zx;M{ELf7azxd9%4MJi76Hg z&$*mtQL)xTVZvVTpo$N<52u@%*G+NY3jV0dH3Ci=&XC2OQ)-Q4*Q5p(dpnZdanHE6 zlKsewy&ci6g}Pf6nY}&`gyWpDIPStsC^ga8gkZ?X0>`a?BC(!-kenWm0>ubVx2GZ_|=ji-+L9=+7<%Jd-pCk4~GmCt@4^D`dQPs~$yn^1P@CIrb zR#&q6rRGhblRRMFukxIr$CjU&_#XS2wXFPedR~zCM;|V}f+6h>f4jK-1N@L2cK9d0 z&gN({xBC3V=~{0um`~MA3wsAy!-;2A?{n{>&svg8+s}{AkJr(_gSXCeo^5*@Sh%s= zuljPxt;|Okn|U^Jw%C96*XbD*e53xp$s8)%v%3*zDff*%`W9l3n%7Zq8q;#fdpPC* z^67ByH3yz}inBqEBYuCd4-1oHb~rqFMr7UtTWuHfr&*;T-Z0sHOIFy1Z2hT@!6KE?3elvAY7>vPg3 z+8M3d|80Fo%T{C6zoY3RpMvI?`4wm1n2qIPdVf|zjVadPG~2krEsFKE^DmC~Ug=Jvs|Je^4*5Ssb4>ubMbe{OtM7_Q907((A-dXsvU-tL+0f z57+N$&CG^dW@j$i+=e}?@Xg32d*yv&BdKGK-CsQ8AMF0V^WIA@uVHX@MzsEcJBuz# zoBdMuY524HW`uR13w=$_XSp4`KDc|ePhLycoWtfme=@FI|6s4P_GRyC_}hMKW%F>O zwUvDy{yXr6l`DqpWuERhPGi@G>vgAjD8|DRza;pM?dUt6L*5y$MNbu2SNz%bZFtry zjuZZKLER6Ya{JHiE&P5f-0#sw>!7nSTsxd_&u&kb++uTb?#Fk=wJ?5+@xD)qIkWAM zrZoC{=7Z4L&TBJXudC{3Ud!6&Sb9%Z7fbkjiaG1q(5YtMQy=Ity7DpabNAIg_vh8P zJnH!{{YlfsRxgK-tpexgTC)e>JA&bs&sTX9`HE)Q#9l@G-6wjg@caCmW?|DGAw1Y@ zH#XenMnB!rCqk?M);VS$(b$%sU@x4)*~Ld*R`s*=J(ee0-pjjY7Pag*=Q{Dl@SSjR z!B)-h4&`_0ZB(4Tbbf^HPk9z}*yq>4aN+K5%)@Qvn#boiivMj7!!bQR7~Fz^KdLtj z&XjO%FcUPwH(T?c*OxC(4p#E-o{d(}>G`_+v0KjE$8Nv^*q4ga>9KCj>HB&YWxhEW zp6SOD|7gw{ag+4MpDJ79@41e-_Tk8*#rCt}t_lO#ndd&POoRU~io4!E7lk^};fpi2 zXT~vy(Z}G=uqsHzzT_B8?}P(#vIcub(go)_dBaT zJsvAGYCw~;T6{i(pV?UmF_3h^ea?AG9g?#n+akYabxt?|RyVGFoAer$BjFlR%5udkWyyI}}$zFd6d>jRVOWy$tYua3Eson!K*66b{H3A0mw zS>UCIkviW z*COUZzhxuk{(}qQA_t~(>gyE3gm%CdnB4}~Flq!A;T5WcYd2YjihP+F(zzarP&j!huGT4xG zYy$_K&k&PET#`J@dg$P4!2yXlduzn+sE;G^EJ81^$5@Do#WC<0GI(g`K{!-z@l-ul zng=H?N&0T$$BA_gX*&+jwgP7iA4iNhuh}dio(y)Yigo>c@Ez(af!F*Fzq^z;=&1(i zaRsobgfq42-D`iPo+GS``f|h`GIw%NeV_5|(YXWfQU5$K<&avX$2^+xGgy*hWSb}Z z6XUp_fuE_ie?26wHvV?5yS@%HGvAr#nkgP9AAQ)NHUqbh^|9I#bNM2llbL&AKUi;g z#J}3}%#kzw`Qqo7r^dx^j~%xkUY@B}{9&@WZ{+}`_dMk~g{#!M5Bu_PKGaC_I;B3u zaP9(5n9gn;i^)d*jXj4Y-i8+iFWU5=h52fJWSA{G>HRLbT=Vr>tS6z*$;G9E0q6aK z|1N7EQ)_j17to5>M00AhU2*Ma#&0^WW)mV_70&PNNq6Vc*HS8+YcoIZE!>pb-3$J! zI3{J@JacNPqe}~`?X*@a+i}^ao}*cs@L%=2Uq8Hen1iotweHlX&#VG;#$Al+_n_@d zd!Fv;~}c_6F|JnDS9rqHB& zD0rCL2k=2zC&x92_I{e?PdrzuLB(D-bbowJUz~w>HcRdjn%K}+&VHF~d2RbcaYJ)HEo)owdHgrIajD$|K2(Tn{Qgz_DCW`l_~pdyR6RK7 z!D(K(YHa9<&_Ar6{Gf@Of0H)#i(@9v*z^_HU{E)@ynV{ubsFkb|ary)d9K z>%#CYW^eG^nrnMcO&Pq9xh3>-`sX>h=`b69Up3E+aVZZa2C*5U_{!>ik+Ug&5`Pme zq1E;LIy#%`pK0}v4_ENGH;?`!or9(xJ9=UC{4L#ppTXH+?t*X%{B-IK(R^I6MB!qi zJ{W_oWj@EjCx!krf7bo?gFn1g*X1wdodx?b(YKy|cKi+IUsx>syWxL@_nPKlu$R%> ziR%<&RUb?J@_DkFm0s=dH`KHyz2An`!Rs)f)&(4`2G)>#@otriHnh!qC*pPBe@-e+ zGWDsK>r2^Rs^*Vf2!0`IgfrKN`|N&nArm%kf_bINxei;w7fh||@ck~~M(G|-O*NB5-v5m|BXWheO9nTOe zCp(+Dg8wN0eRMV4I%w_x3@+eL@#9f%zflj^cJCtP*h}*3#<$77{`I^Sazd+>=-pV}w?}^%fN4zU)5Q+D$ zd1Ck@z84)V_|gf754=C?KRXCH2DpOZ)$ma&?jrkoP-7pZ$0K6%Q=gCCJ^I_=4TSlr z19&&|k5H%TK7q3&4Bs&L^zR<`2x{T`z;29btM$|X&UgT7Plh5A~2 zkBUF2b7*}lJV)9xk&7g(X+^OJ+`$&_&^R01Z=X0Wb4ppi7PdwFcKQXoEAy(&#k!Wo z?uw6Ci}-AvD<2zqUMsvG>UuTyrI;k)7KKkryl3@Bi=kY8KuvJ5bHP4COP77=YYlzy>Lf3 zlrT8s#E2hbJR!H{{2P5@R{PMNvc9IEizA*=;?Jme*6+`}-n=XDIeV6u-XqtCi@yk- z!|$ukBz!PD@09iS&t$dZeD=iuQvH*?)q2qNbhep;M2-t*CEUw|eKTdf!VJP-SHfO8 z-(|nWb;|oS?z5s<+Wq#y z;RrGJ$aQPp9h?C@tLmEQJYKVA*XnH%KV3Dq{t%tjFpH$v=!8=%HVb`4Tl>7HsrlI3 zbBFbpH9lPLg+Ci_=~*fEqPENBT0VbR>@%-@Z-u`3XbY=8#d~V;cbwNSM?7-n@p0@c z-`iaEK6(x6Z2x~hzF$c>iL()@Hso@}>RMhyj5+Yhwy38j*naXJn+fbOCOA2V`VSUeg0RcocU}sLr*DZ#N+4HJ$bw|Ki^04oX;(-<-Wttvd#(l^x!LV zN$GFKAEKY0dA4Sc0ta02g`HJ=Usz+q{}Yc}{1~0HY%eG0aclpJ&mq6>(3hq8h%1j~ z1 zUsU#P9plyeV-|-r93SUnLF41^81Nsyz|+f%BL>gS&jPa8HZ`wwS-q-Wzdt>3d-v)GO1- zqrUDFe+Z|{no?*=6KkE{oY-~m#P@_NknJ_Sscmt%+r-Xy!b^9hm)Gp6UGL}fRpzSu z{z2-Z>wV|r(Q+NrbR)O+voy$eef*+YHM;iC7eXieo~LCc-judx~ea39!@y^ca_-C*K?K#u(Z<#+B`)s(+c=kKNXV8E1=(M2%pNRf9 z`i*4Mh5uiRQ+w+4A>%y;|MT+ixbp}`7PKbG;mdo)9$usE`uFt(kwZ%tj_0H|D8(rQ zd+)q!&5nJ{xI*Fv<6jfUj#-4s7fzUk;MZ|=u-(nSE8a-Rc{JY?KN;4P{lcEGxPmjg zvylA%-c9fu`ST73;j?f-LY!dFQQiyv?Bc(}S!kaepWo7#{u@2V(mB6%aZk1<>3P}j z@%c3~Az!=xPTr;Lb-q{ZNc#JZ;t4bty(_Z?idpM5 zQf$&fs|Q|a@)KI8)CUz}s0FT9z1@+$6Ft> z*ny5&BF9MN@x=1!ypA+aqwnWS=@}#6hu*LJdzyO2-s@oS-40_*SmJ&>$4CF{_aM7ct)rdaR^rc@ z&BIoc|Jfdg8#c0@bDIZb^TD;gR_g=H0zWJo@Pk5`4fA;Mo*KJ~_ z*e&}mv|!NkD!Hp&f3t5oGKT+vA)HB5EpYx8PY>WqvtM{$%C$HLS(hPw7jcx;l34T3hr*cnQ;*1jv-=e;T?e90G>{W#uffth_} zy{{(d(^!6Czjq*i88p=V8RFcSh7GtseP~Zt>7K gW9I!S5yPImZ(Fh6xPp8JoV& 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

                                          ^|Ow8SaI#GF?BEKcyP{9 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 EEGayS>Pe(E(N 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¥^I9T)u@|-xI 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�%>Ay|1ZESFJC1yMgp&ea)qVdJy8`}Dobjc4)=f0!@d0ht z{1Cg@CzE{07V9;xZRJw<`B=Y6^>g&~dggubm!LOPFQz$4G3Gq~HQ%Rl6r$YvV)IO0 z%_+Jf)i^z}7rY*7=i-JK;o@L!uNymR;P(+GGJmzls7har zT^nCMKxu1!@%dfX9zYjS#h9#&&>EoXg2E`6jj+1bV%QkTuUviz< zgkXd(?#qm8XfkYZ8B9d{NpY~1=Z~w4%aV=iTYLw%i^h6uV^K^DxmwI4c`~JZjeFbu z%Dz6?Temqzj{xBr*d8_&q5eH>+}!teeAQ40}$~+ z%;9lgNf`%@{%?*>YHS+<_W5u0q=Jdw}%TFnV-?(b!Kof;qU1jif||E!s}gRYlt?%xZ0#xVBh+aK%l z?cEITj;G;Eqc6=NId1YX(X;0J@y@(_MHx3O&tsDZoYf=7K~AdcttsTkk$Ag^mFk-I z?^NSV>rz~s*HC^?_5KOxpx#UN{(i3OXT7sl2fMSrx4=w!otTr>aoC#w`g)P068)6U zQG9>CQRFk`=Xt$2{*bA%X4&5-=2PW0tme!1c*4c?9{0Hr|FHR8kO%5dR-CaZ;{BVq z^qq{jI_QPCCw#w}k6XNX_>k>-Fk3wa@;Udn(H(R6c`q8zyD)4K`C=yb>|5_{@u7+R zY4a%ThMijOU6-H1<_J9`BwzhJ&*9@zyjXD%ldJ9TiErENB%i0GLyC1W`L7sM<|;>) ziZ?yT@#5Oz?AGJ*yx~y8P{hUJch#pDn^JjyCRedNi*ea}q9dC3Tpofcu8{SC#~p0z zzWTd=SqD9V2?ok^g`&D@)Uh}G+R_aNl8dmb-;5IiOv-5M{$E1c^dGGW{Q*252 zp()4kwQ>((XvG~gUy7+R|4Z}NYleNF#CJ6z|J=?C`@r@KcI}tGV!`;}Y8eg=$k=7^ z-u!s%pNV_Mxi92c=mSEIO~5`)dD_tNc3t`Xq4Rvo*1uJ6505LdSDJE&yl>6|adp|d ziaj>3X~^dZOvXG-?(up&4Vme(nz>&*&9$rSPrXxKC)Y^@zH}d)^Ih5fCvaf43wR&w z=9>+Fr|O-9Evn~<+njh$#XI4;RI=`h*k{TI%b1ti@E&yq*w;`t1^xxu&d8)}Uq{Tq|HXWt|M-oMHKS zm-YUAZ7?(~|&VI44QVoHPMR_Q) zn@wh#y_?otIl(S3bNzL3AJeCjgLX|RcS6iexKh|pGJgHV;}+FfmrweYKA6OV%D?lw z>xacp^vsNyES{4V3|8U|mzi;F@GdIu0C$9OJ|$m9lvy<%ZJFm_yO!sY9I3&@aXb%U z&a*r<`A)xbLJRJQnD_qTq9hxWeU|&2f2_v);fjlXDzp`{DCj9=lK`K7??lD#>uC79ysWpLQJPMAIRb}y*Fy;CS|tda`I39WKXo_ zdX>*}`P&$;d=6ne%`@M$*NMdm%cSeeb6c%%w5NQX$m_;uY`*02>%jM>aM}p{jE)F$ zg|p-wF!6VfAN8kA9}){bye|C5ajq?g$9n;Px>!AUb1eIiB{s<(EXBcfDWcPPteAzzO~apAYp0v)YrmXZ=~5C&z=Tj#WMi zIP}E93h$rw*S@Fzog9Ci!KI@w*kM!Tw^?q@>8pI3{2p>~=wtfh41VX6FH4?FFk@Vh z-^gvfA(!{&co+NsbMJNYYBaO?T5uY>eEE5d*4Bf3%b87+8}5@)PA)mDi+ys6;D2-f z^+O#46n^!y#k<^`PTjwXUxl+nPJlS$oY##!Fns#q{&3$kah0Dv|9o?q8eHRlJT;uE zT-LyMWOKd$x;|Dq*V#rY^l(K0;_Lp|}#8_jG!MRuRh|CvP+djmULLZLwd6tQ3yvXe! z_r#%KxXkLlPA%^~${^vAEKht-W&cAN*Kf#TxZjb(%1cP{6F;8e#b9Sn;zerzHcj6vX+>V|gyszT?oGZ&) zmJg2k6h6b}sCOaO3Ev&LnZ);$v%}AGd>(8|mmB$=YkllCz4dgK?+^@|bQSTH`3>qx zs3EYPF}Ia2wK|edx9Sb3^Q(Cz_p`FWHaP$O`K-%%@$|j)9_qcpneh2>TWab-d<#Q- zh^*D5AH`)3`UP$y@-J#T$j+B)K?*y^|5nJcEYn(jI~GGh&RKq*#t?Xu$ag0%l3FbC ze5svauU;W9)%#cH{wb~*a$0+aHT@LoN`>(}Ki}k_zpGz!rJlO=dT7n5zqkB!Vr9Y( zT31_dY)UZwl-23!tel2@;d38#vF1}XKCyR*@lN~PTFtEcO4fHiJ$t`i)<)|B|L-yR zP;abFKEL9wYmC|7E8D2TyXKQe5ARQp!&*+9wREoR`vK#opCcY({WK@|wIXL_>wNIe zFDKK+kH`LZ|5C9g6YtMCtu|6A8SP!{dbpx&Z-y8?-$M=z;DaY8 zasSX|jAO&e^AmM8RUoD_3%%gFInQB`OB4IM)Hj@IY*}$FIi_b%U_-{dtM}%+Cj47tbTASzdlePnoH2v)E6?7wpCN9bebl6~)bgm*H#t<+6PuCh0p&$hkS z^t%=Q5#O6h#{JrJ!rs(#^^bi8NBt*qzUQr8xkcxE@g5|7_Rs}>%ui_@UEYo#_f(Ui z9&5FBCJ*1<5*x&7nH8nmV{=d`u zQg5hO54qKr8&B>y^)lqN>mBS22YGg^xybf{<~8Y?N!!7nq4_<`XZ6bF8~YSIPflB( z+=cD&*1^{8aS_MyJ(bs}mWcs}2kS>}zj zxIm#Vigz4(uBLFo%EDd7RnoJA+0#Y!Vp}H8L(M69eQWT5l8^J8_%v6}XSTFI3VlYr zu4Vs8w=CgHvz|N5tv@%9=@b3<{G6(P-Ri+6`El4q*7t?nP1$``@5Z>WF)F`=&uMke zd=0Dm@%lSK?^0V%PdfF6^u9+y9>c+ZDBe`Qb;PeTVA&2<4~8e(tuX zcusX6tD&`d4e`zMC&`Jm9q~tvA8LNYe0H33*WO*WGF)DpxAFPS@5DJxd#?1`u57Az z0Qn&$pGmqe^XVhvs?M0@JA-)-$+bMB<|n=%|I05ytx2|p8DnuTc#9iy z;{AJlD&ivAhu+f>Sv0*tPqa7B9X?WQ-5iV7p8i7pZ_IySEyxE~K0o_!br$`5*YJePMuk6P_CYnb$N=@D7uUM$D)P+OSJfEYFL=&+G7i~A;&Z)h zu}65;sr%=%?3Mm*$)z(r&bUo4Q6CxnRAC=y3~YO_oI9Rj-(7_7!}42~ekhhceAymm z4u?;zd~Te*jJ3jfi}GgTIq8{UEc)GKME0X6`HEZ=-jE*?-XnYrs^8DKcmI?OZRkJC zUs&Sa;)NJ_%qi-l@>$e>zaGcyYJMtP(+Uq)*VY`M@PqiXs5_J&yZjyd3|nS&7x`#S zXT}_;R-8$E)q4-!ose&leHCukMO{$l>Xo`E;Cf_@`8X2>E#Eu%uH~Z*oW!3#g3aSQ zyn{t0!_aA#M??*t)i*B8oWds)$3?uY{9HK^;lAeM&M~~OXVQ3c{HW6J#AI5y!iI2s zE(CloenaV5>WpGf!?>S<4WjpqpH;l!FXt&oz_GHp&+EKp>4SsmL*%}AljiT?O$yJA z=U$l6`FzD~#kIG}Q&}CW7X<$7Fed#h-}nL7tnH}omO4fow{u`v?WW1)7A)ZJ@n}A= z@?GLS`uvG`E^=J_dh~JW~j-0{AP0$=6uI; zM(_`+Hj+A0+nw#OuY>NBFNnF0Iir@3Rp~tDFmo9Px#U=3 z`v-Y(kH+7U_}zWHu49635oY%BBRi>GS;~K}{R+YNAM-|HolM}ESxfQm;J>CO6CTCc zqy3cISB=}_Zk8_=;^ZN(Gv@*cubT~l|CO^UKl?mA4(m8~y3eKSn4nwI9(R2o=VH$8 zx3+Y*yW5*pTmxQ!IXJ71<~*l&i&{H)0LZZ{=R&rR=gN#qotFIBlCu^Aphi%09 zFYQ&$iE{x&U32;p@&lCLknO5M$27*Q{sZIr*Tg}H-RE+7^$vMfj>~+grH+kxKJcbl zy+D=k9_CxR3_NW%c=_(i>GgcMoXe8!T6%DkJ9%Qg!7T@5ZLc@~hvG}-3xgLBo;1q= zMy%Otl+@<9f3X6GeEK_;Khs?)YC@yNWCrKm`i^n9xk4sqSj7z$;h9VtoKer?{&qB zvC#u=TCH`!@<+}Dv7ngOxBOA{xhW26xlfXh`~$ZX&m%YJ%eM99kstL0tl~PAec^H2 zbk@XM3sxjPvp}3iHEFuuIhdmyBKJt#Mamb#&aiwEWT5?zAJ}8jjK%97cS6jxW&X*x z8f~dQmKck35!d%f^Xy}YG1!maknda{bC+aqRT!6fHLSuI?0?R_kA-~^-Z%7IW3o0}h$+bIY2jmqGuA`QeO_S7UvYooj?#4r0dhBjo9we8<{f z@*lskr&g&?B7O)*N#McKI=a5~wX~nZo(OYP%tbs`MV|%3ThShqUnTI>$+lk+&V>st zkI(ER$Ij}X9Nr=KX%2I~LB40=U&tKSh6#*stsGOnHt2C=YQnz#m!-fBp?rvY^Jfra zSI<+6EnAHqTnC5nsibG_t7li__zv%fE2*&3Qun9K4vX1RYKP1CN7_u_NHWvziTimamihK!VPLpBGV?911fFNQyzeAj2Q7s@rMdbWaZi|gQ4SN_fTns_L=XTx;99p~mT zM}LCw{7!sM^d03jFf3BsKj|6HRG9P46VpZHBr&JrWBNhfF@37Y=XhD*v-1AQ=$#>6=-#~gD`C;ii{&#u1fXG;F0HXQ-y`%+(cl7BAFTew&ph+`{4ruyY|`EqayiEO zUB|lK@6Q}Q94f~7Ir85i$Ku&>pUuR0axb)KGcmS|eL@a<^s{W-9<8X?;S}%cSU@%# z>s`n9%Q*?PBO!iU?h&tnAt#2K->Wn~-j{lT`Nt+RE_qu6!!AKq7k(?-gUSOa@6q~B z@`*-l)oNeFH7wstbK!DAII8YIP z2=lEyRqCy@cA776L|6;Yzs1j>Ikh<!unt}$4`_6zoYNg)TGnWH_PoCcZ(*9l^HKi`*MRXil*7Va^79us11$$&0e;7M zeDcUzc;bxL&0;6sdv$d&TuTf?F^8dH-CObfV+U^bd@%`QOv*geZfmBe}eR}<}IAT``}xH%VRbBrnxWs zFZdL^ez}Srj4jVeGOzGQr#&K!W_fM4e_ifs92MuqzH*YW-8Z~MhB_tl|AcFjOiMc7 z?|H=;_q;31t5_}ONb=k71rNE^k%E16ec{K+^4;Z4sx?W^E9MlR)ZjAurPj?7eU0{-^9Q}5gTOZ8me1VrSynRFmyO(u z#ryBUCr4eR_F{sNaix>uZb4;}hg-wH9H|AtU9> zF7miTE}P3g)tok-QRAK(&lDKuomdsQ0D(Jg{%m+T_3>b|@bTd4w%~?TpSxxJv&*kB z4h1LTpI?y+@RoiT2P|j$Bky!a9O`xL<(wE*!3ir|FtWH2I2m5Pk$BC(b+*1Nj@Bn?<7e-weWo7%Y*>6;oltHeI?Eh=PK*yxXNq} zxXg6E)~9Aad|RHIUfH1Y!Q4>>o!d<%x@yoxDXyEELVpbKWt-17;msArN8pjBx7W_W zCZ7%VsAWrYqqun4|I2(gesA>YGI0^s_D3glWms154A# zXK}%K-h`LaO}XZ%t%s21Qk-0C@74F)o$Mo&$8=q< zo$IPOJEzF9VvUjgS})a|)MEkvfZL1*ujaX%SYPA1SfHM2^SijVvH!-~Ic7|M2j?uO zrb_3+;uGQ~Xx?WRe)l8z4+7q;_KL>#cATWBSEA-G#!BG4DDUwH&xXe|`sZYG)O+rq ze1_^u1vIjMZx@@}fQ!zH%@uT$#fq7| z=^4mcm~Y;4(kJ!;Jif2sFk(cdENRgz#B6y-JJb1@-Ur)bHhbqgd&Ep*?=jkp#P0AB_2G3@pDoK(P<|aeFw;j?Q(O3L_>R{b8`u1e|Lak15i_t5*ruah4xjl0P^5zjCE6`E(dF$VAkoMW8p6Y_HRQ6VX> zbfv7z4zZ&m|Hu7k#95I2#-X`5=lLRE=1kAW&)qhPHOPJ+*6j;e;u1d#@^DUA0^f4H zk2uZ9kKad6xjcKppDf$X?d{6W@p;PMHD32{U&~9Xdp!EQ`!G5X5y!zewZ_8ecTr=$(NPvep2oL{29~& zEr6j`wT@4xvN=NR4!s2SRX-c+4-Pjh`A5aM@VOigc6MgzL*ZO?s`H?CqTPc$AL3L) z@^sJ7y`Rbyc|mY>&Je%iIo5NB*iptjgI8kH^b4WJp1hsb=aH}XHT0*n{1nUMTm5aF z{Jwe~axE|W)$Q$+kFGeX-c>z6q#veA{hV?Z_@2#+{LOIJ;(IFcGxfdD4_x`1C-lIP zZGS{xs>zxm-w#ck;kD(&Ap#dJ@1AtRduQJ4O1N?92?^$%tX1VX&eJX2q@I4^{?$F% zb8ep|*z?}s~FV5AR$>oXXvOl6;pLk}n%bC~U zBm4PWDE{vI|zcdK!#5vq@a*u-G%@+2+~#I(T;G@sGBzZ#nnaYuH)dC-j}`tMl*n7Jh2@MC@nk zq)R)pjtgx)PjHT~ml#9!o&D+22=1oh-AZ2T=6e=;u-cbD+1J?Od0rRFJSf@qSI1Mr z+}q+?);f!qt4D4VW6J&MvMit$8TpIeBOii#@-J35u3X~_$2nTFZS581={i@;;H7fBA^OJp-!(qV`eLt@3y(RD&y(HKqHF!xhW{^FrwZGo zah#AoaOp>q3>jp)fQQ_7{KMv%H*_yd^x*VI2#9HY@bi9Sx-XMV4y%x7+rf3jLr zy;I=f5r$j8hQqQqKSK{S<-TF(ZO^SO4)IY*29iTqGV3qAMVxwG>y+dS7#=%i+15>Y0dLH)Y!um+$WHQ3s(Fqw zWcyz?*QMTS;CRco1@H2{57;9YALQph_j&YG=t;)nRx%H*HR&z0cUrFN#&|296xQtDT1(9{zK{sr%|YUek~x4|qv z$ey?Ybe<>n&*!^0g-naOz=3a@JsK13_)0ofPGOosT z$nup3a^J_~{NZc!e8990rL2}tm)w^uDDxUz4o%FrxL#GigWjWF#PinEeVcoZd#BIH zag4q=o;PvdhTo~cs-@lw`owv_%Gj{a|Kz;9qtoQSM5o2v%OpDs9xu&Jq5EYgkvF|? z5B4&D`TD^&vG6(i$H;~+Y#GZ7N?b=HI58qeh<^Tv%`xG(Z{YuzHvBK%D*70d&pbKa z*?KuB?7MgU0A_0~%*$UE-%I!fe{zZIjsHvBI^}*4#=w^v`HmRFnE2=%y>{sRBinIi z0pCsJ_hLQ#9HjNvS&&aiy}bPYj0dc~yW&g?{#>iS5@xl&TIpWmNl~4je7pP8`HYu) zGunkM_cmPMxj%ky$-3hANBRss#az1$&wsxc@3F^3lwU>uN3b>UGfm*ByqA;<5`2-D z$c`CmjZ3*)?rrDtpr@MQRP3sZWm@Ko{j^k^nMt4MUz>090k}Qq{n~7;(1%$+yRRg# z0d+0px>kFH^Ai0^vYm3T^JwFj@9Xz#jo}qC-|V_cET-q^`8waqAC25W0e?muxFTNT zR3FFtk=HGpl;e7)Q>g(JN0#ys>a`5=W>T(9zBl-iI@&(A06F%=bIgAXJ_xnyiW4fP z7iyxM&wcekI0&A*Mf3L;`>L?ZCgxaYD}4_+@BA6@JV%W8o_*Ty5qBpyocNXM7P1X! zzTIVdI1_h6)=gk3@*u(e_=KoYq4q(2M~}fOb`Q>k*_FafUN4dF8`mS^g-XWieF}Nc zHJs~Q!)f1{ki*1Cls`#ahOr(>9*fIi|AOA<$fC=I%i;bo@7={;%$eg^j)%stiswxB zA(=d9Zp(Xaj`|nU2Ss}B!u;&DUkrcagx(8vSDW;ffgj)e--BCf^4Lcq$F6N({&bFf zZX^Sc(em?}jl+2+moReHq#k+Z_oqGpEHatH5zj@vzhtk?KMHfRuS1O1{Dvj3hVb9r z5c|#T@jgA2k(*zZuNlY7>KFWp7FSf>zw@|P&%pl4_io02#Ub1>mjyOS@}HUv)`Gl% zTmBFI>U>X`9`HGtIL{VOta7VLPV%@j&o+!KVZVvZ8=YcZjack#34z(Nk>zIxbgBY7+)cul5G@ZQm%zcd8+s*Wh=DgVP;>l zojK{TNz)EQpN&yA1L{ITNbq(_w2^-G^x zg3a&fUh#bq$D|*7YrMqjPqHmqVgT*i8~&ktN}R*}J+9ZY7)s@z4|xDymv41abv;(x zpVactrQD-{2TLAF;lF zPE{QGg89|En=csqRk5gOJ9tbPeFR4uxpwdeBpW$l6Pt7HYuvTS^w3}EXY)OUU)F1~ z6SfSwO8Ptab+Y~~&Nn!MKC~f@<4lD(`N?RCya8hP zl1bcO_5R)ilGs7c$<6B%FgiG=wLjlq#pG|`W?}oja!aYLa(}btq^d`m{jh3yAD$q_ zUCN3q`}Ceck3?)(?=OoPvX*eI`g`xc_QmZ>o=C5-9fRzJpGL8x`g-F6ZoS^@bnrWQ zDq*g)|2)sRp64oexiQzqokp!b{lCK)la6z&VS0dhx-gCd%iAME&c;vbQqk89J}jNhVjfIi@{DlK zlDun+Rp{EqQtuj9lyollEbv#*U-*;8su?t_mSPVrbMueiQ@NZnkeW5jpT zKN=}lKlBT}G>+BjH}(Xv;5a}3ANEFDj0pJ(Mz*+#&q<1lQQ!XQwvR6`#0BTk;l?dd zt%<7;u8h!x0_407J|wDknYv3!eF!j+6q zgjfT)$DS((kAZxphl*K(FCyREryyG`$ISE0%KZM8vl#aRae*95jF>p+LcKGbBXt}l zUK93d^K&U(}nZ;D}P*g4I+J%kpy)Vx6H60^j+I zTo;LFX(91{Y3$5T<-^JQ*?lpMYl2TF%8HN|2p1UjjqG>DC@xIiHvOuKYX;7#6x-sx z$>-XhQ|z4n=Gnh#Yp2|{xF5a$Te)uTpOl}c;Fc;dMLCyxhft3!-n_`KbsP9Sk{pU> zxBPCxfXEPgW}Zj)c@?~(#rK@2lvcdN z_44r-J%hi*`@uWfcsB3mYiHQqYo`iM$naTd=kdPm4f4B*mCAnAeyHPrzcgRzU5j;k zac;hex%Kyp`(F0;n|Y!B?iv^VD13m&2Y2JOFn{HoM?bdDciiYUn1{Z1GlxL?H*HAL!dTNt=*4}`eR$oi`mkeJaLu@`; z^F+mSn6F1R*|;+IVm-$#HfJ2WVQb|+2R!D_Bp)yMdWC6Y+?wx{@0sEm{(e?xjgN*L zh^;tJ_~@L^4tu59ha%1IQb$(LBjDc16xagt9=O}O>uj{eCwub#&M_l|Ov(I53aP4@^(xi850Ze3m_KcBwS zUv9p?pA$ao1^=MO*1%NY@g3zB4c(_@{IR93Pv@ZdK42U1B&nCjrw8iJ&~=H^HS|j< z=aBm(zmMNjYqDL;pV@<9-q4dtpYd~$W6l-H@42>~`m@HK{il5BQSMkC{j~PM;J&g= z;`)RfR{3;Pr4*Njj|rQm@Rz5(U^%L7^>1n4yH8+VJmZo7 zJ?At$cDpZWlVrW%gUX70+pp@sY~j4}LY-yT+ZU+O8(Q zck-(hcDL(;Shs9Bv!4I+PEVs451`iS^k$IGNYXdyIkF354&_{YhGWDqXZQgvZzf`* zH)7N#o5gXEcxe+huDD$S54o_6>ElOmvh}4euml(}tfjyETRpz%5jTxI=fphv z%lH#+>9s+xRj*S8H(1|Ci_=75!ws2Nk#q!(Su^4rHAxC z7bjJXExc~VS!i+TYpn}Ck4+aY)2DpATw}T%FYQxT1@?l=eYsc5ANmYS&XDgVndEh) z9yiajHOu@r#~{4u^J#pAK~}!8KdJr3c4%1_xVqr~?C%D;pYpxH;%@kG9_$NAM;mGfM1iRYZsIm3OXpfsBCyggK`Mc|UZH?dRG{qO_d-}cl>=27}?sdge)A>xe&Sc{`wHv%Q zGpQcJ#097|HTxrQdp0m@^_gUFd2MN1+q{!+G@!@T`K0Y29E4q~-gDu38QTTD5%zT2 zo0^|i-SH-NG@o6zooX5S4WFZA=%fx^o@XD%wE-8n4$<{NcarC4*C6LYJlXn91&mtN zPPN60z`Wp-kLH{9n$(a_?EP;PkC86pc|XH>zu{k;tU`Y<36?h7h|nKk6{0Vd_T#hMd#V%Z;k^FHh1x< zgYh@l$qz#3rN3_p`&)g;Am+&qM#kX-CXUxp5A-PBMsX_dkYjb)+oVq7LV4llNAjO9 zh*!=P&l$gBzu0?VSHW!_cxIP|KV;XR&)!enYEK})HqmK@udXFSsad7pAU5EO=R9gXsM}Ni zA9-fvI3b(YHD7SI1kS`iS3j>ZHp|bq9tAd+(+_vvSAFmx8#0`6Yyf(K`dLl6o<2_# zy3x5o_QxNDg}mOEJ(4)hq6~Iin(Ks%{wP6LFlWUcv|PA}eHr=x)(T#$xF2kPdtZ*5 z6#JAvH~R&5w2tBiJ6d*J#GZNLY#=K($Pa?gq58b$b(24z-XPW=mNWe7JvgkV1UkfI z=i@rMm$|z;q_>H$kJpG;9Kd*T_1T5xXhsZd^-t3S?GMfhdwFJq{1@;Qanty2tf#mT zUVROy#imC@Jl9q`y|R(!KJv3mzO>-ri8&Q##G3LK4|2aU_E@m@rY^|MR1HDm^Pv`D zj#wOVRXCaqJM>?76;oNn|0`ou$j$$!tz`i+HAXbiQ-U&*HA3mRNZ;ocFLVW+glCIJXzpTXZGGfYb-}8Se1n zK9Xt1^KfC@-^M{cMO@tEfW=SsIdUp-18Fa9ToMzH@9HskPAgYe3>T~2i+X~DUO#)>@Q!t)=f6`0~}MY$aj26>ZNuX=FoiXcd{D_e_WhP*&%_8 z!(-X4*A-k3`!8UUYx?BTua>c=yj|JoU_Rr~kIzYKZN5n58p#$)^;yZs_>PV3<1A|g zuBqF<9`=rZ!l&;xirahITfU!)oTxGR;-$~s&h|r)bsOTo1$%8}+`v1S4Y??OQ*2CP z<&FXJ`E)ryeGN-AG~k`{>}EgV+i;8Fz;TgtNupf0{LAYF3A9{8k z3am-nCbXn>xQ2%+3VPRV4LZqYp%sd?qdR5ysQV|@N-_r@JbKR0 zi}59Vx>((}x@5C~BmOX1lHV=K$`C(Rjr6-Ye~f8{z4m?Z1za;TxH%TajQN~5n~UJu ztK*rdXW>gJ^F43C!eEEsE6*}8j7Pe@Mc@C*^T0I4I7YGlrJR$vUM+P)%$@vwk~w8Q z;@0&uwJs0DxtqFy->=|m-?{%@%Ca_@+B&W&t0{8674l;8x&>VFhRiN-4DV}en_^Ps z`c-x3>Z$6n+Nypqo{@NFvaesf${zcF^PcA0G}&mivlI8SIwG(6)_SsMl22%LXDQ+b zYz?m`&D>XTE@9_5?~~u1$DQ)vvmLGL{_?bY#fat?r4wvA(n`Tjcv>nfq6; zl;y>+w#e=a^ir;`PCi`u=R+^VC6}kW(?@%We``Ib4<747mZD!{PBl&Nq4@qG z#~NF?Ker~^Dd;uXR-x|X?hOq73uB<4rep1p*P4CkVU41#koGY9#MZySRq>jX!&L1_ z@pK!9Gc}I|W-QNSx%b>wid+O4OO*GN9DnQkmY-$&8JSuY={C>6ux4(1tTfcxmzwXley2$Ico&nU!uPtVu zIB{WN=P^9hz2n9+_IpbY``1ekXXB3}dj9zHc5ZLKzTTZ4EY6*5?MxjX?o53+c%cmg zy#j{(zjmYk*!MTsrvk(2)% z>v^3|gxJ*QjZm{pjF}qljo0(=o#*k<&6Ylo_avS^ydBy#@xI$XhSSt#ecpNsHJ~@x zVdhuq!vnF;z4&Ze{go`f$C>kY$ayqyQ6ZP`!-X6NFys%7qyJ)jyVz>NWAjgzlf=H3 zUxAzhYPFbqJNx1`65rumPc;X9<3610kw=egwSJ6Ckpl?MmB05xJu`I&_ec2a`t%H5 zTTIUaOL-o$bNi;hCr;#;|GS1?X}B_YLEpu3;6v@-YYd#5+tr=oyZqf`$K-dsf1%#j z#a$>dSoV#W@BaP8ph$<-a}K~M6<;Sc*c z^zSS&qvze=XU3;zeLz=A`%i03&Gl;!|97AB2+y$czguRHO-{}DLI)~E+P8O1(~ ztH@&I-KkHJ_wLMn>O##4_4%v8&T8sx*5x(F%|8(v>OE6i{+;)kS3Iu;vsH75U1`1r zAA{HOq@IzSl_YOtd@J^oO#R>`Z(~fJdYjCMDkJ6An%67>`q zz}2>W`|kBo=kXl)Jtpp#u+pOTIK96M9hGIy`0u`FiJ_XPbTN&Vf&ybPW0T$CzRJW;TpS-`#>Wf8t*g8HWKgR=Q3lD zI7auSCVRae8yGV1UTJS4XUAX2fshX&_+V}B@k4Hp^L)nKU!U`|UiLm#zws~IJKFpG zm-DC(?s9&>C)J`%?6o|`c6ku>;@ZKz)$PS~$!D-{>uArN>D}1geZ$^TJWVt?^O_b(+E{kqU&Uh^L2+@DP^`FQ@}5*3fF$C0zHrH`V{L5tr`V~XPm zn8MaE$%1?q_7%TlKMF&?9_>*hW#bxwRhFKjKftlC_B67gjG4rarK4Gep0mycddRp__bO*Y`E41bKg<5sKqnssjaCZ>pasYDF)>N_IWD z6XXzQ8E^Y=bbLU6%q+t~UvuooOY1)rYemEdqdEwiH?wngR0{^q#MU?2%zjL=S^n*? zHy!8p$?q8~iSJ9C+u#?=iwT(B@)C4u0zGw13 zx_@KbWq`#=&&FM68%oLxu820^%av+Fht2R^dXKWE- zq~@nF9jlz@;ke~}t+!Rn-vgfYy|5WMU}Jo@8V~ZQb)5XYrMJ`3SMoT=VO}N68uN^= zia0uak)QEJBHzH^pJP2)8pqdDc*}{m+MZ0Y>NsZgU%KQhE0&Yu*mL;O`^3lLR{dgo z`#`_D?y0%+je}pjad7e-_ptX?u($T|`j)Y4okR5lJH_WmTs8A=x(%FaHIA^|59v!s z?8E!Uz!mye`-z#J(0y{PvtqQKL$VkAN3vB8I3Kc0i`aNo%V9D0oVOa*IARLo*ZAUJ z4EJWP0P$_2OC&!IrZ*(lkwZtwk5RyEZ|(uJaibq9_O^*<6}(ffzv(vF#MZ-tIfT!( z7uG2G8&gd+d)o6OZmoBK)z{N=O8HRO5b63!+1pocdhQJyW4rM2*!@fn+@7bizT9#? zkV}j`=l(R$f0d)!S}&f?jPX5rp008))QUT8_H=Wow&By6f6= zVl3t(?kW4-dLCN8koWGNdWkGHFucbOHQwZhHD0T0e3jz%_x>8>DMcTBY46$I`hsuP zxTYMhiDyha9gfkJ=O-MK$2`849|gHUtvEd+BVMcQB%LqskrHuBWj~r8FY{@0UK6&w z^$yW<>zeB~$N$-4yV`^5-NJh+Cfc9zenlJ9VXHO0bWpL7N+ z)>!zI)$2zbE1@q+wBw31j=u8#RE`t1AIk3+@5|gK+su3q<#m>KT;w_^4$D4Iaq?`t z=dr>)aJ~G3zaO8t1tE9H4Bzl|Ikt*2dU`$Tdej-9g?Y{!(}9q$)% z4&YFX{VU|Vv3}c6vOk2~8*4`{7=36`4hiqg{T-{JLxf=uU(Rn5CS#8%cP3)YjN`(4 zkx$CC0mCgAKB;i2`d%mQU*R*^7y%C#aqH?k_%YVNvMvitd(mPxq3P!<{?K~O zCp#hNqLfo14%26QANNPTZTm34xku4vAm`BeVvYw{CCe=5%{=Yq3oydQtP&mXpF>IK7i*_&3E3`Vy) zb^3{t!-bCxyFz_)_P5AwQhz^e8}(KZ*ImfbRqsvB2iI7xdU4;%=auDvb$`J9$a|n77Yel%*+Hsb^>}nO4)71Q zRpNg-wed{kYzX5}@3lwY^|yUeEnH*Bc6d-Mj%EE({Vat&X*PZ6VMARBJUes5aL303BXN$GvpwDSqL_o(NAfzsr1#0+SI255)}r{X<}cJsy|=f74a)e>n0#<* z`%Z7h%kYdg-obNZ@_q67+PoS@@V+ylZ)Q5N1qW$sd=FE8CU5?5J*YJ~2H`mAS@#g2`^3hxB zV4yrk^r7W>BLB&6A}`x}A*4QccZ&B?VfsHaC0{|YcGY(*&(iEX#~uMoYd@EBru^rG zH@?vez0UElbLaUci#gWXoR63@(!Q^enc$wpDRkq{&fj_K%;))LZ};#IkGDf^%3pa- z^Sk8e*m+HJKatmB@9gz7)?)>}KaYLnGpxR^)QnB=EY@pa_o!r?b9P3K$7mO{uDx>{ zs$SAK8pBygvbE8Nt$iO@j?Xyso?G_&nEt48-Hqo+COJ%=EpgR~XRur& z*FTfj7?#rB2)u@1<5<^|d~{~lx_oN!#TD<3oma@xmTQ}GKl{DhJ`86V8^P~W)V?o% zyeBWwYu;mCQ^0nT72scsT}EFdwavymfgPRpjQwrNu)?HV)idP>)c5=vVzr9R6#3rh z*^GI0pXGP3$`~C6zX|81*(14u1?1O~UQcn^pc8G}tNR%Tq-O^iY4<^w8TUH<1*?0E z?_(Uturc`|uY2TVk^6>@QY=Y%Mv+S|Wx)vNNrSFGyK-&`QgY}^fYqNTWjXkZO z&a&-A;Z$(cgUx>fqvSb{^3E{K>V4uQ-6aPZT$nJU>=Yki~gYXMqh{c+}3_ERqjTz*=$T}HpkfU;;0Mp0&IaMMzb;K?-2t> z&ar4$+TRy1e4fgjkZ41eynp0`zmsz_aS!(<&z15Rw#S!ptYv)v6m#}$|MD*6^8JN=^RXwf z#jWyvFB6VE|4N>^=NKqn9{6>X*ING{^qd$wO}Nw?5~*LRd60my*PvnI(9hZZZ=cDZ$?=vDeF_$ldPKhK4%5|)$iCV#)gk8Sn8>0aP<$5il#!a0H7 z&i5^3D;Ptu+=5qR!T5WOkI3rsVvh^Q+HKDS^R?6*qjMNL&rTdr#ayP(Rr9$-gSr%UA;E*_$z|B!jB=wE6>Z<0#hb-Tk1~+im|vyw1VC9;bdL z%rm)YQ=8x6Tg!1o)&u`JJrw3_&FMk>LS2J+rB$;6mrR*w03Qo|Cqs<*-f?8Hcez){ z4Gr1+*RMl7W*07QwfFKT`ol3UOX?vLL8?c z3o4GmGAGLTbDFZxbk93ALVu|4fM;9XXL@J%2Y4;;o4hQ=7?GpfvEN6$m-}T?ep|*Y z30vxXIwx?bg*Ex`PTUAA0-qtdG4}uDTv@Kh%wfva@aqDua~bs#We{i4YNsuhDBH$4 zhC_X_YLwxwg1Q_F;&@RJrjJF>1>_YwRKO4Va8vGW#mV&TLP3j|lA< zbe#HK?;l-Y*Y?n{m2aUq_c6B7$j6F4l(?=Q`v-5h{o;7zk3-qi()EShN%ma80mZW_ zTgGE*&c|rqnaIgH4Sj*hKi_{gzHE;TKWE=8=P3A%+v>?KwD)rz8U5WW-v6b{?dUip z#XSypQVrF6wPl8-YWs{_1(AG$E(SpC=YBRr3w1tw~wXmu3_q5Y`z*btIR$4-(7v$xH`W{GF&}b#ih8vN&ZXv&fMg8 zM)sYU8(G#Z!9Vb)bPha;)V)p7*Xo&by96&;^2J-8tkpS{@9nYxuBtuN2YB9B!R`27 zeTtt)`7~^g7*DwRlSf`iFogHQlutO-TtrT`%rgnkEca-+CfF&49pqa_|2zNWp8SYC z!W)NBqus)eB8^;`jrNH-SEJL#yAhdAHu- z7k6-@V0Wsnemn!l9Z}ya{mDF?p5xcJQH}6g*msBY{gU6qvB_|B^74#-?pfI59$C;^ z2e%F_Z*+98XRM=}=$%H+mU8f)E$0<(KzMq_TuZM)IP!Fj`t9;RJaU__{4b7H)+Y5L zxFKH`e$`dD1;r(FdOtK;z;_Rd^&Oij8CBKhmrU-*vI%ho~Q}2 zYvVJh#r^${@xvLIUE?2$iv*uJHTt(V-@r+0pFe)spRyi!jnDBH-#nj(&(9^#4wj7{ zggk=TyESw{pTC{W@b{ITI7dznt`~HV(}M$D`+T~7Ir{T(<(+$6fBJExxE%AN_htTA zTk*)Eho<}N$0^yeSJ?eU-wx`&h+Wn)kN9RK>)^1!W*#mP|3LRBrY1R(>=BnYaETII z_Z*v4tLCu{$&hFdpaa?WjO#mg9<}Px_ZjaU@v7HY$9>G0{n@Og%ZUnO``+o9{SSt< z|5ZZ~#v7j8?weg_-WeD;d56~;RN3uHRMbNW{{sXcJ1{pW__v{(rdqo`8Y;e_C*yldx$aC*`#jQPRxF@(u zelDvYa^9gQum5t+r=Re3EB}Rh={(P#!{I&w^9`h$ovL?D7;o4IlC`X}`c}%%l6v?A zehAN-yPDz*#MqR{2x?5+_R`riEF+sV=6T^LMaf;Bd-5y&Tt=%+K+)E%$Kb0L$MG9Coem*BpP&ferg%V!u}$PGJv_ z11q1wCjQ0w$8d(whvnLUHJm@pZFBk?gfk!Qfj9i_e%?b~sh=ZkBdQjTeW-WGUnty%T|c>x!kGG{PKt9> znnMfWJl621VVk1azvNtC7 zNYowJLU7?H8Hf*QW_2lJrZv4=GcVWfnd+MG$2l&Puc*{7hFy*SL_LJJy$74+e`rjF z9W;qsLf($zQo?~|BeLe|KQI`HzhkJJO1RMCoJ2jM998>lNw|T&7R9@9O+2@ekEQaZ zW0%9B9`mF_&w(X;>DSAE!bVHxaWW7GS-QvyLhELgKPTM+EGFJZ{xnKi{jrwC9p8DtxIG4_=AAO8a^*;v4+T zr41L?#c`O|=41C|+wt9cefL9#y1A|CXY9U^Cw;KJKs*^+ZR!WLPz&NSH(wtz?$EDG zHTnNk4nVXOdu{`j`^)!xeg3e|oU4U?zMSDy>lelh4oN%`vPtoYOqrY{wwunR>-Fls zwNCf`CKGjB;e9JS6l)FRoSAI$oSN2tb;?WN%#lMhkIm%qgx3_Sgdv(zUx`^XKwPxoca!Sfn23qF@rAJ+ww>SFK6*9;1S->*3PVejw`COax&;DrR zzln9LpW%0SO?x3c$M>1P&sOA1{Yjtexc51O&M!_MCj3Y0*&TVz@h5$Zn8NN|3fQ{Lwby#29?xZ*xRFopvL^ZT+vY3AVJ4o3zcu7aS-yS3MfgbZ zCw%ukvGuI^b{j3#Fv~ae3T`;*&(!ZtZk2QNOv>gD@{cDUt;_4c=abeaiaq%u5l^zk{q)=?Q%@EW%BjGyM#|{*0>c8ua{qs2KKwlM%NwjtnA`nQ$IKG zi2A+bQ(GoyNc}SRtUs3LHd348*QMMj+w1XM;yal`uB35cYw4Wa>GPB8{uH$vcSqBT zeea>851mVjJYV!%3B7y0`uUlh$3ywn zwC3td`gii3!0=D!-ww#VxSGYjP*17Q>ys?E{+7mD zBAYVy6~uN&<>P{jTKq{#mxb6<8av-JKcf8XW$dfa6QhmbH!gEE^&E6< zj&Er%dM%Lhn_aIh&zrr$y_1{|x$YKMJ(!u$F~Pql-D0%@{=0Nws@2TA&{kjJ*Ja+& zn~hRuc`l*nC+p|xGwaF8zBbHYeU_{bt>^59XC~jQpZC$3;voCutAYF+rUQBJ!tYBj z9{e!Y6Z(Vq5*Q9s{!ew?Y5Lr;n`D-qDUN51cQmi`jI8unTqCO$HGBJN z_5=SvPU8ctURJ@+*cd%j$V_6yiy;gUF? z{H?l2(l6^j=_%;?z-5Q!ABO&_#_dh~qw;-QZT+S=ovz4%v0P8if&B1bsdC@NIE402 z=F%$fALg9=$V2s-$vuA-hwguz?*BMjtZ=R5F!?#;AL_FuJr7x|b0wT(T)$wKqV^!_ ziR6#?$^P;E7=8bJ^|AUf`TqWQ^`_=rIF@7Yt7e07l;90>{}gMtSP$Y(%K^8m??%G%R>PREe2JB9T<+&Q zyq=#8??_C;WF+hDvNo={#dOPcN0ugC<8%GjxL}M2AYhY17AQwpF)!t!!6|=EZ1uk8 zlQlV6pKW0x{<)t^SVw$oF{eYZP~Sga2l8`;TI8^fW&TKvxAE-XR1BO)vd$@3FVkzmojA zF_>Z*Oz8VA#A0J_s8qj=pI33(P%9n$JM!;>`-r2D)-O}uZQ85$Oqb>4GELDFYE^bn zxv#yaQ*qA7yO}!KCpRZ>yt{7nu_cW46Td*%Q{)_b-kz^d~3a>Go;Tikr-QUKm)4J~_{V^N&4}Xuo0`e)< zFB}eBmzn+Pw4X!Y1K&qm-v3tpBNvDbUBEva{O*2#-jtzcK7wN_uSM={Qlu!X6gO=iKkAy&dh6?d-Yo6dE$rjy&LoZa_DF&@ytj2 z7dek@JiS-Vf$g2et~Ip&k|g6tc(gqhX7d9C+Cwd)Lb&;=n<#$J{4uFKSxj zdk1-!elKwg*Cgy}HZErhtn;n3y7*XvZ1h|n=gui}aKQ)S(Q$h{#)S-v!)<*C$6W3!5OJ^LG?Qi8 zJJOA+{VuVR@w`@g^)a6D;Hx%!HHz9?gYjrJ(y9Yc!7%4}<>ll8bTbepP=qkpQV$ag4i5DdL zkI<|5k8h54i0d1c#Ya9Zyk)uI)|+81=#ykKWZ8Mg-)z44-+4Y{1@t)5k^jp63Kut#4UB7}h%8%k^Q~8OFbX z4>9n%8U`u(c2 zhx97rRj+5+4CIQCZ)f>3+sx(Q;_K!AKi8(=qwf8RpUY&qYD*^MxYefp-QrNm2lsq& zc4K|#vGWe8d074sxmYK3g57g2+FF(WjT~Aycj0t}do1L&m!Ai2CFvD^o@^WSTHM*& zGaIex&!FF>*+8nlM8^_G((mF0On$WT{>Ezpho|hxSLsSPH&^I^42KxcTwF$v-p!T% z8}Ii<-I&YZ@?P|GO#REuA5zu&B{|nx=U41+*@FcyU68SL4y5K|{7Nm4ao9vG6u2!W zZG=$o5plNi2u`fW+9`fc{d|7sb0j`v=TpUZXtB!U{hn%mkZBjThfb!c;S9a=SU1%T zmw8=qG^T!b%8!0f?H#qQaZIY2l3wM0;W}_%!UATO4vO64S<8KmHoDfnTJPzIJCcp> z9Fb#ehuS8rau*95Gu0DkU0*%FUJI{jaC>=wZb3C!#3!w8i#?=V<)E(;-m0D(eRZw} z^ZMET^4eCbF*)JB$nPH~qu~@Xuj1eLItkXF_v1ddaV@mhoNsH+ah>YLu202*)5C{G z?+v$+?fb#6on(aZ+PfY$T|_^#;ICAij{N%PvDVEnC1)8tNdN4)d-AY2U-a|F4rRQL zN7Q5H^2BFUixG2!*Uc~HK3bmX`-OZRa-1KBwwClu(q6;I z06(61eaKyrPuw{V-Tz(rSZ&;uZ_{Jm|1~}|_wTx2{rZTypMm8dw(B7F|47%wxe}j{ z`Mp&8F%rkf$;t?9uXyOfg}9&TW%(h>Gu5~dM}@#gsUN6nCIS`)cP5`PKZkvu>Y;v$iOqh^`Qvc)%)@U?9(X*AhTHzp^G07)n{Rk;)yH{!TKR`1%je)l zc)riQ3c=pq9~Ju*nLxg{>WARK3g`CXN7*yx zwZOWk;x}fy_2=aiEO5DefT3pDZ3eh&snr@Qm+t&)^6{%D#qeZfxfg1nJy*tbI?o~p z33*P9zx#k6x5~AmcRYCY)@@$Jr%GFJE6RYDGgxAy_s-$lIpVuvT?gVVQ(hc$Bd&Gw zxA++j`9-r09;BkTcFfDXtaxAI_soWf7$-iXjJJ~G;qf~1mBmF8d|AoA#JRK>bpJEG zloB5d`}T^so$Wi~6s>X2{7&=przWj;^44+uXg zSef~vk5}6BO&<{QpM074{=fZYpHQw5G@tN)wQU%24fCANkNcP{rWW!xQ*18ym0Rny z6#s0&Rn|`>#9-?^9&18e4tl(6&uh#)7kDqkPy>#RV|5Icu7{6gd)D#nq|Y#7C}e(+ z@4n8le`75_8@-!ST~nSLA><5I{D9df zHHnL~CfnffIn}-5mx}&8^i5On<}1p$$siqf<2h|eBR94|8mhg!7m#yk@97d zyz;$Skfs?*RZ~?spMi+a#dr#C6HSk;DD-3HHbd_^g#Ium+*Yk(;e!@7;k6Pt6 z`Tmp+O}RfIUM`;xfA@9pza6h^Kb-J4`yU@+YaXk`fyApsyimC`nK$i)9JH9%D_InK zFxubNgssHQZ9V@|Z+qET&NF(jLGCW=mVZyVTb#KaYUiklAx|G}rnQ=!2HlWSA2!rh5G9Y`jA+DvG|#f zjJK1zO1KTFL$|ZWv*E=a@SRhx8^03M9n;GmKVZr+D{z=|CdxkSFS1VpCT0&rp5l<( z9P2JBzi`Ss7Pg6cJ=l!!?@*r{YR@?%_!Hp~SiJcAH|zz=P2P+5+>lQ@-79fFu=b7X z!r4rE$n0br`{yNb5~VR0bt3o&S}~A(sIu|)PI|e1OLfnV+rR_jouE%aScf#e@cZ-$ zIjRXKInMj$er?VGy>wE~P2~#_Rh7>E4f9Q=41sFD0+1#{@ziVS(@b@6^=v$c3d& zW{TL__{R`?T0ZjOf%!+=C$2gYI1ac!aa?@!Hv`sIK90llfjADX?>ufMe?U+qSg@07b>MSz8&6~9BX37=q2NosQ6%!P59<}$DbW@>RocKe#t+JJT(54g_tjt z`d*ei49CI_^e(2i#rfC8h5Ht6Lw~oHv50@kbkMu+8tVv(u~~nN`0lVdpZ|v#J%sxMSLpcg4r4( z7dXRlO_7UP4|+Z?*vN4&we)dsXFK=tjhtWnx5Oi7wwFWwf8ZeV{ovdn1^>&JS>g_5 zzKq5WFAR8(eU)>kI2+pg(w#B4IbvA;9_&nChjfPEnlo$}&Y9L(drdgO{ohqx_k(!Z z3Y`W%k9@?wPtj4x?Pw=un{J|(JABX2h0X*03Z~DwUs>-|et-VQspC-j_JV)!N%j@AnP9WVqOIdLzzyucqN+4oF-54zkwZ(<_+7|M0B zIDBDOfDLbY=1+>_06(i&yY9D7ZZtmiIn`(PPN?rWg%hI>R*wCor9<((5a%y^iI><0 zvFCU_Zo{FBHDJe!xg+|lT703(y&agG(K{(G{`6n~wjRmn7RIT*yUZULmRR&7Ivu+( zIDXT~{auj-urg`6h*JYW-Y zQ%WDzNaxdZd6+MoZ_eq*^RI40{${%N^YbNss5v;%sjK(7_p=?iW96sjY|Ey#T-ul) zTjb6cXDRz}zFgdeel}rGMqc8CzqJRf5BU1!cG9b^PeNa+1LVufQH595@uMsLLv9oJ zV2(cOeQ=t%52H?5$g;194Xy5{=O#T>>Q3_mmAI(1EnZ~P2mKskU~&BmxtHv4lQAI< zq4>G*U~!%A7prkJ+^W1@KTjs7SpV?d^vs<(<%7O#!GX2G*|hz(czRXEE#h|@@6bH= zB_CW~H_1o)_eGDGa}nmm_h>#_>GR+xPrn!WE&eyhT;XTc z5n)fXtgZ3Zcui0t1AHFxz7tL<)|MWJaFY&R++Pv(3eUgT{y2XwlM>^|w<$7A5<#1NxJh>iC`!LzdcEyiPg3l_+Y}*@++@j*U^|^FBuiO*eGujyVD(1hWI1|0JitqEj#r*PqZa?EAvfeB1 z|A_nZbov7Q^*pkg1pNEEaJ87eucx-P^OeV?K)tPbk-Y@Zr>g0S*IMqJ@{JD3 zqZ^{Ps8_Y;2$z*UXyxPY&WN9*zdBf&+5m$UXCdJXVxsw)Qf?;9YWZ^XU&kglxe##S zM2(f70qIZt7rcwtvC!LYlYCr@RRtgFAoJ*3FRH`D%Yy7LzfZh!0sraT$ond6c??rL zA=d-r8b|MtAHJ7zRQZ0w3Y-Py0kSS|L6&l@iEGD4aIBbHpbQr0_gdHaAFky!Y zJ51PN!VVL5n6Sfy9VYBBVTTDjOxR(<4ik2mu)~BMChRa_hY34O*kQsB6Ly%e!-O3s z>@Z=62|G;KVZsg*c9^ikgdHaAFky!YJ51PN!VVL5n6Sfy9VYBBVTTDjOxR(<4ik2m zu)~BMChRa_hY34O*kQsB6Ly%e!-O3s>@Z=62|G;KVZsg*c9^ikgdHaAFky!YJ51PN z!VVL5n6Sfy9VYBBVTTDjOxR(<4ik2mu)~BMChRa_hY34O*kQsB6Ly%e!-O3s>@Z=6 z2|G;KVZsg*c9^ikgdHaAFky!YJ51PN!VVL5n6Sfy9VYBBVTTDjOxR(<4ik2mu)~BM zChRa_hY34O*kQsB6Ly%e!-O3s>@Z=62|G;KVZsg*c9^ikgdHaAFky!YJ51PN!VVL5 zn6Sfy9VYBBVTTDjOxR(<4ik2mu)~BMChRa_hY34O*kQsB6Ly%e!-O3s>@Z=62|G;K zVZsg*c9^ikgdHaAFky!YJ51PN!VVL5n6Sfy9VYBBVTTDjOxR(<4ik2mu)~BMChRa_ zhY34O*kQsB6Ly%e!-O3s>@Z=62|G;KVZsg*c9^ikgdHaAFky!YJ51PN!VVL5n6Sfy z9VYBBVTTDjO!y`yyj)-Gzn;ttUJj=RJ15igz16GR%hj9S|M~C#{eS)2zy1Cn|M4Hc z|LuSOCqMk{!{7en_wa{rk2j|em$x_n?fQ23I6nK&znwkb-F|<#|L=eMfBx;?&VC$^ z|J%R&C;uaS@VEc-Z;kJ8=|8^zJIy<>LJ{^6%9lw0L9FNl_|9A)& z4A1VqpPe2*oR#o+~w~0``OI{pFZ9U&%RyW zoDKhW^71!+JboNM#2XdEI=#3Y5BbV}k2i>as2}jh$<^8E!~gJGe*J!XclQ0^CC$)3 z{(XFVJUkozBdF?{&# zczj=edVcosKl7Y22Y>s1_VD=q=Kn3mT6^2Zj_6+@(gMyFu_IDeVr`HQp<=#l%h8J> zi4*~ONt4&&%i=?#fc@`1LrSvZb-RlN+8Pink(YC4&YYQhh6f+xPr`2pTfhBsMB$H| z?qk?T^;5L%t@g(I_kRbojUhRfv2&Nh3YD-!btLX`8&g$``QV8)dZDM| z+P92H$GYS9alw7b)iCepC-RkQL(`iEs>9M?NmwDI~zk2PP0y6T8tGVYOoH>y}WnprrrRTzld#!?5& zSL5Vnq#U0;`Xb7;r^OUYaWj)YTAIPUc-ynI>2a;2nj4mwkG3_9^{>6qNzKac!*}U2 zqh}uGC1dfn!ZX(k>z6@e# zB=cYJI;|#v9$Oe2l`fN)P;oCUN%kbMw_N-GMuZP@4JpO1v z_H!>WCoCCmkl$V~iw-slUDcVeF-52`mo&_E>7hx5}PJ-I_;F8X!-;$Pxt@Ek1yMk*AGc zu1g(jLie7zIRYmexpAy1p1pkLL9+U&YvMC@S}#B4%rW1oAKT!JEtL~b+75ti;SqPf zULU#pVD5d@jM&%A#^Xm`bZgT6KBx0beEU)(bpv3?QI-56}rm_`1nP7c^!NOM&*v`>u%K6e`#Ct2DOl) zw|vl7IH?!^Z^c&pc~$W7k5$1t;m42t(f(r{JXL%h{P=+r>mU`rryHL7+2-O0+Wad^ z-}Z5SrQcJCk?*PS4`CUc#j!xgsqi?df^{RfsV|gKAjnx(7UkN_4>$6-3VAAQBF-Wq zUuQM>*nVhFiNcw&r;$&@tej*m($CoT}|Ju;3PSyy7J8c67bsLYPOq zXf3hK4}`>R1P}i*pFeO|Dl_4Mm#uR}9xz;FLK*~qA!H9igM&&qIhQWT&U*@V56IsE z$o}g-($@i!2%y)H6Msg|tO9|259`Tjwd~4+x20cC16k7CGtD~0N>xVki0*%fY!Uuz--e#@)jw85&Anu6Rdv~ z&M0xg`t05D_9|#_nTqDTyLXN&XYK74_y4MBZvKpD9zrM_MRjdk;~j*0?r z-9dCkYy?}oE76(TJ3a252=Vb(2o(})7+-Tw$HDDOF+}FDe;Z$sFobNwLix$*i=4pF(&wXw)Fxn}8^bgTGuRe>^?Z8Vjxuy;uCvoF@{h*#87jIm{al-|1rP~pPc2m_j;ZNEq*WRK_Va9T1ZcF z)ps!Dh|hI7>vBed_J-%3|B4?Q(iQ`g5rg|X46oqJbvRR|i^b@GH84dS;Cs&lUwv%~ zQ6F}-gu!bfj%U+&!*$e_y+m%hb@)zPA13>{?71p9+&6oUG(6;mxP-oN2VBRf4b+Z` zoP*OXKOm|-HKt*f2G~khTCRUxh=z*#L0wJ@$MR_?-RB~%YzZ}tArLj3`)U}@RRuh9 zV)TPP4bI57=&M82)RgL>@U&IvCuW1%Y4-)6GSutJv2@D0gaHs3cDcR<-%&G!f8}b^ z9(viHi+g<1yNYS%&K-qWR~LwFwAtr(6@Hsv(g26r`x5SJDrWsj<*FtPt_^Dj=$Vtu z5W}*?l#7dbuTgQT?vEqzW=p0)j=F+ldR)GJCwoSlU!e; zM^N8rUq--Z>OEY>GsOS#&IL~TwKAE_ziVrZ_=cR7U9Fku!FbPxz1p6E+V(K;(SB54-bjQU zF$O 2)) { + throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3') + } +}(jQuery); + +/* ======================================================================== + * Bootstrap: transition.js v3.3.6 + * http://getbootstrap.com/javascript/#transitions + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) + // ============================================================ + + function transitionEnd() { + var el = document.createElement('bootstrap') + + var transEndEventNames = { + WebkitTransition : 'webkitTransitionEnd', + MozTransition : 'transitionend', + OTransition : 'oTransitionEnd otransitionend', + transition : 'transitionend' + } + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return { end: transEndEventNames[name] } + } + } + + return false // explicit for ie8 ( ._.) + } + + // http://blog.alexmaccaw.com/css-transitions + $.fn.emulateTransitionEnd = function (duration) { + var called = false + var $el = this + $(this).one('bsTransitionEnd', function () { called = true }) + var callback = function () { if (!called) $($el).trigger($.support.transition.end) } + setTimeout(callback, duration) + return this + } + + $(function () { + $.support.transition = transitionEnd() + + if (!$.support.transition) return + + $.event.special.bsTransitionEnd = { + bindType: $.support.transition.end, + delegateType: $.support.transition.end, + handle: function (e) { + if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) + } + } + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: alert.js v3.3.6 + * http://getbootstrap.com/javascript/#alerts + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // ALERT CLASS DEFINITION + // ====================== + + var dismiss = '[data-dismiss="alert"]' + var Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.VERSION = '3.3.6' + + Alert.TRANSITION_DURATION = 150 + + Alert.prototype.close = function (e) { + var $this = $(this) + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = $(selector) + + if (e) e.preventDefault() + + if (!$parent.length) { + $parent = $this.closest('.alert') + } + + $parent.trigger(e = $.Event('close.bs.alert')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + // detach from parent, fire event then clean up data + $parent.detach().trigger('closed.bs.alert').remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent + .one('bsTransitionEnd', removeElement) + .emulateTransitionEnd(Alert.TRANSITION_DURATION) : + removeElement() + } + + + // ALERT PLUGIN DEFINITION + // ======================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.alert') + + if (!data) $this.data('bs.alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + var old = $.fn.alert + + $.fn.alert = Plugin + $.fn.alert.Constructor = Alert + + + // ALERT NO CONFLICT + // ================= + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + // ALERT DATA-API + // ============== + + $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: button.js v3.3.6 + * http://getbootstrap.com/javascript/#buttons + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // BUTTON PUBLIC CLASS DEFINITION + // ============================== + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Button.DEFAULTS, options) + this.isLoading = false + } + + Button.VERSION = '3.3.6' + + Button.DEFAULTS = { + loadingText: 'loading...' + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + var $el = this.$element + var val = $el.is('input') ? 'val' : 'html' + var data = $el.data() + + state += 'Text' + + if (data.resetText == null) $el.data('resetText', $el[val]()) + + // push to event loop to allow forms to submit + setTimeout($.proxy(function () { + $el[val](data[state] == null ? this.options[state] : data[state]) + + if (state == 'loadingText') { + this.isLoading = true + $el.addClass(d).attr(d, d) + } else if (this.isLoading) { + this.isLoading = false + $el.removeClass(d).removeAttr(d) + } + }, this), 0) + } + + Button.prototype.toggle = function () { + var changed = true + var $parent = this.$element.closest('[data-toggle="buttons"]') + + if ($parent.length) { + var $input = this.$element.find('input') + if ($input.prop('type') == 'radio') { + if ($input.prop('checked')) changed = false + $parent.find('.active').removeClass('active') + this.$element.addClass('active') + } else if ($input.prop('type') == 'checkbox') { + if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false + this.$element.toggleClass('active') + } + $input.prop('checked', this.$element.hasClass('active')) + if (changed) $input.trigger('change') + } else { + this.$element.attr('aria-pressed', !this.$element.hasClass('active')) + this.$element.toggleClass('active') + } + } + + + // BUTTON PLUGIN DEFINITION + // ======================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.button') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.button', (data = new Button(this, options))) + + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + var old = $.fn.button + + $.fn.button = Plugin + $.fn.button.Constructor = Button + + + // BUTTON NO CONFLICT + // ================== + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + // BUTTON DATA-API + // =============== + + $(document) + .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + Plugin.call($btn, 'toggle') + if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault() + }) + .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { + $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: carousel.js v3.3.6 + * http://getbootstrap.com/javascript/#carousel + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // CAROUSEL CLASS DEFINITION + // ========================= + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.paused = null + this.sliding = null + this.interval = null + this.$active = null + this.$items = null + + this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) + + this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element + .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) + .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) + } + + Carousel.VERSION = '3.3.6' + + Carousel.TRANSITION_DURATION = 600 + + Carousel.DEFAULTS = { + interval: 5000, + pause: 'hover', + wrap: true, + keyboard: true + } + + Carousel.prototype.keydown = function (e) { + if (/input|textarea/i.test(e.target.tagName)) return + switch (e.which) { + case 37: this.prev(); break + case 39: this.next(); break + default: return + } + + e.preventDefault() + } + + Carousel.prototype.cycle = function (e) { + e || (this.paused = false) + + this.interval && clearInterval(this.interval) + + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + + return this + } + + Carousel.prototype.getItemIndex = function (item) { + this.$items = item.parent().children('.item') + return this.$items.index(item || this.$active) + } + + Carousel.prototype.getItemForDirection = function (direction, active) { + var activeIndex = this.getItemIndex(active) + var willWrap = (direction == 'prev' && activeIndex === 0) + || (direction == 'next' && activeIndex == (this.$items.length - 1)) + if (willWrap && !this.options.wrap) return active + var delta = direction == 'prev' ? -1 : 1 + var itemIndex = (activeIndex + delta) % this.$items.length + return this.$items.eq(itemIndex) + } + + Carousel.prototype.to = function (pos) { + var that = this + var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" + if (activeIndex == pos) return this.pause().cycle() + + return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) + } + + Carousel.prototype.pause = function (e) { + e || (this.paused = true) + + if (this.$element.find('.next, .prev').length && $.support.transition) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + + this.interval = clearInterval(this.interval) + + return this + } + + Carousel.prototype.next = function () { + if (this.sliding) return + return this.slide('next') + } + + Carousel.prototype.prev = function () { + if (this.sliding) return + return this.slide('prev') + } + + Carousel.prototype.slide = function (type, next) { + var $active = this.$element.find('.item.active') + var $next = next || this.getItemForDirection(type, $active) + var isCycling = this.interval + var direction = type == 'next' ? 'left' : 'right' + var that = this + + if ($next.hasClass('active')) return (this.sliding = false) + + var relatedTarget = $next[0] + var slideEvent = $.Event('slide.bs.carousel', { + relatedTarget: relatedTarget, + direction: direction + }) + this.$element.trigger(slideEvent) + if (slideEvent.isDefaultPrevented()) return + + this.sliding = true + + isCycling && this.pause() + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) + $nextIndicator && $nextIndicator.addClass('active') + } + + var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" + if ($.support.transition && this.$element.hasClass('slide')) { + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + $active + .one('bsTransitionEnd', function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { + that.$element.trigger(slidEvent) + }, 0) + }) + .emulateTransitionEnd(Carousel.TRANSITION_DURATION) + } else { + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger(slidEvent) + } + + isCycling && this.cycle() + + return this + } + + + // CAROUSEL PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.carousel') + var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) + var action = typeof option == 'string' ? option : options.slide + + if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.pause().cycle() + }) + } + + var old = $.fn.carousel + + $.fn.carousel = Plugin + $.fn.carousel.Constructor = Carousel + + + // CAROUSEL NO CONFLICT + // ==================== + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + + // CAROUSEL DATA-API + // ================= + + var clickHandler = function (e) { + var href + var $this = $(this) + var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 + if (!$target.hasClass('carousel')) return + var options = $.extend({}, $target.data(), $this.data()) + var slideIndex = $this.attr('data-slide-to') + if (slideIndex) options.interval = false + + Plugin.call($target, options) + + if (slideIndex) { + $target.data('bs.carousel').to(slideIndex) + } + + e.preventDefault() + } + + $(document) + .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) + .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) + + $(window).on('load', function () { + $('[data-ride="carousel"]').each(function () { + var $carousel = $(this) + Plugin.call($carousel, $carousel.data()) + }) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: collapse.js v3.3.6 + * http://getbootstrap.com/javascript/#collapse + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // COLLAPSE PUBLIC CLASS DEFINITION + // ================================ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, Collapse.DEFAULTS, options) + this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + + '[data-toggle="collapse"][data-target="#' + element.id + '"]') + this.transitioning = null + + if (this.options.parent) { + this.$parent = this.getParent() + } else { + this.addAriaAndCollapsedClass(this.$element, this.$trigger) + } + + if (this.options.toggle) this.toggle() + } + + Collapse.VERSION = '3.3.6' + + Collapse.TRANSITION_DURATION = 350 + + Collapse.DEFAULTS = { + toggle: true + } + + Collapse.prototype.dimension = function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + Collapse.prototype.show = function () { + if (this.transitioning || this.$element.hasClass('in')) return + + var activesData + var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') + + if (actives && actives.length) { + activesData = actives.data('bs.collapse') + if (activesData && activesData.transitioning) return + } + + var startEvent = $.Event('show.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + if (actives && actives.length) { + Plugin.call(actives, 'hide') + activesData || actives.data('bs.collapse', null) + } + + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + .addClass('collapsing')[dimension](0) + .attr('aria-expanded', true) + + this.$trigger + .removeClass('collapsed') + .attr('aria-expanded', true) + + this.transitioning = 1 + + var complete = function () { + this.$element + .removeClass('collapsing') + .addClass('collapse in')[dimension]('') + this.transitioning = 0 + this.$element + .trigger('shown.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + var scrollSize = $.camelCase(['scroll', dimension].join('-')) + + this.$element + .one('bsTransitionEnd', $.proxy(complete, this)) + .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) + } + + Collapse.prototype.hide = function () { + if (this.transitioning || !this.$element.hasClass('in')) return + + var startEvent = $.Event('hide.bs.collapse') + this.$element.trigger(startEvent) + if (startEvent.isDefaultPrevented()) return + + var dimension = this.dimension() + + this.$element[dimension](this.$element[dimension]())[0].offsetHeight + + this.$element + .addClass('collapsing') + .removeClass('collapse in') + .attr('aria-expanded', false) + + this.$trigger + .addClass('collapsed') + .attr('aria-expanded', false) + + this.transitioning = 1 + + var complete = function () { + this.transitioning = 0 + this.$element + .removeClass('collapsing') + .addClass('collapse') + .trigger('hidden.bs.collapse') + } + + if (!$.support.transition) return complete.call(this) + + this.$element + [dimension](0) + .one('bsTransitionEnd', $.proxy(complete, this)) + .emulateTransitionEnd(Collapse.TRANSITION_DURATION) + } + + Collapse.prototype.toggle = function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + Collapse.prototype.getParent = function () { + return $(this.options.parent) + .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') + .each($.proxy(function (i, element) { + var $element = $(element) + this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) + }, this)) + .end() + } + + Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { + var isOpen = $element.hasClass('in') + + $element.attr('aria-expanded', isOpen) + $trigger + .toggleClass('collapsed', !isOpen) + .attr('aria-expanded', isOpen) + } + + function getTargetFromTrigger($trigger) { + var href + var target = $trigger.attr('data-target') + || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 + + return $(target) + } + + + // COLLAPSE PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.collapse') + var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false + if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.collapse + + $.fn.collapse = Plugin + $.fn.collapse.Constructor = Collapse + + + // COLLAPSE NO CONFLICT + // ==================== + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + // COLLAPSE DATA-API + // ================= + + $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { + var $this = $(this) + + if (!$this.attr('data-target')) e.preventDefault() + + var $target = getTargetFromTrigger($this) + var data = $target.data('bs.collapse') + var option = data ? 'toggle' : $this.data() + + Plugin.call($target, option) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: dropdown.js v3.3.6 + * http://getbootstrap.com/javascript/#dropdowns + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // DROPDOWN CLASS DEFINITION + // ========================= + + var backdrop = '.dropdown-backdrop' + var toggle = '[data-toggle="dropdown"]' + var Dropdown = function (element) { + $(element).on('click.bs.dropdown', this.toggle) + } + + Dropdown.VERSION = '3.3.6' + + function getParent($this) { + var selector = $this.attr('data-target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + var $parent = selector && $(selector) + + return $parent && $parent.length ? $parent : $this.parent() + } + + function clearMenus(e) { + if (e && e.which === 3) return + $(backdrop).remove() + $(toggle).each(function () { + var $this = $(this) + var $parent = getParent($this) + var relatedTarget = { relatedTarget: this } + + if (!$parent.hasClass('open')) return + + if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return + + $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) + + if (e.isDefaultPrevented()) return + + $this.attr('aria-expanded', 'false') + $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) + }) + } + + Dropdown.prototype.toggle = function (e) { + var $this = $(this) + + if ($this.is('.disabled, :disabled')) return + + var $parent = getParent($this) + var isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { + // if mobile we use a backdrop because click events don't delegate + $(document.createElement('div')) + .addClass('dropdown-backdrop') + .insertAfter($(this)) + .on('click', clearMenus) + } + + var relatedTarget = { relatedTarget: this } + $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) + + if (e.isDefaultPrevented()) return + + $this + .trigger('focus') + .attr('aria-expanded', 'true') + + $parent + .toggleClass('open') + .trigger($.Event('shown.bs.dropdown', relatedTarget)) + } + + return false + } + + Dropdown.prototype.keydown = function (e) { + if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return + + var $this = $(this) + + e.preventDefault() + e.stopPropagation() + + if ($this.is('.disabled, :disabled')) return + + var $parent = getParent($this) + var isActive = $parent.hasClass('open') + + if (!isActive && e.which != 27 || isActive && e.which == 27) { + if (e.which == 27) $parent.find(toggle).trigger('focus') + return $this.trigger('click') + } + + var desc = ' li:not(.disabled):visible a' + var $items = $parent.find('.dropdown-menu' + desc) + + if (!$items.length) return + + var index = $items.index(e.target) + + if (e.which == 38 && index > 0) index-- // up + if (e.which == 40 && index < $items.length - 1) index++ // down + if (!~index) index = 0 + + $items.eq(index).trigger('focus') + } + + + // DROPDOWN PLUGIN DEFINITION + // ========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.dropdown') + + if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + var old = $.fn.dropdown + + $.fn.dropdown = Plugin + $.fn.dropdown.Constructor = Dropdown + + + // DROPDOWN NO CONFLICT + // ==================== + + $.fn.dropdown.noConflict = function () { + $.fn.dropdown = old + return this + } + + + // APPLY TO STANDARD DROPDOWN ELEMENTS + // =================================== + + $(document) + .on('click.bs.dropdown.data-api', clearMenus) + .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) + .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) + .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) + .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: modal.js v3.3.6 + * http://getbootstrap.com/javascript/#modals + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // MODAL CLASS DEFINITION + // ====================== + + var Modal = function (element, options) { + this.options = options + this.$body = $(document.body) + this.$element = $(element) + this.$dialog = this.$element.find('.modal-dialog') + this.$backdrop = null + this.isShown = null + this.originalBodyPad = null + this.scrollbarWidth = 0 + this.ignoreBackdropClick = false + + if (this.options.remote) { + this.$element + .find('.modal-content') + .load(this.options.remote, $.proxy(function () { + this.$element.trigger('loaded.bs.modal') + }, this)) + } + } + + Modal.VERSION = '3.3.6' + + Modal.TRANSITION_DURATION = 300 + Modal.BACKDROP_TRANSITION_DURATION = 150 + + Modal.DEFAULTS = { + backdrop: true, + keyboard: true, + show: true + } + + Modal.prototype.toggle = function (_relatedTarget) { + return this.isShown ? this.hide() : this.show(_relatedTarget) + } + + Modal.prototype.show = function (_relatedTarget) { + var that = this + var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + this.isShown = true + + this.checkScrollbar() + this.setScrollbar() + this.$body.addClass('modal-open') + + this.escape() + this.resize() + + this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) + + this.$dialog.on('mousedown.dismiss.bs.modal', function () { + that.$element.one('mouseup.dismiss.bs.modal', function (e) { + if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true + }) + }) + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(that.$body) // don't move modals dom position + } + + that.$element + .show() + .scrollTop(0) + + that.adjustDialog() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + that.enforceFocus() + + var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) + + transition ? + that.$dialog // wait for modal to slide in + .one('bsTransitionEnd', function () { + that.$element.trigger('focus').trigger(e) + }) + .emulateTransitionEnd(Modal.TRANSITION_DURATION) : + that.$element.trigger('focus').trigger(e) + }) + } + + Modal.prototype.hide = function (e) { + if (e) e.preventDefault() + + e = $.Event('hide.bs.modal') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + this.escape() + this.resize() + + $(document).off('focusin.bs.modal') + + this.$element + .removeClass('in') + .off('click.dismiss.bs.modal') + .off('mouseup.dismiss.bs.modal') + + this.$dialog.off('mousedown.dismiss.bs.modal') + + $.support.transition && this.$element.hasClass('fade') ? + this.$element + .one('bsTransitionEnd', $.proxy(this.hideModal, this)) + .emulateTransitionEnd(Modal.TRANSITION_DURATION) : + this.hideModal() + } + + Modal.prototype.enforceFocus = function () { + $(document) + .off('focusin.bs.modal') // guard against infinite focus loop + .on('focusin.bs.modal', $.proxy(function (e) { + if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { + this.$element.trigger('focus') + } + }, this)) + } + + Modal.prototype.escape = function () { + if (this.isShown && this.options.keyboard) { + this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { + e.which == 27 && this.hide() + }, this)) + } else if (!this.isShown) { + this.$element.off('keydown.dismiss.bs.modal') + } + } + + Modal.prototype.resize = function () { + if (this.isShown) { + $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) + } else { + $(window).off('resize.bs.modal') + } + } + + Modal.prototype.hideModal = function () { + var that = this + this.$element.hide() + this.backdrop(function () { + that.$body.removeClass('modal-open') + that.resetAdjustments() + that.resetScrollbar() + that.$element.trigger('hidden.bs.modal') + }) + } + + Modal.prototype.removeBackdrop = function () { + this.$backdrop && this.$backdrop.remove() + this.$backdrop = null + } + + Modal.prototype.backdrop = function (callback) { + var that = this + var animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $(document.createElement('div')) + .addClass('modal-backdrop ' + animate) + .appendTo(this.$body) + + this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { + if (this.ignoreBackdropClick) { + this.ignoreBackdropClick = false + return + } + if (e.target !== e.currentTarget) return + this.options.backdrop == 'static' + ? this.$element[0].focus() + : this.hide() + }, this)) + + if (doAnimate) this.$backdrop[0].offsetWidth // force reflow + + this.$backdrop.addClass('in') + + if (!callback) return + + doAnimate ? + this.$backdrop + .one('bsTransitionEnd', callback) + .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : + callback() + + } else if (!this.isShown && this.$backdrop) { + this.$backdrop.removeClass('in') + + var callbackRemove = function () { + that.removeBackdrop() + callback && callback() + } + $.support.transition && this.$element.hasClass('fade') ? + this.$backdrop + .one('bsTransitionEnd', callbackRemove) + .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : + callbackRemove() + + } else if (callback) { + callback() + } + } + + // these following methods are used to handle overflowing modals + + Modal.prototype.handleUpdate = function () { + this.adjustDialog() + } + + Modal.prototype.adjustDialog = function () { + var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight + + this.$element.css({ + paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', + paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' + }) + } + + Modal.prototype.resetAdjustments = function () { + this.$element.css({ + paddingLeft: '', + paddingRight: '' + }) + } + + Modal.prototype.checkScrollbar = function () { + var fullWindowWidth = window.innerWidth + if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 + var documentElementRect = document.documentElement.getBoundingClientRect() + fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) + } + this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth + this.scrollbarWidth = this.measureScrollbar() + } + + Modal.prototype.setScrollbar = function () { + var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) + this.originalBodyPad = document.body.style.paddingRight || '' + if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) + } + + Modal.prototype.resetScrollbar = function () { + this.$body.css('padding-right', this.originalBodyPad) + } + + Modal.prototype.measureScrollbar = function () { // thx walsh + var scrollDiv = document.createElement('div') + scrollDiv.className = 'modal-scrollbar-measure' + this.$body.append(scrollDiv) + var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth + this.$body[0].removeChild(scrollDiv) + return scrollbarWidth + } + + + // MODAL PLUGIN DEFINITION + // ======================= + + function Plugin(option, _relatedTarget) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.modal') + var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) + + if (!data) $this.data('bs.modal', (data = new Modal(this, options))) + if (typeof option == 'string') data[option](_relatedTarget) + else if (options.show) data.show(_relatedTarget) + }) + } + + var old = $.fn.modal + + $.fn.modal = Plugin + $.fn.modal.Constructor = Modal + + + // MODAL NO CONFLICT + // ================= + + $.fn.modal.noConflict = function () { + $.fn.modal = old + return this + } + + + // MODAL DATA-API + // ============== + + $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { + var $this = $(this) + var href = $this.attr('href') + var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 + var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) + + if ($this.is('a')) e.preventDefault() + + $target.one('show.bs.modal', function (showEvent) { + if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown + $target.one('hidden.bs.modal', function () { + $this.is(':visible') && $this.trigger('focus') + }) + }) + Plugin.call($target, option, this) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: tooltip.js v3.3.6 + * http://getbootstrap.com/javascript/#tooltip + * Inspired by the original jQuery.tipsy by Jason Frame + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // TOOLTIP PUBLIC CLASS DEFINITION + // =============================== + + var Tooltip = function (element, options) { + this.type = null + this.options = null + this.enabled = null + this.timeout = null + this.hoverState = null + this.$element = null + this.inState = null + + this.init('tooltip', element, options) + } + + Tooltip.VERSION = '3.3.6' + + Tooltip.TRANSITION_DURATION = 150 + + Tooltip.DEFAULTS = { + animation: true, + placement: 'top', + selector: false, + template: '', + trigger: 'hover focus', + title: '', + delay: 0, + html: false, + container: false, + viewport: { + selector: 'body', + padding: 0 + } + } + + Tooltip.prototype.init = function (type, element, options) { + this.enabled = true + this.type = type + this.$element = $(element) + this.options = this.getOptions(options) + this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) + this.inState = { click: false, hover: false, focus: false } + + if (this.$element[0] instanceof document.constructor && !this.options.selector) { + throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') + } + + var triggers = this.options.trigger.split(' ') + + for (var i = triggers.length; i--;) { + var trigger = triggers[i] + + if (trigger == 'click') { + this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) + } else if (trigger != 'manual') { + var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' + var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' + + this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) + this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) + } + } + + this.options.selector ? + (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : + this.fixTitle() + } + + Tooltip.prototype.getDefaults = function () { + return Tooltip.DEFAULTS + } + + Tooltip.prototype.getOptions = function (options) { + options = $.extend({}, this.getDefaults(), this.$element.data(), options) + + if (options.delay && typeof options.delay == 'number') { + options.delay = { + show: options.delay, + hide: options.delay + } + } + + return options + } + + Tooltip.prototype.getDelegateOptions = function () { + var options = {} + var defaults = this.getDefaults() + + this._options && $.each(this._options, function (key, value) { + if (defaults[key] != value) options[key] = value + }) + + return options + } + + Tooltip.prototype.enter = function (obj) { + var self = obj instanceof this.constructor ? + obj : $(obj.currentTarget).data('bs.' + this.type) + + if (!self) { + self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) + $(obj.currentTarget).data('bs.' + this.type, self) + } + + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true + } + + if (self.tip().hasClass('in') || self.hoverState == 'in') { + self.hoverState = 'in' + return + } + + clearTimeout(self.timeout) + + self.hoverState = 'in' + + if (!self.options.delay || !self.options.delay.show) return self.show() + + self.timeout = setTimeout(function () { + if (self.hoverState == 'in') self.show() + }, self.options.delay.show) + } + + Tooltip.prototype.isInStateTrue = function () { + for (var key in this.inState) { + if (this.inState[key]) return true + } + + return false + } + + Tooltip.prototype.leave = function (obj) { + var self = obj instanceof this.constructor ? + obj : $(obj.currentTarget).data('bs.' + this.type) + + if (!self) { + self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) + $(obj.currentTarget).data('bs.' + this.type, self) + } + + if (obj instanceof $.Event) { + self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false + } + + if (self.isInStateTrue()) return + + clearTimeout(self.timeout) + + self.hoverState = 'out' + + if (!self.options.delay || !self.options.delay.hide) return self.hide() + + self.timeout = setTimeout(function () { + if (self.hoverState == 'out') self.hide() + }, self.options.delay.hide) + } + + Tooltip.prototype.show = function () { + var e = $.Event('show.bs.' + this.type) + + if (this.hasContent() && this.enabled) { + this.$element.trigger(e) + + var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) + if (e.isDefaultPrevented() || !inDom) return + var that = this + + var $tip = this.tip() + + var tipId = this.getUID(this.type) + + this.setContent() + $tip.attr('id', tipId) + this.$element.attr('aria-describedby', tipId) + + if (this.options.animation) $tip.addClass('fade') + + var placement = typeof this.options.placement == 'function' ? + this.options.placement.call(this, $tip[0], this.$element[0]) : + this.options.placement + + var autoToken = /\s?auto?\s?/i + var autoPlace = autoToken.test(placement) + if (autoPlace) placement = placement.replace(autoToken, '') || 'top' + + $tip + .detach() + .css({ top: 0, left: 0, display: 'block' }) + .addClass(placement) + .data('bs.' + this.type, this) + + this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) + this.$element.trigger('inserted.bs.' + this.type) + + var pos = this.getPosition() + var actualWidth = $tip[0].offsetWidth + var actualHeight = $tip[0].offsetHeight + + if (autoPlace) { + var orgPlacement = placement + var viewportDim = this.getPosition(this.$viewport) + + placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : + placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : + placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : + placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : + placement + + $tip + .removeClass(orgPlacement) + .addClass(placement) + } + + var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) + + this.applyPlacement(calculatedOffset, placement) + + var complete = function () { + var prevHoverState = that.hoverState + that.$element.trigger('shown.bs.' + that.type) + that.hoverState = null + + if (prevHoverState == 'out') that.leave(that) + } + + $.support.transition && this.$tip.hasClass('fade') ? + $tip + .one('bsTransitionEnd', complete) + .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : + complete() + } + } + + Tooltip.prototype.applyPlacement = function (offset, placement) { + var $tip = this.tip() + var width = $tip[0].offsetWidth + var height = $tip[0].offsetHeight + + // manually read margins because getBoundingClientRect includes difference + var marginTop = parseInt($tip.css('margin-top'), 10) + var marginLeft = parseInt($tip.css('margin-left'), 10) + + // we must check for NaN for ie 8/9 + if (isNaN(marginTop)) marginTop = 0 + if (isNaN(marginLeft)) marginLeft = 0 + + offset.top += marginTop + offset.left += marginLeft + + // $.fn.offset doesn't round pixel values + // so we use setOffset directly with our own function B-0 + $.offset.setOffset($tip[0], $.extend({ + using: function (props) { + $tip.css({ + top: Math.round(props.top), + left: Math.round(props.left) + }) + } + }, offset), 0) + + $tip.addClass('in') + + // check to see if placing tip in new offset caused the tip to resize itself + var actualWidth = $tip[0].offsetWidth + var actualHeight = $tip[0].offsetHeight + + if (placement == 'top' && actualHeight != height) { + offset.top = offset.top + height - actualHeight + } + + var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) + + if (delta.left) offset.left += delta.left + else offset.top += delta.top + + var isVertical = /top|bottom/.test(placement) + var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight + var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' + + $tip.offset(offset) + this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) + } + + Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { + this.arrow() + .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') + .css(isVertical ? 'top' : 'left', '') + } + + Tooltip.prototype.setContent = function () { + var $tip = this.tip() + var title = this.getTitle() + + $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) + $tip.removeClass('fade in top bottom left right') + } + + Tooltip.prototype.hide = function (callback) { + var that = this + var $tip = $(this.$tip) + var e = $.Event('hide.bs.' + this.type) + + function complete() { + if (that.hoverState != 'in') $tip.detach() + that.$element + .removeAttr('aria-describedby') + .trigger('hidden.bs.' + that.type) + callback && callback() + } + + this.$element.trigger(e) + + if (e.isDefaultPrevented()) return + + $tip.removeClass('in') + + $.support.transition && $tip.hasClass('fade') ? + $tip + .one('bsTransitionEnd', complete) + .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : + complete() + + this.hoverState = null + + return this + } + + Tooltip.prototype.fixTitle = function () { + var $e = this.$element + if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { + $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') + } + } + + Tooltip.prototype.hasContent = function () { + return this.getTitle() + } + + Tooltip.prototype.getPosition = function ($element) { + $element = $element || this.$element + + var el = $element[0] + var isBody = el.tagName == 'BODY' + + var elRect = el.getBoundingClientRect() + if (elRect.width == null) { + // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 + elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) + } + var elOffset = isBody ? { top: 0, left: 0 } : $element.offset() + var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } + var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null + + return $.extend({}, elRect, scroll, outerDims, elOffset) + } + + Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { + return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : + placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : + placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : + /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } + + } + + Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { + var delta = { top: 0, left: 0 } + if (!this.$viewport) return delta + + var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 + var viewportDimensions = this.getPosition(this.$viewport) + + if (/right|left/.test(placement)) { + var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll + var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight + if (topEdgeOffset < viewportDimensions.top) { // top overflow + delta.top = viewportDimensions.top - topEdgeOffset + } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow + delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset + } + } else { + var leftEdgeOffset = pos.left - viewportPadding + var rightEdgeOffset = pos.left + viewportPadding + actualWidth + if (leftEdgeOffset < viewportDimensions.left) { // left overflow + delta.left = viewportDimensions.left - leftEdgeOffset + } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow + delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset + } + } + + return delta + } + + Tooltip.prototype.getTitle = function () { + var title + var $e = this.$element + var o = this.options + + title = $e.attr('data-original-title') + || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) + + return title + } + + Tooltip.prototype.getUID = function (prefix) { + do prefix += ~~(Math.random() * 1000000) + while (document.getElementById(prefix)) + return prefix + } + + Tooltip.prototype.tip = function () { + if (!this.$tip) { + this.$tip = $(this.options.template) + if (this.$tip.length != 1) { + throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') + } + } + return this.$tip + } + + Tooltip.prototype.arrow = function () { + return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) + } + + Tooltip.prototype.enable = function () { + this.enabled = true + } + + Tooltip.prototype.disable = function () { + this.enabled = false + } + + Tooltip.prototype.toggleEnabled = function () { + this.enabled = !this.enabled + } + + Tooltip.prototype.toggle = function (e) { + var self = this + if (e) { + self = $(e.currentTarget).data('bs.' + this.type) + if (!self) { + self = new this.constructor(e.currentTarget, this.getDelegateOptions()) + $(e.currentTarget).data('bs.' + this.type, self) + } + } + + if (e) { + self.inState.click = !self.inState.click + if (self.isInStateTrue()) self.enter(self) + else self.leave(self) + } else { + self.tip().hasClass('in') ? self.leave(self) : self.enter(self) + } + } + + Tooltip.prototype.destroy = function () { + var that = this + clearTimeout(this.timeout) + this.hide(function () { + that.$element.off('.' + that.type).removeData('bs.' + that.type) + if (that.$tip) { + that.$tip.detach() + } + that.$tip = null + that.$arrow = null + that.$viewport = null + }) + } + + + // TOOLTIP PLUGIN DEFINITION + // ========================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.tooltip') + var options = typeof option == 'object' && option + + if (!data && /destroy|hide/.test(option)) return + if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.tooltip + + $.fn.tooltip = Plugin + $.fn.tooltip.Constructor = Tooltip + + + // TOOLTIP NO CONFLICT + // =================== + + $.fn.tooltip.noConflict = function () { + $.fn.tooltip = old + return this + } + +}(jQuery); + +/* ======================================================================== + * Bootstrap: popover.js v3.3.6 + * http://getbootstrap.com/javascript/#popovers + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // POPOVER PUBLIC CLASS DEFINITION + // =============================== + + var Popover = function (element, options) { + this.init('popover', element, options) + } + + if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') + + Popover.VERSION = '3.3.6' + + Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { + placement: 'right', + trigger: 'click', + content: '', + template: '' + }) + + + // NOTE: POPOVER EXTENDS tooltip.js + // ================================ + + Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) + + Popover.prototype.constructor = Popover + + Popover.prototype.getDefaults = function () { + return Popover.DEFAULTS + } + + Popover.prototype.setContent = function () { + var $tip = this.tip() + var title = this.getTitle() + var content = this.getContent() + + $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) + $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events + this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' + ](content) + + $tip.removeClass('fade top bottom left right in') + + // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do + // this manually by checking the contents. + if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() + } + + Popover.prototype.hasContent = function () { + return this.getTitle() || this.getContent() + } + + Popover.prototype.getContent = function () { + var $e = this.$element + var o = this.options + + return $e.attr('data-content') + || (typeof o.content == 'function' ? + o.content.call($e[0]) : + o.content) + } + + Popover.prototype.arrow = function () { + return (this.$arrow = this.$arrow || this.tip().find('.arrow')) + } + + + // POPOVER PLUGIN DEFINITION + // ========================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.popover') + var options = typeof option == 'object' && option + + if (!data && /destroy|hide/.test(option)) return + if (!data) $this.data('bs.popover', (data = new Popover(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.popover + + $.fn.popover = Plugin + $.fn.popover.Constructor = Popover + + + // POPOVER NO CONFLICT + // =================== + + $.fn.popover.noConflict = function () { + $.fn.popover = old + return this + } + +}(jQuery); + +/* ======================================================================== + * Bootstrap: scrollspy.js v3.3.6 + * http://getbootstrap.com/javascript/#scrollspy + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // SCROLLSPY CLASS DEFINITION + // ========================== + + function ScrollSpy(element, options) { + this.$body = $(document.body) + this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) + this.options = $.extend({}, ScrollSpy.DEFAULTS, options) + this.selector = (this.options.target || '') + ' .nav li > a' + this.offsets = [] + this.targets = [] + this.activeTarget = null + this.scrollHeight = 0 + + this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) + this.refresh() + this.process() + } + + ScrollSpy.VERSION = '3.3.6' + + ScrollSpy.DEFAULTS = { + offset: 10 + } + + ScrollSpy.prototype.getScrollHeight = function () { + return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) + } + + ScrollSpy.prototype.refresh = function () { + var that = this + var offsetMethod = 'offset' + var offsetBase = 0 + + this.offsets = [] + this.targets = [] + this.scrollHeight = this.getScrollHeight() + + if (!$.isWindow(this.$scrollElement[0])) { + offsetMethod = 'position' + offsetBase = this.$scrollElement.scrollTop() + } + + this.$body + .find(this.selector) + .map(function () { + var $el = $(this) + var href = $el.data('target') || $el.attr('href') + var $href = /^#./.test(href) && $(href) + + return ($href + && $href.length + && $href.is(':visible') + && [[$href[offsetMethod]().top + offsetBase, href]]) || null + }) + .sort(function (a, b) { return a[0] - b[0] }) + .each(function () { + that.offsets.push(this[0]) + that.targets.push(this[1]) + }) + } + + ScrollSpy.prototype.process = function () { + var scrollTop = this.$scrollElement.scrollTop() + this.options.offset + var scrollHeight = this.getScrollHeight() + var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() + var offsets = this.offsets + var targets = this.targets + var activeTarget = this.activeTarget + var i + + if (this.scrollHeight != scrollHeight) { + this.refresh() + } + + if (scrollTop >= maxScroll) { + return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) + } + + if (activeTarget && scrollTop < offsets[0]) { + this.activeTarget = null + return this.clear() + } + + for (i = offsets.length; i--;) { + activeTarget != targets[i] + && scrollTop >= offsets[i] + && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) + && this.activate(targets[i]) + } + } + + ScrollSpy.prototype.activate = function (target) { + this.activeTarget = target + + this.clear() + + var selector = this.selector + + '[data-target="' + target + '"],' + + this.selector + '[href="' + target + '"]' + + var active = $(selector) + .parents('li') + .addClass('active') + + if (active.parent('.dropdown-menu').length) { + active = active + .closest('li.dropdown') + .addClass('active') + } + + active.trigger('activate.bs.scrollspy') + } + + ScrollSpy.prototype.clear = function () { + $(this.selector) + .parentsUntil(this.options.target, '.active') + .removeClass('active') + } + + + // SCROLLSPY PLUGIN DEFINITION + // =========================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.scrollspy') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.scrollspy + + $.fn.scrollspy = Plugin + $.fn.scrollspy.Constructor = ScrollSpy + + + // SCROLLSPY NO CONFLICT + // ===================== + + $.fn.scrollspy.noConflict = function () { + $.fn.scrollspy = old + return this + } + + + // SCROLLSPY DATA-API + // ================== + + $(window).on('load.bs.scrollspy.data-api', function () { + $('[data-spy="scroll"]').each(function () { + var $spy = $(this) + Plugin.call($spy, $spy.data()) + }) + }) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: tab.js v3.3.6 + * http://getbootstrap.com/javascript/#tabs + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // TAB CLASS DEFINITION + // ==================== + + var Tab = function (element) { + // jscs:disable requireDollarBeforejQueryAssignment + this.element = $(element) + // jscs:enable requireDollarBeforejQueryAssignment + } + + Tab.VERSION = '3.3.6' + + Tab.TRANSITION_DURATION = 150 + + Tab.prototype.show = function () { + var $this = this.element + var $ul = $this.closest('ul:not(.dropdown-menu)') + var selector = $this.data('target') + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + } + + if ($this.parent('li').hasClass('active')) return + + var $previous = $ul.find('.active:last a') + var hideEvent = $.Event('hide.bs.tab', { + relatedTarget: $this[0] + }) + var showEvent = $.Event('show.bs.tab', { + relatedTarget: $previous[0] + }) + + $previous.trigger(hideEvent) + $this.trigger(showEvent) + + if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return + + var $target = $(selector) + + this.activate($this.closest('li'), $ul) + this.activate($target, $target.parent(), function () { + $previous.trigger({ + type: 'hidden.bs.tab', + relatedTarget: $this[0] + }) + $this.trigger({ + type: 'shown.bs.tab', + relatedTarget: $previous[0] + }) + }) + } + + Tab.prototype.activate = function (element, container, callback) { + var $active = container.find('> .active') + var transition = callback + && $.support.transition + && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) + + function next() { + $active + .removeClass('active') + .find('> .dropdown-menu > .active') + .removeClass('active') + .end() + .find('[data-toggle="tab"]') + .attr('aria-expanded', false) + + element + .addClass('active') + .find('[data-toggle="tab"]') + .attr('aria-expanded', true) + + if (transition) { + element[0].offsetWidth // reflow for transition + element.addClass('in') + } else { + element.removeClass('fade') + } + + if (element.parent('.dropdown-menu').length) { + element + .closest('li.dropdown') + .addClass('active') + .end() + .find('[data-toggle="tab"]') + .attr('aria-expanded', true) + } + + callback && callback() + } + + $active.length && transition ? + $active + .one('bsTransitionEnd', next) + .emulateTransitionEnd(Tab.TRANSITION_DURATION) : + next() + + $active.removeClass('in') + } + + + // TAB PLUGIN DEFINITION + // ===================== + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.tab') + + if (!data) $this.data('bs.tab', (data = new Tab(this))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.tab + + $.fn.tab = Plugin + $.fn.tab.Constructor = Tab + + + // TAB NO CONFLICT + // =============== + + $.fn.tab.noConflict = function () { + $.fn.tab = old + return this + } + + + // TAB DATA-API + // ============ + + var clickHandler = function (e) { + e.preventDefault() + Plugin.call($(this), 'show') + } + + $(document) + .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) + .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) + +}(jQuery); + +/* ======================================================================== + * Bootstrap: affix.js v3.3.6 + * http://getbootstrap.com/javascript/#affix + * ======================================================================== + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * ======================================================================== */ + + ++function ($) { + 'use strict'; + + // AFFIX CLASS DEFINITION + // ====================== + + var Affix = function (element, options) { + this.options = $.extend({}, Affix.DEFAULTS, options) + + this.$target = $(this.options.target) + .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) + .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) + + this.$element = $(element) + this.affixed = null + this.unpin = null + this.pinnedOffset = null + + this.checkPosition() + } + + Affix.VERSION = '3.3.6' + + Affix.RESET = 'affix affix-top affix-bottom' + + Affix.DEFAULTS = { + offset: 0, + target: window + } + + Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { + var scrollTop = this.$target.scrollTop() + var position = this.$element.offset() + var targetHeight = this.$target.height() + + if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false + + if (this.affixed == 'bottom') { + if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' + return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' + } + + var initializing = this.affixed == null + var colliderTop = initializing ? scrollTop : position.top + var colliderHeight = initializing ? targetHeight : height + + if (offsetTop != null && scrollTop <= offsetTop) return 'top' + if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' + + return false + } + + Affix.prototype.getPinnedOffset = function () { + if (this.pinnedOffset) return this.pinnedOffset + this.$element.removeClass(Affix.RESET).addClass('affix') + var scrollTop = this.$target.scrollTop() + var position = this.$element.offset() + return (this.pinnedOffset = position.top - scrollTop) + } + + Affix.prototype.checkPositionWithEventLoop = function () { + setTimeout($.proxy(this.checkPosition, this), 1) + } + + Affix.prototype.checkPosition = function () { + if (!this.$element.is(':visible')) return + + var height = this.$element.height() + var offset = this.options.offset + var offsetTop = offset.top + var offsetBottom = offset.bottom + var scrollHeight = Math.max($(document).height(), $(document.body).height()) + + if (typeof offset != 'object') offsetBottom = offsetTop = offset + if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) + if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) + + var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) + + if (this.affixed != affix) { + if (this.unpin != null) this.$element.css('top', '') + + var affixType = 'affix' + (affix ? '-' + affix : '') + var e = $.Event(affixType + '.bs.affix') + + this.$element.trigger(e) + + if (e.isDefaultPrevented()) return + + this.affixed = affix + this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null + + this.$element + .removeClass(Affix.RESET) + .addClass(affixType) + .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') + } + + if (affix == 'bottom') { + this.$element.offset({ + top: scrollHeight - height - offsetBottom + }) + } + } + + + // AFFIX PLUGIN DEFINITION + // ======================= + + function Plugin(option) { + return this.each(function () { + var $this = $(this) + var data = $this.data('bs.affix') + var options = typeof option == 'object' && option + + if (!data) $this.data('bs.affix', (data = new Affix(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + var old = $.fn.affix + + $.fn.affix = Plugin + $.fn.affix.Constructor = Affix + + + // AFFIX NO CONFLICT + // ================= + + $.fn.affix.noConflict = function () { + $.fn.affix = old + return this + } + + + // AFFIX DATA-API + // ============== + + $(window).on('load', function () { + $('[data-spy="affix"]').each(function () { + var $spy = $(this) + var data = $spy.data() + + data.offset = data.offset || {} + + if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom + if (data.offsetTop != null) data.offset.top = data.offsetTop + + Plugin.call($spy, data) + }) + }) + +}(jQuery); diff --git a/resources/views/settings/api.blade.php b/resources/views/settings/api.blade.php new file mode 100644 index 0000000000..c0567d859f --- /dev/null +++ b/resources/views/settings/api.blade.php @@ -0,0 +1,23 @@ +@extends('layouts/default') + +{{-- Page title --}} +@section('title') + API Settings (test) + @parent +@stop + +{{-- Page content --}} +@section('content') +
                                          + + + + + +
                                          + + + + + +@stop