diff --git a/client/bower.json b/client/bower.json index 184a811d9d9..67262e323ab 100644 --- a/client/bower.json +++ b/client/bower.json @@ -9,7 +9,7 @@ "homepage": "usegalaxy.org", "dependencies": { "jquery": "~1.11.1", - "traceKit": "*", + "tracekit": "*", "ravenjs": "~1.1.16", "underscore": "~1.7.0", "backbone": "~1.1.2", @@ -18,7 +18,7 @@ "farbtastic": "~2.0.0-alpha.1", "toastr": "~2.1.0", "jQTouch": "git://github.com/senchalabs/jQTouch#~1.0.0", - "bib2json": "git://github.com/mayanklahiri/bib2json", + "bib2json": "git://github.com/galaxyproject/bib2json#galaxy", "jquery-form": "~3.46.0", "jquery-autocomplete": "git://github.com/dyve/jquery-autocomplete", "select2": "~3.5.2", diff --git a/client/galaxy/scripts/libs/d3.js b/client/galaxy/scripts/libs/d3.js index 8868e425033..3a0faeba112 100755 --- a/client/galaxy/scripts/libs/d3.js +++ b/client/galaxy/scripts/libs/d3.js @@ -1,6 +1,6 @@ !function() { var d3 = { - version: "3.5.5" + version: "3.5.6" }; var d3_arraySlice = [].slice, d3_array = function(list) { return d3_arraySlice.call(list); @@ -1463,8 +1463,7 @@ function zoomended(dispatch) { if (!--zooming) dispatch({ type: "zoomend" - }); - center0 = null; + }), center0 = null; } function mousedowned() { var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); @@ -1553,8 +1552,8 @@ } function mousewheeled() { var dispatch = event.of(this, arguments); - if (mousewheelTimer) clearTimeout(mousewheelTimer); else translate0 = location(center0 = center || d3.mouse(this)), - d3_selection_interrupt.call(this), zoomstarted(dispatch); + if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this), + translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch); mousewheelTimer = setTimeout(function() { mousewheelTimer = null; zoomended(dispatch); @@ -1699,8 +1698,9 @@ return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); } function d3_rgb_parse(format, rgb, hsl) { + format = format.toLowerCase(); var r = 0, g = 0, b = 0, m1, m2, color; - m1 = /([a-z]+)\((.*)\)/i.exec(format); + m1 = /([a-z]+)\((.*)\)/.exec(format); if (m1) { m2 = m1[2].split(","); switch (m1[1]) { @@ -1715,7 +1715,7 @@ } } } - if (color = d3_rgb_names.get(format.toLowerCase())) { + if (color = d3_rgb_names.get(format)) { return rgb(color.r, color.g, color.b); } if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) { @@ -5785,7 +5785,7 @@ } d3.interpolators = [ function(a, b) { var t = typeof b; - return (t === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); + return (t === "string" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b); } ]; d3.interpolateArray = d3_interpolateArray; function d3_interpolateArray(a, b) { diff --git a/client/galaxy/scripts/libs/farbtastic.js b/client/galaxy/scripts/libs/farbtastic.js index 7a495b844a3..01e1173b69f 100644 --- a/client/galaxy/scripts/libs/farbtastic.js +++ b/client/galaxy/scripts/libs/farbtastic.js @@ -1,6 +1,6 @@ -// Farbtastic 2.0 alpha +// Farbtastic 2.0.0-alpha.1 (function ($) { - + var __debug = false; $.fn.farbtastic = function (options) { @@ -15,7 +15,7 @@ $.farbtastic = function (container, options) { $._farbtastic = function (container, options) { var fb = this; - + ///////////////////////////////////////////////////// /** @@ -98,7 +98,7 @@ $._farbtastic = function (container, options) { .find('div>*').css('position', 'absolute'); // IE Fix: Recreate canvas elements with doc.createElement and excanvas. - navigator.userAgent.match(/msie/i) && $('canvas', container).each(function () { + $.browser.msie || false && $('canvas', container).each(function () { // Fetch info. var attr = { 'class': $(this).attr('class'), style: this.getAttribute('style') }, e = document.createElement('canvas'); @@ -130,7 +130,7 @@ $._farbtastic = function (container, options) { fb.ctxOverlay = fb.cnvOverlay[0].getContext('2d'); fb.ctxMask.translate(fb.mid, fb.mid); fb.ctxOverlay.translate(fb.mid, fb.mid); - + // Draw widget base layers. fb.drawCircle(); fb.drawMask(); @@ -166,7 +166,7 @@ $._farbtastic = function (container, options) { // New color color2 = fb.pack(fb.HSLToRGB([d2, 1, 0.5])); if (i > 0) { - if (navigator.userAgent.match(/msie/i)) { + if ($.browser.msie || false) { // IE's gradient calculations mess up the colors. Correct along the diagonals. var corr = (1 + Math.min(Math.abs(Math.tan(angle1)), Math.abs(Math.tan(Math.PI / 2 - angle1)))) / n; color1 = fb.pack(fb.HSLToRGB([d1 - 0.15 * corr, 1, 0.5])); @@ -204,7 +204,7 @@ $._farbtastic = function (container, options) { m.restore(); __debug && $('body').append('
drawCircle '+ (+(new Date()) - tm) +'ms'); }; - + /** * Draw the saturation/luminance mask. */ @@ -224,9 +224,9 @@ $._farbtastic = function (container, options) { var c = (a > 0) ? ((2 * l - 1 + a) * .5 / a) : 0; outputPixel(x, y, c, a); } - } + } } - + // Method #1: direct pixel access (new Canvas). if (fb.ctxMask.getImageData) { // Create half-resolution buffer. @@ -246,7 +246,7 @@ $._farbtastic = function (container, options) { fb.ctxMask.drawImage(buffer, 0, 0, sz + 1, sz + 1, -sq, -sq, sq * 2, sq * 2); } // Method #2: drawing commands (old Canvas). - else if (!navigator.userAgent.match(/msie/i)) { + else if (!($.browser.msie || false)) { // Render directly at half-resolution var sz = Math.floor(size / 2); calculateMask(sz, sz, function (x, y, c, a) { @@ -287,7 +287,7 @@ $._farbtastic = function (container, options) { } cache.push([c, a]); }); - } + } __debug && $('body').append('
drawMask '+ (+(new Date()) - tm) +'ms'); } @@ -313,7 +313,7 @@ $._farbtastic = function (container, options) { // Update the overlay canvas. fb.ctxOverlay.clearRect(-fb.mid, -fb.mid, sz, sz); - for (i in circles) { + for (var i = 0; i < circles.length; i++) { var c = circles[i]; fb.ctxOverlay.lineWidth = c.lw; fb.ctxOverlay.strokeStyle = c.c; @@ -335,7 +335,7 @@ $._farbtastic = function (container, options) { // Draw markers fb.drawMarkers(); - + // Linked elements or callback if (typeof fb.callback == 'object') { // Set background/foreground color @@ -349,21 +349,21 @@ $._farbtastic = function (container, options) { if ((typeof this.value == 'string') && this.value != fb.color) { this.value = fb.color; } - }); + }).change(); } else if (typeof fb.callback == 'function') { fb.callback.call(fb, fb.color); } } - + /** * Helper for returning coordinates relative to the center. */ fb.widgetCoords = function (event) { return { - x: event.pageX - fb.offset.left - fb.mid, + x: event.pageX - fb.offset.left - fb.mid, y: event.pageY - fb.offset.top - fb.mid - }; + }; } /** @@ -426,7 +426,7 @@ $._farbtastic = function (container, options) { fb.packDX = function (c, a) { return '#' + fb.dec2hex(a) + fb.dec2hex(c) + fb.dec2hex(c) + fb.dec2hex(c); }; - + fb.pack = function (rgb) { var r = Math.round(rgb[0] * 255); var g = Math.round(rgb[1] * 255); @@ -496,8 +496,7 @@ $._farbtastic = function (container, options) { options = $.extend({ width: 300, wheelWidth: (options.width || 300) / 10, - callback: null, - color: "#808080" + callback: null }, options); // Initialize. @@ -511,8 +510,7 @@ $._farbtastic = function (container, options) { fb.linkTo(options.callback); } // Set to gray. - fb.setColor( "#808080" ); - fb.setColor( options.color ); + if (!fb.color) fb.setColor('#808080'); } })(jQuery); diff --git a/client/galaxy/scripts/libs/jquery.sparklines.js b/client/galaxy/scripts/libs/jquery.sparklines.js new file mode 100644 index 00000000000..43b24c080a6 --- /dev/null +++ b/client/galaxy/scripts/libs/jquery.sparklines.js @@ -0,0 +1,3054 @@ +/** +* +* jquery.sparkline.js +* +* v2.1.2 +* (c) Splunk, Inc +* Contact: Gareth Watts (gareth@splunk.com) +* http://omnipotent.net/jquery.sparkline/ +* +* Generates inline sparkline charts from data supplied either to the method +* or inline in HTML +* +* Compatible with Internet Explorer 6.0+ and modern browsers equipped with the canvas tag +* (Firefox 2.0+, Safari, Opera, etc) +* +* License: New BSD License +* +* Copyright (c) 2012, Splunk Inc. +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* +* * Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* * Neither the name of Splunk Inc nor the names of its contributors may +* be used to endorse or promote products derived from this software without +* specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* +* Usage: +* $(selector).sparkline(values, options) +* +* If values is undefined or set to 'html' then the data values are read from the specified tag: +*

Sparkline: 1,4,6,6,8,5,3,5

+* $('.sparkline').sparkline(); +* There must be no spaces in the enclosed data set +* +* Otherwise values must be an array of numbers or null values +*

Sparkline: This text replaced if the browser is compatible

+* $('#sparkline1').sparkline([1,4,6,6,8,5,3,5]) +* $('#sparkline2').sparkline([1,4,6,null,null,5,3,5]) +* +* Values can also be specified in an HTML comment, or as a values attribute: +*

Sparkline:

+*

Sparkline:

+* $('.sparkline').sparkline(); +* +* For line charts, x values can also be specified: +*

Sparkline: 1:1,2.7:4,3.4:6,5:6,6:8,8.7:5,9:3,10:5

+* $('#sparkline1').sparkline([ [1,1], [2.7,4], [3.4,6], [5,6], [6,8], [8.7,5], [9,3], [10,5] ]) +* +* By default, options should be passed in as teh second argument to the sparkline function: +* $('.sparkline').sparkline([1,2,3,4], {type: 'bar'}) +* +* Options can also be set by passing them on the tag itself. This feature is disabled by default though +* as there's a slight performance overhead: +* $('.sparkline').sparkline([1,2,3,4], {enableTagOptions: true}) +*

Sparkline: loading

+* Prefix all options supplied as tag attribute with "spark" (configurable by setting tagOptionPrefix) +* +* Supported options: +* lineColor - Color of the line used for the chart +* fillColor - Color used to fill in the chart - Set to '' or false for a transparent chart +* width - Width of the chart - Defaults to 3 times the number of values in pixels +* height - Height of the chart - Defaults to the height of the containing element +* chartRangeMin - Specify the minimum value to use for the Y range of the chart - Defaults to the minimum value supplied +* chartRangeMax - Specify the maximum value to use for the Y range of the chart - Defaults to the maximum value supplied +* chartRangeClip - Clip out of range values to the max/min specified by chartRangeMin and chartRangeMax +* chartRangeMinX - Specify the minimum value to use for the X range of the chart - Defaults to the minimum value supplied +* chartRangeMaxX - Specify the maximum value to use for the X range of the chart - Defaults to the maximum value supplied +* composite - If true then don't erase any existing chart attached to the tag, but draw +* another chart over the top - Note that width and height are ignored if an +* existing chart is detected. +* tagValuesAttribute - Name of tag attribute to check for data values - Defaults to 'values' +* enableTagOptions - Whether to check tags for sparkline options +* tagOptionPrefix - Prefix used for options supplied as tag attributes - Defaults to 'spark' +* disableHiddenCheck - If set to true, then the plugin will assume that charts will never be drawn into a +* hidden dom element, avoding a browser reflow +* disableInteraction - If set to true then all mouseover/click interaction behaviour will be disabled, +* making the plugin perform much like it did in 1.x +* disableTooltips - If set to true then tooltips will be disabled - Defaults to false (tooltips enabled) +* disableHighlight - If set to true then highlighting of selected chart elements on mouseover will be disabled +* defaults to false (highlights enabled) +* highlightLighten - Factor to lighten/darken highlighted chart values by - Defaults to 1.4 for a 40% increase +* tooltipContainer - Specify which DOM element the tooltip should be rendered into - defaults to document.body +* tooltipClassname - Optional CSS classname to apply to tooltips - If not specified then a default style will be applied +* tooltipOffsetX - How many pixels away from the mouse pointer to render the tooltip on the X axis +* tooltipOffsetY - How many pixels away from the mouse pointer to render the tooltip on the r axis +* tooltipFormatter - Optional callback that allows you to override the HTML displayed in the tooltip +* callback is given arguments of (sparkline, options, fields) +* tooltipChartTitle - If specified then the tooltip uses the string specified by this setting as a title +* tooltipFormat - A format string or SPFormat object (or an array thereof for multiple entries) +* to control the format of the tooltip +* tooltipPrefix - A string to prepend to each field displayed in a tooltip +* tooltipSuffix - A string to append to each field displayed in a tooltip +* tooltipSkipNull - If true then null values will not have a tooltip displayed (defaults to true) +* tooltipValueLookups - An object or range map to map field values to tooltip strings +* (eg. to map -1 to "Lost", 0 to "Draw", and 1 to "Win") +* numberFormatter - Optional callback for formatting numbers in tooltips +* numberDigitGroupSep - Character to use for group separator in numbers "1,234" - Defaults to "," +* numberDecimalMark - Character to use for the decimal point when formatting numbers - Defaults to "." +* numberDigitGroupCount - Number of digits between group separator - Defaults to 3 +* +* There are 7 types of sparkline, selected by supplying a "type" option of 'line' (default), +* 'bar', 'tristate', 'bullet', 'discrete', 'pie' or 'box' +* line - Line chart. Options: +* spotColor - Set to '' to not end each line in a circular spot +* minSpotColor - If set, color of spot at minimum value +* maxSpotColor - If set, color of spot at maximum value +* spotRadius - Radius in pixels +* lineWidth - Width of line in pixels +* normalRangeMin +* normalRangeMax - If set draws a filled horizontal bar between these two values marking the "normal" +* or expected range of values +* normalRangeColor - Color to use for the above bar +* drawNormalOnTop - Draw the normal range above the chart fill color if true +* defaultPixelsPerValue - Defaults to 3 pixels of width for each value in the chart +* highlightSpotColor - The color to use for drawing a highlight spot on mouseover - Set to null to disable +* highlightLineColor - The color to use for drawing a highlight line on mouseover - Set to null to disable +* valueSpots - Specify which points to draw spots on, and in which color. Accepts a range map +* +* bar - Bar chart. Options: +* barColor - Color of bars for postive values +* negBarColor - Color of bars for negative values +* zeroColor - Color of bars with zero values +* nullColor - Color of bars with null values - Defaults to omitting the bar entirely +* barWidth - Width of bars in pixels +* colorMap - Optional mappnig of values to colors to override the *BarColor values above +* can be an Array of values to control the color of individual bars or a range map +* to specify colors for individual ranges of values +* barSpacing - Gap between bars in pixels +* zeroAxis - Centers the y-axis around zero if true +* +* tristate - Charts values of win (>0), lose (<0) or draw (=0) +* posBarColor - Color of win values +* negBarColor - Color of lose values +* zeroBarColor - Color of draw values +* barWidth - Width of bars in pixels +* barSpacing - Gap between bars in pixels +* colorMap - Optional mappnig of values to colors to override the *BarColor values above +* can be an Array of values to control the color of individual bars or a range map +* to specify colors for individual ranges of values +* +* discrete - Options: +* lineHeight - Height of each line in pixels - Defaults to 30% of the graph height +* thesholdValue - Values less than this value will be drawn using thresholdColor instead of lineColor +* thresholdColor +* +* bullet - Values for bullet graphs msut be in the order: target, performance, range1, range2, range3, ... +* options: +* targetColor - The color of the vertical target marker +* targetWidth - The width of the target marker in pixels +* performanceColor - The color of the performance measure horizontal bar +* rangeColors - Colors to use for each qualitative range background color +* +* pie - Pie chart. Options: +* sliceColors - An array of colors to use for pie slices +* offset - Angle in degrees to offset the first slice - Try -90 or +90 +* borderWidth - Width of border to draw around the pie chart, in pixels - Defaults to 0 (no border) +* borderColor - Color to use for the pie chart border - Defaults to #000 +* +* box - Box plot. Options: +* raw - Set to true to supply pre-computed plot points as values +* values should be: low_outlier, low_whisker, q1, median, q3, high_whisker, high_outlier +* When set to false you can supply any number of values and the box plot will +* be computed for you. Default is false. +* showOutliers - Set to true (default) to display outliers as circles +* outlierIQR - Interquartile range used to determine outliers. Default 1.5 +* boxLineColor - Outline color of the box +* boxFillColor - Fill color for the box +* whiskerColor - Line color used for whiskers +* outlierLineColor - Outline color of outlier circles +* outlierFillColor - Fill color of the outlier circles +* spotRadius - Radius of outlier circles +* medianColor - Line color of the median line +* target - Draw a target cross hair at the supplied value (default undefined) +* +* +* +* Examples: +* $('#sparkline1').sparkline(myvalues, { lineColor: '#f00', fillColor: false }); +* $('.barsparks').sparkline('html', { type:'bar', height:'40px', barWidth:5 }); +* $('#tristate').sparkline([1,1,-1,1,0,0,-1], { type:'tristate' }): +* $('#discrete').sparkline([1,3,4,5,5,3,4,5], { type:'discrete' }); +* $('#bullet').sparkline([10,12,12,9,7], { type:'bullet' }); +* $('#pie').sparkline([1,1,2], { type:'pie' }); +*/ + +/*jslint regexp: true, browser: true, jquery: true, white: true, nomen: false, plusplus: false, maxerr: 500, indent: 4 */ + +(function(document, Math, undefined) { // performance/minified-size optimization +(function(factory) { + if(typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } else if (jQuery && !jQuery.fn.sparkline) { + factory(jQuery); + } +} +(function($) { + 'use strict'; + + var UNSET_OPTION = {}, + getDefaults, createClass, SPFormat, clipval, quartile, normalizeValue, normalizeValues, + remove, isNumber, all, sum, addCSS, ensureArray, formatNumber, RangeMap, + MouseHandler, Tooltip, barHighlightMixin, + line, bar, tristate, discrete, bullet, pie, box, defaultStyles, initStyles, + VShape, VCanvas_base, VCanvas_canvas, VCanvas_vml, pending, shapeCount = 0; + + /** + * Default configuration settings + */ + getDefaults = function () { + return { + // Settings common to most/all chart types + common: { + type: 'line', + lineColor: '#00f', + fillColor: '#cdf', + defaultPixelsPerValue: 3, + width: 'auto', + height: 'auto', + composite: false, + tagValuesAttribute: 'values', + tagOptionsPrefix: 'spark', + enableTagOptions: false, + enableHighlight: true, + highlightLighten: 1.4, + tooltipSkipNull: true, + tooltipPrefix: '', + tooltipSuffix: '', + disableHiddenCheck: false, + numberFormatter: false, + numberDigitGroupCount: 3, + numberDigitGroupSep: ',', + numberDecimalMark: '.', + disableTooltips: false, + disableInteraction: false + }, + // Defaults for line charts + line: { + spotColor: '#f80', + highlightSpotColor: '#5f5', + highlightLineColor: '#f22', + spotRadius: 1.5, + minSpotColor: '#f80', + maxSpotColor: '#f80', + lineWidth: 1, + normalRangeMin: undefined, + normalRangeMax: undefined, + normalRangeColor: '#ccc', + drawNormalOnTop: false, + chartRangeMin: undefined, + chartRangeMax: undefined, + chartRangeMinX: undefined, + chartRangeMaxX: undefined, + tooltipFormat: new SPFormat('● {{prefix}}{{y}}{{suffix}}') + }, + // Defaults for bar charts + bar: { + barColor: '#3366cc', + negBarColor: '#f44', + stackedBarColor: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', + '#dd4477', '#0099c6', '#990099'], + zeroColor: undefined, + nullColor: undefined, + zeroAxis: true, + barWidth: 4, + barSpacing: 1, + chartRangeMax: undefined, + chartRangeMin: undefined, + chartRangeClip: false, + colorMap: undefined, + tooltipFormat: new SPFormat('● {{prefix}}{{value}}{{suffix}}') + }, + // Defaults for tristate charts + tristate: { + barWidth: 4, + barSpacing: 1, + posBarColor: '#6f6', + negBarColor: '#f44', + zeroBarColor: '#999', + colorMap: {}, + tooltipFormat: new SPFormat('● {{value:map}}'), + tooltipValueLookups: { map: { '-1': 'Loss', '0': 'Draw', '1': 'Win' } } + }, + // Defaults for discrete charts + discrete: { + lineHeight: 'auto', + thresholdColor: undefined, + thresholdValue: 0, + chartRangeMax: undefined, + chartRangeMin: undefined, + chartRangeClip: false, + tooltipFormat: new SPFormat('{{prefix}}{{value}}{{suffix}}') + }, + // Defaults for bullet charts + bullet: { + targetColor: '#f33', + targetWidth: 3, // width of the target bar in pixels + performanceColor: '#33f', + rangeColors: ['#d3dafe', '#a8b6ff', '#7f94ff'], + base: undefined, // set this to a number to change the base start number + tooltipFormat: new SPFormat('{{fieldkey:fields}} - {{value}}'), + tooltipValueLookups: { fields: {r: 'Range', p: 'Performance', t: 'Target'} } + }, + // Defaults for pie charts + pie: { + offset: 0, + sliceColors: ['#3366cc', '#dc3912', '#ff9900', '#109618', '#66aa00', + '#dd4477', '#0099c6', '#990099'], + borderWidth: 0, + borderColor: '#000', + tooltipFormat: new SPFormat('● {{value}} ({{percent.1}}%)') + }, + // Defaults for box plots + box: { + raw: false, + boxLineColor: '#000', + boxFillColor: '#cdf', + whiskerColor: '#000', + outlierLineColor: '#333', + outlierFillColor: '#fff', + medianColor: '#f00', + showOutliers: true, + outlierIQR: 1.5, + spotRadius: 1.5, + target: undefined, + targetColor: '#4a2', + chartRangeMax: undefined, + chartRangeMin: undefined, + tooltipFormat: new SPFormat('{{field:fields}}: {{value}}'), + tooltipFormatFieldlistKey: 'field', + tooltipValueLookups: { fields: { lq: 'Lower Quartile', med: 'Median', + uq: 'Upper Quartile', lo: 'Left Outlier', ro: 'Right Outlier', + lw: 'Left Whisker', rw: 'Right Whisker'} } + } + }; + }; + + // You can have tooltips use a css class other than jqstooltip by specifying tooltipClassname + defaultStyles = '.jqstooltip { ' + + 'position: absolute;' + + 'left: 0px;' + + 'top: 0px;' + + 'visibility: hidden;' + + 'background: rgb(0, 0, 0) transparent;' + + 'background-color: rgba(0,0,0,0.6);' + + 'filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);' + + '-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";' + + 'color: white;' + + 'font: 10px arial, san serif;' + + 'text-align: left;' + + 'white-space: nowrap;' + + 'padding: 5px;' + + 'border: 1px solid white;' + + 'z-index: 10000;' + + '}' + + '.jqsfield { ' + + 'color: white;' + + 'font: 10px arial, san serif;' + + 'text-align: left;' + + '}'; + + /** + * Utilities + */ + + createClass = function (/* [baseclass, [mixin, ...]], definition */) { + var Class, args; + Class = function () { + this.init.apply(this, arguments); + }; + if (arguments.length > 1) { + if (arguments[0]) { + Class.prototype = $.extend(new arguments[0](), arguments[arguments.length - 1]); + Class._super = arguments[0].prototype; + } else { + Class.prototype = arguments[arguments.length - 1]; + } + if (arguments.length > 2) { + args = Array.prototype.slice.call(arguments, 1, -1); + args.unshift(Class.prototype); + $.extend.apply($, args); + } + } else { + Class.prototype = arguments[0]; + } + Class.prototype.cls = Class; + return Class; + }; + + /** + * Wraps a format string for tooltips + * {{x}} + * {{x.2} + * {{x:months}} + */ + $.SPFormatClass = SPFormat = createClass({ + fre: /\{\{([\w.]+?)(:(.+?))?\}\}/g, + precre: /(\w+)\.(\d+)/, + + init: function (format, fclass) { + this.format = format; + this.fclass = fclass; + }, + + render: function (fieldset, lookups, options) { + var self = this, + fields = fieldset, + match, token, lookupkey, fieldvalue, prec; + return this.format.replace(this.fre, function () { + var lookup; + token = arguments[1]; + lookupkey = arguments[3]; + match = self.precre.exec(token); + if (match) { + prec = match[2]; + token = match[1]; + } else { + prec = false; + } + fieldvalue = fields[token]; + if (fieldvalue === undefined) { + return ''; + } + if (lookupkey && lookups && lookups[lookupkey]) { + lookup = lookups[lookupkey]; + if (lookup.get) { // RangeMap + return lookups[lookupkey].get(fieldvalue) || fieldvalue; + } else { + return lookups[lookupkey][fieldvalue] || fieldvalue; + } + } + if (isNumber(fieldvalue)) { + if (options.get('numberFormatter')) { + fieldvalue = options.get('numberFormatter')(fieldvalue); + } else { + fieldvalue = formatNumber(fieldvalue, prec, + options.get('numberDigitGroupCount'), + options.get('numberDigitGroupSep'), + options.get('numberDecimalMark')); + } + } + return fieldvalue; + }); + } + }); + + // convience method to avoid needing the new operator + $.spformat = function(format, fclass) { + return new SPFormat(format, fclass); + }; + + clipval = function (val, min, max) { + if (val < min) { + return min; + } + if (val > max) { + return max; + } + return val; + }; + + quartile = function (values, q) { + var vl; + if (q === 2) { + vl = Math.floor(values.length / 2); + return values.length % 2 ? values[vl] : (values[vl-1] + values[vl]) / 2; + } else { + if (values.length % 2 ) { // odd + vl = (values.length * q + q) / 4; + return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; + } else { //even + vl = (values.length * q + 2) / 4; + return vl % 1 ? (values[Math.floor(vl)] + values[Math.floor(vl) - 1]) / 2 : values[vl-1]; + + } + } + }; + + normalizeValue = function (val) { + var nf; + switch (val) { + case 'undefined': + val = undefined; + break; + case 'null': + val = null; + break; + case 'true': + val = true; + break; + case 'false': + val = false; + break; + default: + nf = parseFloat(val); + if (val == nf) { + val = nf; + } + } + return val; + }; + + normalizeValues = function (vals) { + var i, result = []; + for (i = vals.length; i--;) { + result[i] = normalizeValue(vals[i]); + } + return result; + }; + + remove = function (vals, filter) { + var i, vl, result = []; + for (i = 0, vl = vals.length; i < vl; i++) { + if (vals[i] !== filter) { + result.push(vals[i]); + } + } + return result; + }; + + isNumber = function (num) { + return !isNaN(parseFloat(num)) && isFinite(num); + }; + + formatNumber = function (num, prec, groupsize, groupsep, decsep) { + var p, i; + num = (prec === false ? parseFloat(num).toString() : num.toFixed(prec)).split(''); + p = (p = $.inArray('.', num)) < 0 ? num.length : p; + if (p < num.length) { + num[p] = decsep; + } + for (i = p - groupsize; i > 0; i -= groupsize) { + num.splice(i, 0, groupsep); + } + return num.join(''); + }; + + // determine if all values of an array match a value + // returns true if the array is empty + all = function (val, arr, ignoreNull) { + var i; + for (i = arr.length; i--; ) { + if (ignoreNull && arr[i] === null) continue; + if (arr[i] !== val) { + return false; + } + } + return true; + }; + + // sums the numeric values in an array, ignoring other values + sum = function (vals) { + var total = 0, i; + for (i = vals.length; i--;) { + total += typeof vals[i] === 'number' ? vals[i] : 0; + } + return total; + }; + + ensureArray = function (val) { + return $.isArray(val) ? val : [val]; + }; + + // http://paulirish.com/2008/bookmarklet-inject-new-css-rules/ + addCSS = function(css) { + var tag; + //if ('\v' == 'v') /* ie only */ { + if (document.createStyleSheet) { + document.createStyleSheet().cssText = css; + } else { + tag = document.createElement('style'); + tag.type = 'text/css'; + document.getElementsByTagName('head')[0].appendChild(tag); + tag[(typeof document.body.style.WebkitAppearance == 'string') /* webkit only */ ? 'innerText' : 'innerHTML'] = css; + } + }; + + // Provide a cross-browser interface to a few simple drawing primitives + $.fn.simpledraw = function (width, height, useExisting, interact) { + var target, mhandler; + if (useExisting && (target = this.data('_jqs_vcanvas'))) { + return target; + } + + if ($.fn.sparkline.canvas === false) { + // We've already determined that neither Canvas nor VML are available + return false; + + } else if ($.fn.sparkline.canvas === undefined) { + // No function defined yet -- need to see if we support Canvas or VML + var el = document.createElement('canvas'); + if (!!(el.getContext && el.getContext('2d'))) { + // Canvas is available + $.fn.sparkline.canvas = function(width, height, target, interact) { + return new VCanvas_canvas(width, height, target, interact); + }; + } else if (document.namespaces && !document.namespaces.v) { + // VML is available + document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML'); + $.fn.sparkline.canvas = function(width, height, target, interact) { + return new VCanvas_vml(width, height, target); + }; + } else { + // Neither Canvas nor VML are available + $.fn.sparkline.canvas = false; + return false; + } + } + + if (width === undefined) { + width = $(this).innerWidth(); + } + if (height === undefined) { + height = $(this).innerHeight(); + } + + target = $.fn.sparkline.canvas(width, height, this, interact); + + mhandler = $(this).data('_jqs_mhandler'); + if (mhandler) { + mhandler.registerCanvas(target); + } + return target; + }; + + $.fn.cleardraw = function () { + var target = this.data('_jqs_vcanvas'); + if (target) { + target.reset(); + } + }; + + $.RangeMapClass = RangeMap = createClass({ + init: function (map) { + var key, range, rangelist = []; + for (key in map) { + if (map.hasOwnProperty(key) && typeof key === 'string' && key.indexOf(':') > -1) { + range = key.split(':'); + range[0] = range[0].length === 0 ? -Infinity : parseFloat(range[0]); + range[1] = range[1].length === 0 ? Infinity : parseFloat(range[1]); + range[2] = map[key]; + rangelist.push(range); + } + } + this.map = map; + this.rangelist = rangelist || false; + }, + + get: function (value) { + var rangelist = this.rangelist, + i, range, result; + if ((result = this.map[value]) !== undefined) { + return result; + } + if (rangelist) { + for (i = rangelist.length; i--;) { + range = rangelist[i]; + if (range[0] <= value && range[1] >= value) { + return range[2]; + } + } + } + return undefined; + } + }); + + // Convenience function + $.range_map = function(map) { + return new RangeMap(map); + }; + + MouseHandler = createClass({ + init: function (el, options) { + var $el = $(el); + this.$el = $el; + this.options = options; + this.currentPageX = 0; + this.currentPageY = 0; + this.el = el; + this.splist = []; + this.tooltip = null; + this.over = false; + this.displayTooltips = !options.get('disableTooltips'); + this.highlightEnabled = !options.get('disableHighlight'); + }, + + registerSparkline: function (sp) { + this.splist.push(sp); + if (this.over) { + this.updateDisplay(); + } + }, + + registerCanvas: function (canvas) { + var $canvas = $(canvas.canvas); + this.canvas = canvas; + this.$canvas = $canvas; + $canvas.mouseenter($.proxy(this.mouseenter, this)); + $canvas.mouseleave($.proxy(this.mouseleave, this)); + $canvas.click($.proxy(this.mouseclick, this)); + }, + + reset: function (removeTooltip) { + this.splist = []; + if (this.tooltip && removeTooltip) { + this.tooltip.remove(); + this.tooltip = undefined; + } + }, + + mouseclick: function (e) { + var clickEvent = $.Event('sparklineClick'); + clickEvent.originalEvent = e; + clickEvent.sparklines = this.splist; + this.$el.trigger(clickEvent); + }, + + mouseenter: function (e) { + $(document.body).unbind('mousemove.jqs'); + $(document.body).bind('mousemove.jqs', $.proxy(this.mousemove, this)); + this.over = true; + this.currentPageX = e.pageX; + this.currentPageY = e.pageY; + this.currentEl = e.target; + if (!this.tooltip && this.displayTooltips) { + this.tooltip = new Tooltip(this.options); + this.tooltip.updatePosition(e.pageX, e.pageY); + } + this.updateDisplay(); + }, + + mouseleave: function () { + $(document.body).unbind('mousemove.jqs'); + var splist = this.splist, + spcount = splist.length, + needsRefresh = false, + sp, i; + this.over = false; + this.currentEl = null; + + if (this.tooltip) { + this.tooltip.remove(); + this.tooltip = null; + } + + for (i = 0; i < spcount; i++) { + sp = splist[i]; + if (sp.clearRegionHighlight()) { + needsRefresh = true; + } + } + + if (needsRefresh) { + this.canvas.render(); + } + }, + + mousemove: function (e) { + this.currentPageX = e.pageX; + this.currentPageY = e.pageY; + this.currentEl = e.target; + if (this.tooltip) { + this.tooltip.updatePosition(e.pageX, e.pageY); + } + this.updateDisplay(); + }, + + updateDisplay: function () { + var splist = this.splist, + spcount = splist.length, + needsRefresh = false, + offset = this.$canvas.offset(), + localX = this.currentPageX - offset.left, + localY = this.currentPageY - offset.top, + tooltiphtml, sp, i, result, changeEvent; + if (!this.over) { + return; + } + for (i = 0; i < spcount; i++) { + sp = splist[i]; + result = sp.setRegionHighlight(this.currentEl, localX, localY); + if (result) { + needsRefresh = true; + } + } + if (needsRefresh) { + changeEvent = $.Event('sparklineRegionChange'); + changeEvent.sparklines = this.splist; + this.$el.trigger(changeEvent); + if (this.tooltip) { + tooltiphtml = ''; + for (i = 0; i < spcount; i++) { + sp = splist[i]; + tooltiphtml += sp.getCurrentRegionTooltip(); + } + this.tooltip.setContent(tooltiphtml); + } + if (!this.disableHighlight) { + this.canvas.render(); + } + } + if (result === null) { + this.mouseleave(); + } + } + }); + + + Tooltip = createClass({ + sizeStyle: 'position: static !important;' + + 'display: block !important;' + + 'visibility: hidden !important;' + + 'float: left !important;', + + init: function (options) { + var tooltipClassname = options.get('tooltipClassname', 'jqstooltip'), + sizetipStyle = this.sizeStyle, + offset; + this.container = options.get('tooltipContainer') || document.body; + this.tooltipOffsetX = options.get('tooltipOffsetX', 10); + this.tooltipOffsetY = options.get('tooltipOffsetY', 12); + // remove any previous lingering tooltip + $('#jqssizetip').remove(); + $('#jqstooltip').remove(); + this.sizetip = $('
', { + id: 'jqssizetip', + style: sizetipStyle, + 'class': tooltipClassname + }); + this.tooltip = $('
', { + id: 'jqstooltip', + 'class': tooltipClassname + }).appendTo(this.container); + // account for the container's location + offset = this.tooltip.offset(); + this.offsetLeft = offset.left; + this.offsetTop = offset.top; + this.hidden = true; + $(window).unbind('resize.jqs scroll.jqs'); + $(window).bind('resize.jqs scroll.jqs', $.proxy(this.updateWindowDims, this)); + this.updateWindowDims(); + }, + + updateWindowDims: function () { + this.scrollTop = $(window).scrollTop(); + this.scrollLeft = $(window).scrollLeft(); + this.scrollRight = this.scrollLeft + $(window).width(); + this.updatePosition(); + }, + + getSize: function (content) { + this.sizetip.html(content).appendTo(this.container); + this.width = this.sizetip.width() + 1; + this.height = this.sizetip.height(); + this.sizetip.remove(); + }, + + setContent: function (content) { + if (!content) { + this.tooltip.css('visibility', 'hidden'); + this.hidden = true; + return; + } + this.getSize(content); + this.tooltip.html(content) + .css({ + 'width': this.width, + 'height': this.height, + 'visibility': 'visible' + }); + if (this.hidden) { + this.hidden = false; + this.updatePosition(); + } + }, + + updatePosition: function (x, y) { + if (x === undefined) { + if (this.mousex === undefined) { + return; + } + x = this.mousex - this.offsetLeft; + y = this.mousey - this.offsetTop; + + } else { + this.mousex = x = x - this.offsetLeft; + this.mousey = y = y - this.offsetTop; + } + if (!this.height || !this.width || this.hidden) { + return; + } + + y -= this.height + this.tooltipOffsetY; + x += this.tooltipOffsetX; + + if (y < this.scrollTop) { + y = this.scrollTop; + } + if (x < this.scrollLeft) { + x = this.scrollLeft; + } else if (x + this.width > this.scrollRight) { + x = this.scrollRight - this.width; + } + + this.tooltip.css({ + 'left': x, + 'top': y + }); + }, + + remove: function () { + this.tooltip.remove(); + this.sizetip.remove(); + this.sizetip = this.tooltip = undefined; + $(window).unbind('resize.jqs scroll.jqs'); + } + }); + + initStyles = function() { + addCSS(defaultStyles); + }; + + $(initStyles); + + pending = []; + $.fn.sparkline = function (userValues, userOptions) { + return this.each(function () { + var options = new $.fn.sparkline.options(this, userOptions), + $this = $(this), + render, i; + render = function () { + var values, width, height, tmp, mhandler, sp, vals; + if (userValues === 'html' || userValues === undefined) { + vals = this.getAttribute(options.get('tagValuesAttribute')); + if (vals === undefined || vals === null) { + vals = $this.html(); + } + values = vals.replace(/(^\s*\s*$)|\s+/g, '').split(','); + } else { + values = userValues; + } + + width = options.get('width') === 'auto' ? values.length * options.get('defaultPixelsPerValue') : options.get('width'); + if (options.get('height') === 'auto') { + if (!options.get('composite') || !$.data(this, '_jqs_vcanvas')) { + // must be a better way to get the line height + tmp = document.createElement('span'); + tmp.innerHTML = 'a'; + $this.html(tmp); + height = $(tmp).innerHeight() || $(tmp).height(); + $(tmp).remove(); + tmp = null; + } + } else { + height = options.get('height'); + } + + if (!options.get('disableInteraction')) { + mhandler = $.data(this, '_jqs_mhandler'); + if (!mhandler) { + mhandler = new MouseHandler(this, options); + $.data(this, '_jqs_mhandler', mhandler); + } else if (!options.get('composite')) { + mhandler.reset(); + } + } else { + mhandler = false; + } + + if (options.get('composite') && !$.data(this, '_jqs_vcanvas')) { + if (!$.data(this, '_jqs_errnotify')) { + alert('Attempted to attach a composite sparkline to an element with no existing sparkline'); + $.data(this, '_jqs_errnotify', true); + } + return; + } + + sp = new $.fn.sparkline[options.get('type')](this, values, options, width, height); + + sp.render(); + + if (mhandler) { + mhandler.registerSparkline(sp); + } + }; + if (($(this).html() && !options.get('disableHiddenCheck') && $(this).is(':hidden')) || !$(this).parents('body').length) { + if (!options.get('composite') && $.data(this, '_jqs_pending')) { + // remove any existing references to the element + for (i = pending.length; i; i--) { + if (pending[i - 1][0] == this) { + pending.splice(i - 1, 1); + } + } + } + pending.push([this, render]); + $.data(this, '_jqs_pending', true); + } else { + render.call(this); + } + }); + }; + + $.fn.sparkline.defaults = getDefaults(); + + + $.sparkline_display_visible = function () { + var el, i, pl; + var done = []; + for (i = 0, pl = pending.length; i < pl; i++) { + el = pending[i][0]; + if ($(el).is(':visible') && !$(el).parents().is(':hidden')) { + pending[i][1].call(el); + $.data(pending[i][0], '_jqs_pending', false); + done.push(i); + } else if (!$(el).closest('html').length && !$.data(el, '_jqs_pending')) { + // element has been inserted and removed from the DOM + // If it was not yet inserted into the dom then the .data request + // will return true. + // removing from the dom causes the data to be removed. + $.data(pending[i][0], '_jqs_pending', false); + done.push(i); + } + } + for (i = done.length; i; i--) { + pending.splice(done[i - 1], 1); + } + }; + + + /** + * User option handler + */ + $.fn.sparkline.options = createClass({ + init: function (tag, userOptions) { + var extendedOptions, defaults, base, tagOptionType; + this.userOptions = userOptions = userOptions || {}; + this.tag = tag; + this.tagValCache = {}; + defaults = $.fn.sparkline.defaults; + base = defaults.common; + this.tagOptionsPrefix = userOptions.enableTagOptions && (userOptions.tagOptionsPrefix || base.tagOptionsPrefix); + + tagOptionType = this.getTagSetting('type'); + if (tagOptionType === UNSET_OPTION) { + extendedOptions = defaults[userOptions.type || base.type]; + } else { + extendedOptions = defaults[tagOptionType]; + } + this.mergedOptions = $.extend({}, base, extendedOptions, userOptions); + }, + + + getTagSetting: function (key) { + var prefix = this.tagOptionsPrefix, + val, i, pairs, keyval; + if (prefix === false || prefix === undefined) { + return UNSET_OPTION; + } + if (this.tagValCache.hasOwnProperty(key)) { + val = this.tagValCache.key; + } else { + val = this.tag.getAttribute(prefix + key); + if (val === undefined || val === null) { + val = UNSET_OPTION; + } else if (val.substr(0, 1) === '[') { + val = val.substr(1, val.length - 2).split(','); + for (i = val.length; i--;) { + val[i] = normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g, '')); + } + } else if (val.substr(0, 1) === '{') { + pairs = val.substr(1, val.length - 2).split(','); + val = {}; + for (i = pairs.length; i--;) { + keyval = pairs[i].split(':', 2); + val[keyval[0].replace(/(^\s*)|(\s*$)/g, '')] = normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g, '')); + } + } else { + val = normalizeValue(val); + } + this.tagValCache.key = val; + } + return val; + }, + + get: function (key, defaultval) { + var tagOption = this.getTagSetting(key), + result; + if (tagOption !== UNSET_OPTION) { + return tagOption; + } + return (result = this.mergedOptions[key]) === undefined ? defaultval : result; + } + }); + + + $.fn.sparkline._base = createClass({ + disabled: false, + + init: function (el, values, options, width, height) { + this.el = el; + this.$el = $(el); + this.values = values; + this.options = options; + this.width = width; + this.height = height; + this.currentRegion = undefined; + }, + + /** + * Setup the canvas + */ + initTarget: function () { + var interactive = !this.options.get('disableInteraction'); + if (!(this.target = this.$el.simpledraw(this.width, this.height, this.options.get('composite'), interactive))) { + this.disabled = true; + } else { + this.canvasWidth = this.target.pixelWidth; + this.canvasHeight = this.target.pixelHeight; + } + }, + + /** + * Actually render the chart to the canvas + */ + render: function () { + if (this.disabled) { + this.el.innerHTML = ''; + return false; + } + return true; + }, + + /** + * Return a region id for a given x/y co-ordinate + */ + getRegion: function (x, y) { + }, + + /** + * Highlight an item based on the moused-over x,y co-ordinate + */ + setRegionHighlight: function (el, x, y) { + var currentRegion = this.currentRegion, + highlightEnabled = !this.options.get('disableHighlight'), + newRegion; + if (x > this.canvasWidth || y > this.canvasHeight || x < 0 || y < 0) { + return null; + } + newRegion = this.getRegion(el, x, y); + if (currentRegion !== newRegion) { + if (currentRegion !== undefined && highlightEnabled) { + this.removeHighlight(); + } + this.currentRegion = newRegion; + if (newRegion !== undefined && highlightEnabled) { + this.renderHighlight(); + } + return true; + } + return false; + }, + + /** + * Reset any currently highlighted item + */ + clearRegionHighlight: function () { + if (this.currentRegion !== undefined) { + this.removeHighlight(); + this.currentRegion = undefined; + return true; + } + return false; + }, + + renderHighlight: function () { + this.changeHighlight(true); + }, + + removeHighlight: function () { + this.changeHighlight(false); + }, + + changeHighlight: function (highlight) {}, + + /** + * Fetch the HTML to display as a tooltip + */ + getCurrentRegionTooltip: function () { + var options = this.options, + header = '', + entries = [], + fields, formats, formatlen, fclass, text, i, + showFields, showFieldsKey, newFields, fv, + formatter, format, fieldlen, j; + if (this.currentRegion === undefined) { + return ''; + } + fields = this.getCurrentRegionFields(); + formatter = options.get('tooltipFormatter'); + if (formatter) { + return formatter(this, options, fields); + } + if (options.get('tooltipChartTitle')) { + header += '
' + options.get('tooltipChartTitle') + '
\n'; + } + formats = this.options.get('tooltipFormat'); + if (!formats) { + return ''; + } + if (!$.isArray(formats)) { + formats = [formats]; + } + if (!$.isArray(fields)) { + fields = [fields]; + } + showFields = this.options.get('tooltipFormatFieldlist'); + showFieldsKey = this.options.get('tooltipFormatFieldlistKey'); + if (showFields && showFieldsKey) { + // user-selected ordering of fields + newFields = []; + for (i = fields.length; i--;) { + fv = fields[i][showFieldsKey]; + if ((j = $.inArray(fv, showFields)) != -1) { + newFields[j] = fields[i]; + } + } + fields = newFields; + } + formatlen = formats.length; + fieldlen = fields.length; + for (i = 0; i < formatlen; i++) { + format = formats[i]; + if (typeof format === 'string') { + format = new SPFormat(format); + } + fclass = format.fclass || 'jqsfield'; + for (j = 0; j < fieldlen; j++) { + if (!fields[j].isNull || !options.get('tooltipSkipNull')) { + $.extend(fields[j], { + prefix: options.get('tooltipPrefix'), + suffix: options.get('tooltipSuffix') + }); + text = format.render(fields[j], options.get('tooltipValueLookups'), options); + entries.push('
' + text + '
'); + } + } + } + if (entries.length) { + return header + entries.join('\n'); + } + return ''; + }, + + getCurrentRegionFields: function () {}, + + calcHighlightColor: function (color, options) { + var highlightColor = options.get('highlightColor'), + lighten = options.get('highlightLighten'), + parse, mult, rgbnew, i; + if (highlightColor) { + return highlightColor; + } + if (lighten) { + // extract RGB values + parse = /^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(color) || /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(color); + if (parse) { + rgbnew = []; + mult = color.length === 4 ? 16 : 1; + for (i = 0; i < 3; i++) { + rgbnew[i] = clipval(Math.round(parseInt(parse[i + 1], 16) * mult * lighten), 0, 255); + } + return 'rgb(' + rgbnew.join(',') + ')'; + } + + } + return color; + } + + }); + + barHighlightMixin = { + changeHighlight: function (highlight) { + var currentRegion = this.currentRegion, + target = this.target, + shapeids = this.regionShapes[currentRegion], + newShapes; + // will be null if the region value was null + if (shapeids) { + newShapes = this.renderRegion(currentRegion, highlight); + if ($.isArray(newShapes) || $.isArray(shapeids)) { + target.replaceWithShapes(shapeids, newShapes); + this.regionShapes[currentRegion] = $.map(newShapes, function (newShape) { + return newShape.id; + }); + } else { + target.replaceWithShape(shapeids, newShapes); + this.regionShapes[currentRegion] = newShapes.id; + } + } + }, + + render: function () { + var values = this.values, + target = this.target, + regionShapes = this.regionShapes, + shapes, ids, i, j; + + if (!this.cls._super.render.call(this)) { + return; + } + for (i = values.length; i--;) { + shapes = this.renderRegion(i); + if (shapes) { + if ($.isArray(shapes)) { + ids = []; + for (j = shapes.length; j--;) { + shapes[j].append(); + ids.push(shapes[j].id); + } + regionShapes[i] = ids; + } else { + shapes.append(); + regionShapes[i] = shapes.id; // store just the shapeid + } + } else { + // null value + regionShapes[i] = null; + } + } + target.render(); + } + }; + + /** + * Line charts + */ + $.fn.sparkline.line = line = createClass($.fn.sparkline._base, { + type: 'line', + + init: function (el, values, options, width, height) { + line._super.init.call(this, el, values, options, width, height); + this.vertices = []; + this.regionMap = []; + this.xvalues = []; + this.yvalues = []; + this.yminmax = []; + this.hightlightSpotId = null; + this.lastShapeId = null; + this.initTarget(); + }, + + getRegion: function (el, x, y) { + var i, + regionMap = this.regionMap; // maps regions to value positions + for (i = regionMap.length; i--;) { + if (regionMap[i] !== null && x >= regionMap[i][0] && x <= regionMap[i][1]) { + return regionMap[i][2]; + } + } + return undefined; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.yvalues[currentRegion] === null, + x: this.xvalues[currentRegion], + y: this.yvalues[currentRegion], + color: this.options.get('lineColor'), + fillColor: this.options.get('fillColor'), + offset: currentRegion + }; + }, + + renderHighlight: function () { + var currentRegion = this.currentRegion, + target = this.target, + vertex = this.vertices[currentRegion], + options = this.options, + spotRadius = options.get('spotRadius'), + highlightSpotColor = options.get('highlightSpotColor'), + highlightLineColor = options.get('highlightLineColor'), + highlightSpot, highlightLine; + + if (!vertex) { + return; + } + if (spotRadius && highlightSpotColor) { + highlightSpot = target.drawCircle(vertex[0], vertex[1], + spotRadius, undefined, highlightSpotColor); + this.highlightSpotId = highlightSpot.id; + target.insertAfterShape(this.lastShapeId, highlightSpot); + } + if (highlightLineColor) { + highlightLine = target.drawLine(vertex[0], this.canvasTop, vertex[0], + this.canvasTop + this.canvasHeight, highlightLineColor); + this.highlightLineId = highlightLine.id; + target.insertAfterShape(this.lastShapeId, highlightLine); + } + }, + + removeHighlight: function () { + var target = this.target; + if (this.highlightSpotId) { + target.removeShapeId(this.highlightSpotId); + this.highlightSpotId = null; + } + if (this.highlightLineId) { + target.removeShapeId(this.highlightLineId); + this.highlightLineId = null; + } + }, + + scanValues: function () { + var values = this.values, + valcount = values.length, + xvalues = this.xvalues, + yvalues = this.yvalues, + yminmax = this.yminmax, + i, val, isStr, isArray, sp; + for (i = 0; i < valcount; i++) { + val = values[i]; + isStr = typeof(values[i]) === 'string'; + isArray = typeof(values[i]) === 'object' && values[i] instanceof Array; + sp = isStr && values[i].split(':'); + if (isStr && sp.length === 2) { // x:y + xvalues.push(Number(sp[0])); + yvalues.push(Number(sp[1])); + yminmax.push(Number(sp[1])); + } else if (isArray) { + xvalues.push(val[0]); + yvalues.push(val[1]); + yminmax.push(val[1]); + } else { + xvalues.push(i); + if (values[i] === null || values[i] === 'null') { + yvalues.push(null); + } else { + yvalues.push(Number(val)); + yminmax.push(Number(val)); + } + } + } + if (this.options.get('xvalues')) { + xvalues = this.options.get('xvalues'); + } + + this.maxy = this.maxyorg = Math.max.apply(Math, yminmax); + this.miny = this.minyorg = Math.min.apply(Math, yminmax); + + this.maxx = Math.max.apply(Math, xvalues); + this.minx = Math.min.apply(Math, xvalues); + + this.xvalues = xvalues; + this.yvalues = yvalues; + this.yminmax = yminmax; + + }, + + processRangeOptions: function () { + var options = this.options, + normalRangeMin = options.get('normalRangeMin'), + normalRangeMax = options.get('normalRangeMax'); + + if (normalRangeMin !== undefined) { + if (normalRangeMin < this.miny) { + this.miny = normalRangeMin; + } + if (normalRangeMax > this.maxy) { + this.maxy = normalRangeMax; + } + } + if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.miny)) { + this.miny = options.get('chartRangeMin'); + } + if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.maxy)) { + this.maxy = options.get('chartRangeMax'); + } + if (options.get('chartRangeMinX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMinX') < this.minx)) { + this.minx = options.get('chartRangeMinX'); + } + if (options.get('chartRangeMaxX') !== undefined && (options.get('chartRangeClipX') || options.get('chartRangeMaxX') > this.maxx)) { + this.maxx = options.get('chartRangeMaxX'); + } + + }, + + drawNormalRange: function (canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey) { + var normalRangeMin = this.options.get('normalRangeMin'), + normalRangeMax = this.options.get('normalRangeMax'), + ytop = canvasTop + Math.round(canvasHeight - (canvasHeight * ((normalRangeMax - this.miny) / rangey))), + height = Math.round((canvasHeight * (normalRangeMax - normalRangeMin)) / rangey); + this.target.drawRect(canvasLeft, ytop, canvasWidth, height, undefined, this.options.get('normalRangeColor')).append(); + }, + + render: function () { + var options = this.options, + target = this.target, + canvasWidth = this.canvasWidth, + canvasHeight = this.canvasHeight, + vertices = this.vertices, + spotRadius = options.get('spotRadius'), + regionMap = this.regionMap, + rangex, rangey, yvallast, + canvasTop, canvasLeft, + vertex, path, paths, x, y, xnext, xpos, xposnext, + last, next, yvalcount, lineShapes, fillShapes, plen, + valueSpots, hlSpotsEnabled, color, xvalues, yvalues, i; + + if (!line._super.render.call(this)) { + return; + } + + this.scanValues(); + this.processRangeOptions(); + + xvalues = this.xvalues; + yvalues = this.yvalues; + + if (!this.yminmax.length || this.yvalues.length < 2) { + // empty or all null valuess + return; + } + + canvasTop = canvasLeft = 0; + + rangex = this.maxx - this.minx === 0 ? 1 : this.maxx - this.minx; + rangey = this.maxy - this.miny === 0 ? 1 : this.maxy - this.miny; + yvallast = this.yvalues.length - 1; + + if (spotRadius && (canvasWidth < (spotRadius * 4) || canvasHeight < (spotRadius * 4))) { + spotRadius = 0; + } + if (spotRadius) { + // adjust the canvas size as required so that spots will fit + hlSpotsEnabled = options.get('highlightSpotColor') && !options.get('disableInteraction'); + if (hlSpotsEnabled || options.get('minSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.miny)) { + canvasHeight -= Math.ceil(spotRadius); + } + if (hlSpotsEnabled || options.get('maxSpotColor') || (options.get('spotColor') && yvalues[yvallast] === this.maxy)) { + canvasHeight -= Math.ceil(spotRadius); + canvasTop += Math.ceil(spotRadius); + } + if (hlSpotsEnabled || + ((options.get('minSpotColor') || options.get('maxSpotColor')) && (yvalues[0] === this.miny || yvalues[0] === this.maxy))) { + canvasLeft += Math.ceil(spotRadius); + canvasWidth -= Math.ceil(spotRadius); + } + if (hlSpotsEnabled || options.get('spotColor') || + (options.get('minSpotColor') || options.get('maxSpotColor') && + (yvalues[yvallast] === this.miny || yvalues[yvallast] === this.maxy))) { + canvasWidth -= Math.ceil(spotRadius); + } + } + + + canvasHeight--; + + if (options.get('normalRangeMin') !== undefined && !options.get('drawNormalOnTop')) { + this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); + } + + path = []; + paths = [path]; + last = next = null; + yvalcount = yvalues.length; + for (i = 0; i < yvalcount; i++) { + x = xvalues[i]; + xnext = xvalues[i + 1]; + y = yvalues[i]; + xpos = canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)); + xposnext = i < yvalcount - 1 ? canvasLeft + Math.round((xnext - this.minx) * (canvasWidth / rangex)) : canvasWidth; + next = xpos + ((xposnext - xpos) / 2); + regionMap[i] = [last || 0, next, i]; + last = next; + if (y === null) { + if (i) { + if (yvalues[i - 1] !== null) { + path = []; + paths.push(path); + } + vertices.push(null); + } + } else { + if (y < this.miny) { + y = this.miny; + } + if (y > this.maxy) { + y = this.maxy; + } + if (!path.length) { + // previous value was null + path.push([xpos, canvasTop + canvasHeight]); + } + vertex = [xpos, canvasTop + Math.round(canvasHeight - (canvasHeight * ((y - this.miny) / rangey)))]; + path.push(vertex); + vertices.push(vertex); + } + } + + lineShapes = []; + fillShapes = []; + plen = paths.length; + for (i = 0; i < plen; i++) { + path = paths[i]; + if (path.length) { + if (options.get('fillColor')) { + path.push([path[path.length - 1][0], (canvasTop + canvasHeight)]); + fillShapes.push(path.slice(0)); + path.pop(); + } + // if there's only a single point in this path, then we want to display it + // as a vertical line which means we keep path[0] as is + if (path.length > 2) { + // else we want the first value + path[0] = [path[0][0], path[1][1]]; + } + lineShapes.push(path); + } + } + + // draw the fill first, then optionally the normal range, then the line on top of that + plen = fillShapes.length; + for (i = 0; i < plen; i++) { + target.drawShape(fillShapes[i], + options.get('fillColor'), options.get('fillColor')).append(); + } + + if (options.get('normalRangeMin') !== undefined && options.get('drawNormalOnTop')) { + this.drawNormalRange(canvasLeft, canvasTop, canvasHeight, canvasWidth, rangey); + } + + plen = lineShapes.length; + for (i = 0; i < plen; i++) { + target.drawShape(lineShapes[i], options.get('lineColor'), undefined, + options.get('lineWidth')).append(); + } + + if (spotRadius && options.get('valueSpots')) { + valueSpots = options.get('valueSpots'); + if (valueSpots.get === undefined) { + valueSpots = new RangeMap(valueSpots); + } + for (i = 0; i < yvalcount; i++) { + color = valueSpots.get(yvalues[i]); + if (color) { + target.drawCircle(canvasLeft + Math.round((xvalues[i] - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[i] - this.miny) / rangey))), + spotRadius, undefined, + color).append(); + } + } + + } + if (spotRadius && options.get('spotColor') && yvalues[yvallast] !== null) { + target.drawCircle(canvasLeft + Math.round((xvalues[xvalues.length - 1] - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((yvalues[yvallast] - this.miny) / rangey))), + spotRadius, undefined, + options.get('spotColor')).append(); + } + if (this.maxy !== this.minyorg) { + if (spotRadius && options.get('minSpotColor')) { + x = xvalues[$.inArray(this.minyorg, yvalues)]; + target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.minyorg - this.miny) / rangey))), + spotRadius, undefined, + options.get('minSpotColor')).append(); + } + if (spotRadius && options.get('maxSpotColor')) { + x = xvalues[$.inArray(this.maxyorg, yvalues)]; + target.drawCircle(canvasLeft + Math.round((x - this.minx) * (canvasWidth / rangex)), + canvasTop + Math.round(canvasHeight - (canvasHeight * ((this.maxyorg - this.miny) / rangey))), + spotRadius, undefined, + options.get('maxSpotColor')).append(); + } + } + + this.lastShapeId = target.getLastShapeId(); + this.canvasTop = canvasTop; + target.render(); + } + }); + + /** + * Bar charts + */ + $.fn.sparkline.bar = bar = createClass($.fn.sparkline._base, barHighlightMixin, { + type: 'bar', + + init: function (el, values, options, width, height) { + var barWidth = parseInt(options.get('barWidth'), 10), + barSpacing = parseInt(options.get('barSpacing'), 10), + chartRangeMin = options.get('chartRangeMin'), + chartRangeMax = options.get('chartRangeMax'), + chartRangeClip = options.get('chartRangeClip'), + stackMin = Infinity, + stackMax = -Infinity, + isStackString, groupMin, groupMax, stackRanges, + numValues, i, vlen, range, zeroAxis, xaxisOffset, min, max, clipMin, clipMax, + stacked, vlist, j, slen, svals, val, yoffset, yMaxCalc, canvasHeightEf; + bar._super.init.call(this, el, values, options, width, height); + + // scan values to determine whether to stack bars + for (i = 0, vlen = values.length; i < vlen; i++) { + val = values[i]; + isStackString = typeof(val) === 'string' && val.indexOf(':') > -1; + if (isStackString || $.isArray(val)) { + stacked = true; + if (isStackString) { + val = values[i] = normalizeValues(val.split(':')); + } + val = remove(val, null); // min/max will treat null as zero + groupMin = Math.min.apply(Math, val); + groupMax = Math.max.apply(Math, val); + if (groupMin < stackMin) { + stackMin = groupMin; + } + if (groupMax > stackMax) { + stackMax = groupMax; + } + } + } + + this.stacked = stacked; + this.regionShapes = {}; + this.barWidth = barWidth; + this.barSpacing = barSpacing; + this.totalBarWidth = barWidth + barSpacing; + this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); + + this.initTarget(); + + if (chartRangeClip) { + clipMin = chartRangeMin === undefined ? -Infinity : chartRangeMin; + clipMax = chartRangeMax === undefined ? Infinity : chartRangeMax; + } + + numValues = []; + stackRanges = stacked ? [] : numValues; + var stackTotals = []; + var stackRangesNeg = []; + for (i = 0, vlen = values.length; i < vlen; i++) { + if (stacked) { + vlist = values[i]; + values[i] = svals = []; + stackTotals[i] = 0; + stackRanges[i] = stackRangesNeg[i] = 0; + for (j = 0, slen = vlist.length; j < slen; j++) { + val = svals[j] = chartRangeClip ? clipval(vlist[j], clipMin, clipMax) : vlist[j]; + if (val !== null) { + if (val > 0) { + stackTotals[i] += val; + } + if (stackMin < 0 && stackMax > 0) { + if (val < 0) { + stackRangesNeg[i] += Math.abs(val); + } else { + stackRanges[i] += val; + } + } else { + stackRanges[i] += Math.abs(val - (val < 0 ? stackMax : stackMin)); + } + numValues.push(val); + } + } + } else { + val = chartRangeClip ? clipval(values[i], clipMin, clipMax) : values[i]; + val = values[i] = normalizeValue(val); + if (val !== null) { + numValues.push(val); + } + } + } + this.max = max = Math.max.apply(Math, numValues); + this.min = min = Math.min.apply(Math, numValues); + this.stackMax = stackMax = stacked ? Math.max.apply(Math, stackTotals) : max; + this.stackMin = stackMin = stacked ? Math.min.apply(Math, numValues) : min; + + if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < min)) { + min = options.get('chartRangeMin'); + } + if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > max)) { + max = options.get('chartRangeMax'); + } + + this.zeroAxis = zeroAxis = options.get('zeroAxis', true); + if (min <= 0 && max >= 0 && zeroAxis) { + xaxisOffset = 0; + } else if (zeroAxis == false) { + xaxisOffset = min; + } else if (min > 0) { + xaxisOffset = min; + } else { + xaxisOffset = max; + } + this.xaxisOffset = xaxisOffset; + + range = stacked ? (Math.max.apply(Math, stackRanges) + Math.max.apply(Math, stackRangesNeg)) : max - min; + + // as we plot zero/min values a single pixel line, we add a pixel to all other + // values - Reduce the effective canvas size to suit + this.canvasHeightEf = (zeroAxis && min < 0) ? this.canvasHeight - 2 : this.canvasHeight - 1; + + if (min < xaxisOffset) { + yMaxCalc = (stacked && max >= 0) ? stackMax : max; + yoffset = (yMaxCalc - xaxisOffset) / range * this.canvasHeight; + if (yoffset !== Math.ceil(yoffset)) { + this.canvasHeightEf -= 2; + yoffset = Math.ceil(yoffset); + } + } else { + yoffset = this.canvasHeight; + } + this.yoffset = yoffset; + + if ($.isArray(options.get('colorMap'))) { + this.colorMapByIndex = options.get('colorMap'); + this.colorMapByValue = null; + } else { + this.colorMapByIndex = null; + this.colorMapByValue = options.get('colorMap'); + if (this.colorMapByValue && this.colorMapByValue.get === undefined) { + this.colorMapByValue = new RangeMap(this.colorMapByValue); + } + } + + this.range = range; + }, + + getRegion: function (el, x, y) { + var result = Math.floor(x / this.totalBarWidth); + return (result < 0 || result >= this.values.length) ? undefined : result; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion, + values = ensureArray(this.values[currentRegion]), + result = [], + value, i; + for (i = values.length; i--;) { + value = values[i]; + result.push({ + isNull: value === null, + value: value, + color: this.calcColor(i, value, currentRegion), + offset: currentRegion + }); + } + return result; + }, + + calcColor: function (stacknum, value, valuenum) { + var colorMapByIndex = this.colorMapByIndex, + colorMapByValue = this.colorMapByValue, + options = this.options, + color, newColor; + if (this.stacked) { + color = options.get('stackedBarColor'); + } else { + color = (value < 0) ? options.get('negBarColor') : options.get('barColor'); + } + if (value === 0 && options.get('zeroColor') !== undefined) { + color = options.get('zeroColor'); + } + if (colorMapByValue && (newColor = colorMapByValue.get(value))) { + color = newColor; + } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { + color = colorMapByIndex[valuenum]; + } + return $.isArray(color) ? color[stacknum % color.length] : color; + }, + + /** + * Render bar(s) for a region + */ + renderRegion: function (valuenum, highlight) { + var vals = this.values[valuenum], + options = this.options, + xaxisOffset = this.xaxisOffset, + result = [], + range = this.range, + stacked = this.stacked, + target = this.target, + x = valuenum * this.totalBarWidth, + canvasHeightEf = this.canvasHeightEf, + yoffset = this.yoffset, + y, height, color, isNull, yoffsetNeg, i, valcount, val, minPlotted, allMin; + + vals = $.isArray(vals) ? vals : [vals]; + valcount = vals.length; + val = vals[0]; + isNull = all(null, vals); + allMin = all(xaxisOffset, vals, true); + + if (isNull) { + if (options.get('nullColor')) { + color = highlight ? options.get('nullColor') : this.calcHighlightColor(options.get('nullColor'), options); + y = (yoffset > 0) ? yoffset - 1 : yoffset; + return target.drawRect(x, y, this.barWidth - 1, 0, color, color); + } else { + return undefined; + } + } + yoffsetNeg = yoffset; + for (i = 0; i < valcount; i++) { + val = vals[i]; + + if (stacked && val === xaxisOffset) { + if (!allMin || minPlotted) { + continue; + } + minPlotted = true; + } + + if (range > 0) { + height = Math.floor(canvasHeightEf * ((Math.abs(val - xaxisOffset) / range))) + 1; + } else { + height = 1; + } + if (val < xaxisOffset || (val === xaxisOffset && yoffset === 0)) { + y = yoffsetNeg; + yoffsetNeg += height; + } else { + y = yoffset - height; + yoffset -= height; + } + color = this.calcColor(i, val, valuenum); + if (highlight) { + color = this.calcHighlightColor(color, options); + } + result.push(target.drawRect(x, y, this.barWidth - 1, height - 1, color, color)); + } + if (result.length === 1) { + return result[0]; + } + return result; + } + }); + + /** + * Tristate charts + */ + $.fn.sparkline.tristate = tristate = createClass($.fn.sparkline._base, barHighlightMixin, { + type: 'tristate', + + init: function (el, values, options, width, height) { + var barWidth = parseInt(options.get('barWidth'), 10), + barSpacing = parseInt(options.get('barSpacing'), 10); + tristate._super.init.call(this, el, values, options, width, height); + + this.regionShapes = {}; + this.barWidth = barWidth; + this.barSpacing = barSpacing; + this.totalBarWidth = barWidth + barSpacing; + this.values = $.map(values, Number); + this.width = width = (values.length * barWidth) + ((values.length - 1) * barSpacing); + + if ($.isArray(options.get('colorMap'))) { + this.colorMapByIndex = options.get('colorMap'); + this.colorMapByValue = null; + } else { + this.colorMapByIndex = null; + this.colorMapByValue = options.get('colorMap'); + if (this.colorMapByValue && this.colorMapByValue.get === undefined) { + this.colorMapByValue = new RangeMap(this.colorMapByValue); + } + } + this.initTarget(); + }, + + getRegion: function (el, x, y) { + return Math.floor(x / this.totalBarWidth); + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.values[currentRegion] === undefined, + value: this.values[currentRegion], + color: this.calcColor(this.values[currentRegion], currentRegion), + offset: currentRegion + }; + }, + + calcColor: function (value, valuenum) { + var values = this.values, + options = this.options, + colorMapByIndex = this.colorMapByIndex, + colorMapByValue = this.colorMapByValue, + color, newColor; + + if (colorMapByValue && (newColor = colorMapByValue.get(value))) { + color = newColor; + } else if (colorMapByIndex && colorMapByIndex.length > valuenum) { + color = colorMapByIndex[valuenum]; + } else if (values[valuenum] < 0) { + color = options.get('negBarColor'); + } else if (values[valuenum] > 0) { + color = options.get('posBarColor'); + } else { + color = options.get('zeroBarColor'); + } + return color; + }, + + renderRegion: function (valuenum, highlight) { + var values = this.values, + options = this.options, + target = this.target, + canvasHeight, height, halfHeight, + x, y, color; + + canvasHeight = target.pixelHeight; + halfHeight = Math.round(canvasHeight / 2); + + x = valuenum * this.totalBarWidth; + if (values[valuenum] < 0) { + y = halfHeight; + height = halfHeight - 1; + } else if (values[valuenum] > 0) { + y = 0; + height = halfHeight - 1; + } else { + y = halfHeight - 1; + height = 2; + } + color = this.calcColor(values[valuenum], valuenum); + if (color === null) { + return; + } + if (highlight) { + color = this.calcHighlightColor(color, options); + } + return target.drawRect(x, y, this.barWidth - 1, height - 1, color, color); + } + }); + + /** + * Discrete charts + */ + $.fn.sparkline.discrete = discrete = createClass($.fn.sparkline._base, barHighlightMixin, { + type: 'discrete', + + init: function (el, values, options, width, height) { + discrete._super.init.call(this, el, values, options, width, height); + + this.regionShapes = {}; + this.values = values = $.map(values, Number); + this.min = Math.min.apply(Math, values); + this.max = Math.max.apply(Math, values); + this.range = this.max - this.min; + this.width = width = options.get('width') === 'auto' ? values.length * 2 : this.width; + this.interval = Math.floor(width / values.length); + this.itemWidth = width / values.length; + if (options.get('chartRangeMin') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMin') < this.min)) { + this.min = options.get('chartRangeMin'); + } + if (options.get('chartRangeMax') !== undefined && (options.get('chartRangeClip') || options.get('chartRangeMax') > this.max)) { + this.max = options.get('chartRangeMax'); + } + this.initTarget(); + if (this.target) { + this.lineHeight = options.get('lineHeight') === 'auto' ? Math.round(this.canvasHeight * 0.3) : options.get('lineHeight'); + } + }, + + getRegion: function (el, x, y) { + return Math.floor(x / this.itemWidth); + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.values[currentRegion] === undefined, + value: this.values[currentRegion], + offset: currentRegion + }; + }, + + renderRegion: function (valuenum, highlight) { + var values = this.values, + options = this.options, + min = this.min, + max = this.max, + range = this.range, + interval = this.interval, + target = this.target, + canvasHeight = this.canvasHeight, + lineHeight = this.lineHeight, + pheight = canvasHeight - lineHeight, + ytop, val, color, x; + + val = clipval(values[valuenum], min, max); + x = valuenum * interval; + ytop = Math.round(pheight - pheight * ((val - min) / range)); + color = (options.get('thresholdColor') && val < options.get('thresholdValue')) ? options.get('thresholdColor') : options.get('lineColor'); + if (highlight) { + color = this.calcHighlightColor(color, options); + } + return target.drawLine(x, ytop, x, ytop + lineHeight, color); + } + }); + + /** + * Bullet charts + */ + $.fn.sparkline.bullet = bullet = createClass($.fn.sparkline._base, { + type: 'bullet', + + init: function (el, values, options, width, height) { + var min, max, vals; + bullet._super.init.call(this, el, values, options, width, height); + + // values: target, performance, range1, range2, range3 + this.values = values = normalizeValues(values); + // target or performance could be null + vals = values.slice(); + vals[0] = vals[0] === null ? vals[2] : vals[0]; + vals[1] = values[1] === null ? vals[2] : vals[1]; + min = Math.min.apply(Math, values); + max = Math.max.apply(Math, values); + if (options.get('base') === undefined) { + min = min < 0 ? min : 0; + } else { + min = options.get('base'); + } + this.min = min; + this.max = max; + this.range = max - min; + this.shapes = {}; + this.valueShapes = {}; + this.regiondata = {}; + this.width = width = options.get('width') === 'auto' ? '4.0em' : width; + this.target = this.$el.simpledraw(width, height, options.get('composite')); + if (!values.length) { + this.disabled = true; + } + this.initTarget(); + }, + + getRegion: function (el, x, y) { + var shapeid = this.target.getShapeAt(el, x, y); + return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + fieldkey: currentRegion.substr(0, 1), + value: this.values[currentRegion.substr(1)], + region: currentRegion + }; + }, + + changeHighlight: function (highlight) { + var currentRegion = this.currentRegion, + shapeid = this.valueShapes[currentRegion], + shape; + delete this.shapes[shapeid]; + switch (currentRegion.substr(0, 1)) { + case 'r': + shape = this.renderRange(currentRegion.substr(1), highlight); + break; + case 'p': + shape = this.renderPerformance(highlight); + break; + case 't': + shape = this.renderTarget(highlight); + break; + } + this.valueShapes[currentRegion] = shape.id; + this.shapes[shape.id] = currentRegion; + this.target.replaceWithShape(shapeid, shape); + }, + + renderRange: function (rn, highlight) { + var rangeval = this.values[rn], + rangewidth = Math.round(this.canvasWidth * ((rangeval - this.min) / this.range)), + color = this.options.get('rangeColors')[rn - 2]; + if (highlight) { + color = this.calcHighlightColor(color, this.options); + } + return this.target.drawRect(0, 0, rangewidth - 1, this.canvasHeight - 1, color, color); + }, + + renderPerformance: function (highlight) { + var perfval = this.values[1], + perfwidth = Math.round(this.canvasWidth * ((perfval - this.min) / this.range)), + color = this.options.get('performanceColor'); + if (highlight) { + color = this.calcHighlightColor(color, this.options); + } + return this.target.drawRect(0, Math.round(this.canvasHeight * 0.3), perfwidth - 1, + Math.round(this.canvasHeight * 0.4) - 1, color, color); + }, + + renderTarget: function (highlight) { + var targetval = this.values[0], + x = Math.round(this.canvasWidth * ((targetval - this.min) / this.range) - (this.options.get('targetWidth') / 2)), + targettop = Math.round(this.canvasHeight * 0.10), + targetheight = this.canvasHeight - (targettop * 2), + color = this.options.get('targetColor'); + if (highlight) { + color = this.calcHighlightColor(color, this.options); + } + return this.target.drawRect(x, targettop, this.options.get('targetWidth') - 1, targetheight - 1, color, color); + }, + + render: function () { + var vlen = this.values.length, + target = this.target, + i, shape; + if (!bullet._super.render.call(this)) { + return; + } + for (i = 2; i < vlen; i++) { + shape = this.renderRange(i).append(); + this.shapes[shape.id] = 'r' + i; + this.valueShapes['r' + i] = shape.id; + } + if (this.values[1] !== null) { + shape = this.renderPerformance().append(); + this.shapes[shape.id] = 'p1'; + this.valueShapes.p1 = shape.id; + } + if (this.values[0] !== null) { + shape = this.renderTarget().append(); + this.shapes[shape.id] = 't0'; + this.valueShapes.t0 = shape.id; + } + target.render(); + } + }); + + /** + * Pie charts + */ + $.fn.sparkline.pie = pie = createClass($.fn.sparkline._base, { + type: 'pie', + + init: function (el, values, options, width, height) { + var total = 0, i; + + pie._super.init.call(this, el, values, options, width, height); + + this.shapes = {}; // map shape ids to value offsets + this.valueShapes = {}; // maps value offsets to shape ids + this.values = values = $.map(values, Number); + + if (options.get('width') === 'auto') { + this.width = this.height; + } + + if (values.length > 0) { + for (i = values.length; i--;) { + total += values[i]; + } + } + this.total = total; + this.initTarget(); + this.radius = Math.floor(Math.min(this.canvasWidth, this.canvasHeight) / 2); + }, + + getRegion: function (el, x, y) { + var shapeid = this.target.getShapeAt(el, x, y); + return (shapeid !== undefined && this.shapes[shapeid] !== undefined) ? this.shapes[shapeid] : undefined; + }, + + getCurrentRegionFields: function () { + var currentRegion = this.currentRegion; + return { + isNull: this.values[currentRegion] === undefined, + value: this.values[currentRegion], + percent: this.values[currentRegion] / this.total * 100, + color: this.options.get('sliceColors')[currentRegion % this.options.get('sliceColors').length], + offset: currentRegion + }; + }, + + changeHighlight: function (highlight) { + var currentRegion = this.currentRegion, + newslice = this.renderSlice(currentRegion, highlight), + shapeid = this.valueShapes[currentRegion]; + delete this.shapes[shapeid]; + this.target.replaceWithShape(shapeid, newslice); + this.valueShapes[currentRegion] = newslice.id; + this.shapes[newslice.id] = currentRegion; + }, + + renderSlice: function (valuenum, highlight) { + var target = this.target, + options = this.options, + radius = this.radius, + borderWidth = options.get('borderWidth'), + offset = options.get('offset'), + circle = 2 * Math.PI, + values = this.values, + total = this.total, + next = offset ? (2*Math.PI)*(offset/360) : 0, + start, end, i, vlen, color; + + vlen = values.length; + for (i = 0; i < vlen; i++) { + start = next; + end = next; + if (total > 0) { // avoid divide by zero + end = next + (circle * (values[i] / total)); + } + if (valuenum === i) { + color = options.get('sliceColors')[i % options.get('sliceColors').length]; + if (highlight) { + color = this.calcHighlightColor(color, options); + } + + return target.drawPieSlice(radius, radius, radius - borderWidth, start, end, undefined, color); + } + next = end; + } + }, + + render: function () { + var target = this.target, + values = this.values, + options = this.options, + radius = this.radius, + borderWidth = options.get('borderWidth'), + shape, i; + + if (!pie._super.render.call(this)) { + return; + } + if (borderWidth) { + target.drawCircle(radius, radius, Math.floor(radius - (borderWidth / 2)), + options.get('borderColor'), undefined, borderWidth).append(); + } + for (i = values.length; i--;) { + if (values[i]) { // don't render zero values + shape = this.renderSlice(i).append(); + this.valueShapes[i] = shape.id; // store just the shapeid + this.shapes[shape.id] = i; + } + } + target.render(); + } + }); + + /** + * Box plots + */ + $.fn.sparkline.box = box = createClass($.fn.sparkline._base, { + type: 'box', + + init: function (el, values, options, width, height) { + box._super.init.call(this, el, values, options, width, height); + this.values = $.map(values, Number); + this.width = options.get('width') === 'auto' ? '4.0em' : width; + this.initTarget(); + if (!this.values.length) { + this.disabled = 1; + } + }, + + /** + * Simulate a single region + */ + getRegion: function () { + return 1; + }, + + getCurrentRegionFields: function () { + var result = [ + { field: 'lq', value: this.quartiles[0] }, + { field: 'med', value: this.quartiles[1] }, + { field: 'uq', value: this.quartiles[2] } + ]; + if (this.loutlier !== undefined) { + result.push({ field: 'lo', value: this.loutlier}); + } + if (this.routlier !== undefined) { + result.push({ field: 'ro', value: this.routlier}); + } + if (this.lwhisker !== undefined) { + result.push({ field: 'lw', value: this.lwhisker}); + } + if (this.rwhisker !== undefined) { + result.push({ field: 'rw', value: this.rwhisker}); + } + return result; + }, + + render: function () { + var target = this.target, + values = this.values, + vlen = values.length, + options = this.options, + canvasWidth = this.canvasWidth, + canvasHeight = this.canvasHeight, + minValue = options.get('chartRangeMin') === undefined ? Math.min.apply(Math, values) : options.get('chartRangeMin'), + maxValue = options.get('chartRangeMax') === undefined ? Math.max.apply(Math, values) : options.get('chartRangeMax'), + canvasLeft = 0, + lwhisker, loutlier, iqr, q1, q2, q3, rwhisker, routlier, i, + size, unitSize; + + if (!box._super.render.call(this)) { + return; + } + + if (options.get('raw')) { + if (options.get('showOutliers') && values.length > 5) { + loutlier = values[0]; + lwhisker = values[1]; + q1 = values[2]; + q2 = values[3]; + q3 = values[4]; + rwhisker = values[5]; + routlier = values[6]; + } else { + lwhisker = values[0]; + q1 = values[1]; + q2 = values[2]; + q3 = values[3]; + rwhisker = values[4]; + } + } else { + values.sort(function (a, b) { return a - b; }); + q1 = quartile(values, 1); + q2 = quartile(values, 2); + q3 = quartile(values, 3); + iqr = q3 - q1; + if (options.get('showOutliers')) { + lwhisker = rwhisker = undefined; + for (i = 0; i < vlen; i++) { + if (lwhisker === undefined && values[i] > q1 - (iqr * options.get('outlierIQR'))) { + lwhisker = values[i]; + } + if (values[i] < q3 + (iqr * options.get('outlierIQR'))) { + rwhisker = values[i]; + } + } + loutlier = values[0]; + routlier = values[vlen - 1]; + } else { + lwhisker = values[0]; + rwhisker = values[vlen - 1]; + } + } + this.quartiles = [q1, q2, q3]; + this.lwhisker = lwhisker; + this.rwhisker = rwhisker; + this.loutlier = loutlier; + this.routlier = routlier; + + unitSize = canvasWidth / (maxValue - minValue + 1); + if (options.get('showOutliers')) { + canvasLeft = Math.ceil(options.get('spotRadius')); + canvasWidth -= 2 * Math.ceil(options.get('spotRadius')); + unitSize = canvasWidth / (maxValue - minValue + 1); + if (loutlier < lwhisker) { + target.drawCircle((loutlier - minValue) * unitSize + canvasLeft, + canvasHeight / 2, + options.get('spotRadius'), + options.get('outlierLineColor'), + options.get('outlierFillColor')).append(); + } + if (routlier > rwhisker) { + target.drawCircle((routlier - minValue) * unitSize + canvasLeft, + canvasHeight / 2, + options.get('spotRadius'), + options.get('outlierLineColor'), + options.get('outlierFillColor')).append(); + } + } + + // box + target.drawRect( + Math.round((q1 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight * 0.1), + Math.round((q3 - q1) * unitSize), + Math.round(canvasHeight * 0.8), + options.get('boxLineColor'), + options.get('boxFillColor')).append(); + // left whisker + target.drawLine( + Math.round((lwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + Math.round((q1 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + options.get('lineColor')).append(); + target.drawLine( + Math.round((lwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 4), + Math.round((lwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight - canvasHeight / 4), + options.get('whiskerColor')).append(); + // right whisker + target.drawLine(Math.round((rwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + Math.round((q3 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 2), + options.get('lineColor')).append(); + target.drawLine( + Math.round((rwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight / 4), + Math.round((rwhisker - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight - canvasHeight / 4), + options.get('whiskerColor')).append(); + // median line + target.drawLine( + Math.round((q2 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight * 0.1), + Math.round((q2 - minValue) * unitSize + canvasLeft), + Math.round(canvasHeight * 0.9), + options.get('medianColor')).append(); + if (options.get('target')) { + size = Math.ceil(options.get('spotRadius')); + target.drawLine( + Math.round((options.get('target') - minValue) * unitSize + canvasLeft), + Math.round((canvasHeight / 2) - size), + Math.round((options.get('target') - minValue) * unitSize + canvasLeft), + Math.round((canvasHeight / 2) + size), + options.get('targetColor')).append(); + target.drawLine( + Math.round((options.get('target') - minValue) * unitSize + canvasLeft - size), + Math.round(canvasHeight / 2), + Math.round((options.get('target') - minValue) * unitSize + canvasLeft + size), + Math.round(canvasHeight / 2), + options.get('targetColor')).append(); + } + target.render(); + } + }); + + // Setup a very simple "virtual canvas" to make drawing the few shapes we need easier + // This is accessible as $(foo).simpledraw() + + VShape = createClass({ + init: function (target, id, type, args) { + this.target = target; + this.id = id; + this.type = type; + this.args = args; + }, + append: function () { + this.target.appendShape(this); + return this; + } + }); + + VCanvas_base = createClass({ + _pxregex: /(\d+)(px)?\s*$/i, + + init: function (width, height, target) { + if (!width) { + return; + } + this.width = width; + this.height = height; + this.target = target; + this.lastShapeId = null; + if (target[0]) { + target = target[0]; + } + $.data(target, '_jqs_vcanvas', this); + }, + + drawLine: function (x1, y1, x2, y2, lineColor, lineWidth) { + return this.drawShape([[x1, y1], [x2, y2]], lineColor, lineWidth); + }, + + drawShape: function (path, lineColor, fillColor, lineWidth) { + return this._genShape('Shape', [path, lineColor, fillColor, lineWidth]); + }, + + drawCircle: function (x, y, radius, lineColor, fillColor, lineWidth) { + return this._genShape('Circle', [x, y, radius, lineColor, fillColor, lineWidth]); + }, + + drawPieSlice: function (x, y, radius, startAngle, endAngle, lineColor, fillColor) { + return this._genShape('PieSlice', [x, y, radius, startAngle, endAngle, lineColor, fillColor]); + }, + + drawRect: function (x, y, width, height, lineColor, fillColor) { + return this._genShape('Rect', [x, y, width, height, lineColor, fillColor]); + }, + + getElement: function () { + return this.canvas; + }, + + /** + * Return the most recently inserted shape id + */ + getLastShapeId: function () { + return this.lastShapeId; + }, + + /** + * Clear and reset the canvas + */ + reset: function () { + alert('reset not implemented'); + }, + + _insert: function (el, target) { + $(target).html(el); + }, + + /** + * Calculate the pixel dimensions of the canvas + */ + _calculatePixelDims: function (width, height, canvas) { + // XXX This should probably be a configurable option + var match; + match = this._pxregex.exec(height); + if (match) { + this.pixelHeight = match[1]; + } else { + this.pixelHeight = $(canvas).height(); + } + match = this._pxregex.exec(width); + if (match) { + this.pixelWidth = match[1]; + } else { + this.pixelWidth = $(canvas).width(); + } + }, + + /** + * Generate a shape object and id for later rendering + */ + _genShape: function (shapetype, shapeargs) { + var id = shapeCount++; + shapeargs.unshift(id); + return new VShape(this, id, shapetype, shapeargs); + }, + + /** + * Add a shape to the end of the render queue + */ + appendShape: function (shape) { + alert('appendShape not implemented'); + }, + + /** + * Replace one shape with another + */ + replaceWithShape: function (shapeid, shape) { + alert('replaceWithShape not implemented'); + }, + + /** + * Insert one shape after another in the render queue + */ + insertAfterShape: function (shapeid, shape) { + alert('insertAfterShape not implemented'); + }, + + /** + * Remove a shape from the queue + */ + removeShapeId: function (shapeid) { + alert('removeShapeId not implemented'); + }, + + /** + * Find a shape at the specified x/y co-ordinates + */ + getShapeAt: function (el, x, y) { + alert('getShapeAt not implemented'); + }, + + /** + * Render all queued shapes onto the canvas + */ + render: function () { + alert('render not implemented'); + } + }); + + VCanvas_canvas = createClass(VCanvas_base, { + init: function (width, height, target, interact) { + VCanvas_canvas._super.init.call(this, width, height, target); + this.canvas = document.createElement('canvas'); + if (target[0]) { + target = target[0]; + } + $.data(target, '_jqs_vcanvas', this); + $(this.canvas).css({ display: 'inline-block', width: width, height: height, verticalAlign: 'top' }); + this._insert(this.canvas, target); + this._calculatePixelDims(width, height, this.canvas); + this.canvas.width = this.pixelWidth; + this.canvas.height = this.pixelHeight; + this.interact = interact; + this.shapes = {}; + this.shapeseq = []; + this.currentTargetShapeId = undefined; + $(this.canvas).css({width: this.pixelWidth, height: this.pixelHeight}); + }, + + _getContext: function (lineColor, fillColor, lineWidth) { + var context = this.canvas.getContext('2d'); + if (lineColor !== undefined) { + context.strokeStyle = lineColor; + } + context.lineWidth = lineWidth === undefined ? 1 : lineWidth; + if (fillColor !== undefined) { + context.fillStyle = fillColor; + } + return context; + }, + + reset: function () { + var context = this._getContext(); + context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); + this.shapes = {}; + this.shapeseq = []; + this.currentTargetShapeId = undefined; + }, + + _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { + var context = this._getContext(lineColor, fillColor, lineWidth), + i, plen; + context.beginPath(); + context.moveTo(path[0][0] + 0.5, path[0][1] + 0.5); + for (i = 1, plen = path.length; i < plen; i++) { + context.lineTo(path[i][0] + 0.5, path[i][1] + 0.5); // the 0.5 offset gives us crisp pixel-width lines + } + if (lineColor !== undefined) { + context.stroke(); + } + if (fillColor !== undefined) { + context.fill(); + } + if (this.targetX !== undefined && this.targetY !== undefined && + context.isPointInPath(this.targetX, this.targetY)) { + this.currentTargetShapeId = shapeid; + } + }, + + _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { + var context = this._getContext(lineColor, fillColor, lineWidth); + context.beginPath(); + context.arc(x, y, radius, 0, 2 * Math.PI, false); + if (this.targetX !== undefined && this.targetY !== undefined && + context.isPointInPath(this.targetX, this.targetY)) { + this.currentTargetShapeId = shapeid; + } + if (lineColor !== undefined) { + context.stroke(); + } + if (fillColor !== undefined) { + context.fill(); + } + }, + + _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { + var context = this._getContext(lineColor, fillColor); + context.beginPath(); + context.moveTo(x, y); + context.arc(x, y, radius, startAngle, endAngle, false); + context.lineTo(x, y); + context.closePath(); + if (lineColor !== undefined) { + context.stroke(); + } + if (fillColor) { + context.fill(); + } + if (this.targetX !== undefined && this.targetY !== undefined && + context.isPointInPath(this.targetX, this.targetY)) { + this.currentTargetShapeId = shapeid; + } + }, + + _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { + return this._drawShape(shapeid, [[x, y], [x + width, y], [x + width, y + height], [x, y + height], [x, y]], lineColor, fillColor); + }, + + appendShape: function (shape) { + this.shapes[shape.id] = shape; + this.shapeseq.push(shape.id); + this.lastShapeId = shape.id; + return shape.id; + }, + + replaceWithShape: function (shapeid, shape) { + var shapeseq = this.shapeseq, + i; + this.shapes[shape.id] = shape; + for (i = shapeseq.length; i--;) { + if (shapeseq[i] == shapeid) { + shapeseq[i] = shape.id; + } + } + delete this.shapes[shapeid]; + }, + + replaceWithShapes: function (shapeids, shapes) { + var shapeseq = this.shapeseq, + shapemap = {}, + sid, i, first; + + for (i = shapeids.length; i--;) { + shapemap[shapeids[i]] = true; + } + for (i = shapeseq.length; i--;) { + sid = shapeseq[i]; + if (shapemap[sid]) { + shapeseq.splice(i, 1); + delete this.shapes[sid]; + first = i; + } + } + for (i = shapes.length; i--;) { + shapeseq.splice(first, 0, shapes[i].id); + this.shapes[shapes[i].id] = shapes[i]; + } + + }, + + insertAfterShape: function (shapeid, shape) { + var shapeseq = this.shapeseq, + i; + for (i = shapeseq.length; i--;) { + if (shapeseq[i] === shapeid) { + shapeseq.splice(i + 1, 0, shape.id); + this.shapes[shape.id] = shape; + return; + } + } + }, + + removeShapeId: function (shapeid) { + var shapeseq = this.shapeseq, + i; + for (i = shapeseq.length; i--;) { + if (shapeseq[i] === shapeid) { + shapeseq.splice(i, 1); + break; + } + } + delete this.shapes[shapeid]; + }, + + getShapeAt: function (el, x, y) { + this.targetX = x; + this.targetY = y; + this.render(); + return this.currentTargetShapeId; + }, + + render: function () { + var shapeseq = this.shapeseq, + shapes = this.shapes, + shapeCount = shapeseq.length, + context = this._getContext(), + shapeid, shape, i; + context.clearRect(0, 0, this.pixelWidth, this.pixelHeight); + for (i = 0; i < shapeCount; i++) { + shapeid = shapeseq[i]; + shape = shapes[shapeid]; + this['_draw' + shape.type].apply(this, shape.args); + } + if (!this.interact) { + // not interactive so no need to keep the shapes array + this.shapes = {}; + this.shapeseq = []; + } + } + + }); + + VCanvas_vml = createClass(VCanvas_base, { + init: function (width, height, target) { + var groupel; + VCanvas_vml._super.init.call(this, width, height, target); + if (target[0]) { + target = target[0]; + } + $.data(target, '_jqs_vcanvas', this); + this.canvas = document.createElement('span'); + $(this.canvas).css({ display: 'inline-block', position: 'relative', overflow: 'hidden', width: width, height: height, margin: '0px', padding: '0px', verticalAlign: 'top'}); + this._insert(this.canvas, target); + this._calculatePixelDims(width, height, this.canvas); + this.canvas.width = this.pixelWidth; + this.canvas.height = this.pixelHeight; + groupel = ''; + this.canvas.insertAdjacentHTML('beforeEnd', groupel); + this.group = $(this.canvas).children()[0]; + this.rendered = false; + this.prerender = ''; + }, + + _drawShape: function (shapeid, path, lineColor, fillColor, lineWidth) { + var vpath = [], + initial, stroke, fill, closed, vel, plen, i; + for (i = 0, plen = path.length; i < plen; i++) { + vpath[i] = '' + (path[i][0]) + ',' + (path[i][1]); + } + initial = vpath.splice(0, 1); + lineWidth = lineWidth === undefined ? 1 : lineWidth; + stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; + fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; + closed = vpath[0] === vpath[vpath.length - 1] ? 'x ' : ''; + vel = '' + + ' '; + return vel; + }, + + _drawCircle: function (shapeid, x, y, radius, lineColor, fillColor, lineWidth) { + var stroke, fill, vel; + x -= radius; + y -= radius; + stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="' + lineWidth + 'px" strokeColor="' + lineColor + '" '; + fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; + vel = ''; + return vel; + + }, + + _drawPieSlice: function (shapeid, x, y, radius, startAngle, endAngle, lineColor, fillColor) { + var vpath, startx, starty, endx, endy, stroke, fill, vel; + if (startAngle === endAngle) { + return ''; // VML seems to have problem when start angle equals end angle. + } + if ((endAngle - startAngle) === (2 * Math.PI)) { + startAngle = 0.0; // VML seems to have a problem when drawing a full circle that doesn't start 0 + endAngle = (2 * Math.PI); + } + + startx = x + Math.round(Math.cos(startAngle) * radius); + starty = y + Math.round(Math.sin(startAngle) * radius); + endx = x + Math.round(Math.cos(endAngle) * radius); + endy = y + Math.round(Math.sin(endAngle) * radius); + + if (startx === endx && starty === endy) { + if ((endAngle - startAngle) < Math.PI) { + // Prevent very small slices from being mistaken as a whole pie + return ''; + } + // essentially going to be the entire circle, so ignore startAngle + startx = endx = x + radius; + starty = endy = y; + } + + if (startx === endx && starty === endy && (endAngle - startAngle) < Math.PI) { + return ''; + } + + vpath = [x - radius, y - radius, x + radius, y + radius, startx, starty, endx, endy]; + stroke = lineColor === undefined ? ' stroked="false" ' : ' strokeWeight="1px" strokeColor="' + lineColor + '" '; + fill = fillColor === undefined ? ' filled="false"' : ' fillColor="' + fillColor + '" filled="true" '; + vel = '' + + ' '; + return vel; + }, + + _drawRect: function (shapeid, x, y, width, height, lineColor, fillColor) { + return this._drawShape(shapeid, [[x, y], [x, y + height], [x + width, y + height], [x + width, y], [x, y]], lineColor, fillColor); + }, + + reset: function () { + this.group.innerHTML = ''; + }, + + appendShape: function (shape) { + var vel = this['_draw' + shape.type].apply(this, shape.args); + if (this.rendered) { + this.group.insertAdjacentHTML('beforeEnd', vel); + } else { + this.prerender += vel; + } + this.lastShapeId = shape.id; + return shape.id; + }, + + replaceWithShape: function (shapeid, shape) { + var existing = $('#jqsshape' + shapeid), + vel = this['_draw' + shape.type].apply(this, shape.args); + existing[0].outerHTML = vel; + }, + + replaceWithShapes: function (shapeids, shapes) { + // replace the first shapeid with all the new shapes then toast the remaining old shapes + var existing = $('#jqsshape' + shapeids[0]), + replace = '', + slen = shapes.length, + i; + for (i = 0; i < slen; i++) { + replace += this['_draw' + shapes[i].type].apply(this, shapes[i].args); + } + existing[0].outerHTML = replace; + for (i = 1; i < shapeids.length; i++) { + $('#jqsshape' + shapeids[i]).remove(); + } + }, + + insertAfterShape: function (shapeid, shape) { + var existing = $('#jqsshape' + shapeid), + vel = this['_draw' + shape.type].apply(this, shape.args); + existing[0].insertAdjacentHTML('afterEnd', vel); + }, + + removeShapeId: function (shapeid) { + var existing = $('#jqsshape' + shapeid); + this.group.removeChild(existing[0]); + }, + + getShapeAt: function (el, x, y) { + var shapeid = el.id.substr(8); + return shapeid; + }, + + render: function () { + if (!this.rendered) { + // batch the intial render into a single repaint + this.group.innerHTML = this.prerender; + this.rendered = true; + } + } + }); + +}))}(document, Math)); \ No newline at end of file diff --git a/client/galaxy/scripts/libs/jquery/jqtouch.js b/client/galaxy/scripts/libs/jquery/jqtouch.js index 0be8d5fedc3..0f5426d07c5 100644 --- a/client/galaxy/scripts/libs/jquery/jqtouch.js +++ b/client/galaxy/scripts/libs/jquery/jqtouch.js @@ -1,420 +1,883 @@ -// David Kaneda, jQuery jQTouch extensions +(function() { -(function($) { - - var currentPage = null; - var currentDialog = null; - var currentHash = location.hash; - var hashPrefix = "#"; - var currentWidth = 0; - var pageHistory = []; - var pageHistoryInfo = []; - var newPageCount = 0; - var checkTimer; + $.jQTouch = function(options) { + // Initialize internal jQT variables + var $body, + $head=$('head'), + history=[], + newPageCount=0, + jQTSettings={}, + $currentPage='', + orientation='portrait', + touchSelectors=[], + publicObj={}, + tapBuffer=100, // High click delay = ~350, quickest animation (slide) = 250 + extensions=$.jQTouch.prototype.extensions, + extTapHandlers=$.jQTouch.prototype.tapHandlers, + tapHandlers=[], + animations=[], + hairExtensions='', + defaults = { + addGlossToIcon: true, + backSelector: '.back, .cancel, .goback', + cacheGetRequests: true, + debug: true, + defaultAnimation: 'slideleft', + fixedViewport: true, + formSelector: 'form', + fullScreen: true, + fullScreenClass: 'fullscreen', + icon: null, + icon4: null, // available in iOS 4.2 and later + preloadImages: false, + starter: $(document).ready, + startupScreen: null, + statusBar: 'default', // other options: black-translucent, black + submitSelector: '.submit', + touchSelector: 'a, .touch', + trackScrollPositions: true, + updateHash: true, + useAnimations: true, + useFastTouch: true, + useTouchScroll: true, + animations: [ // highest to lowest priority + {name:'cubeleft', selector:'.cubeleft, .cube', is3d: true}, + {name:'cuberight', selector:'.cuberight', is3d: true}, + {name:'dissolve', selector:'.dissolve'}, + {name:'fade', selector:'.fade'}, + {name:'flipleft', selector:'.flipleft, .flip', is3d: true}, + {name:'flipright', selector:'.flipright', is3d: true}, + {name:'pop', selector:'.pop', is3d: true}, + {name:'swapleft', selector:'.swapleft, .swap', is3d: true}, + {name:'swapright', selector:'.swapright', is3d: true}, + {name:'slidedown', selector:'.slidedown'}, + {name:'slideright', selector:'.slideright'}, + {name:'slideup', selector:'.slideup'}, + {name:'slideleft', selector:'.slideleft, .slide, #jqt > * > ul li a'} + ] + }; // end defaults - $.fn.jQTouch = function(options) - { - var defaults = { - fullScreen: true, - slideInSelector: 'ul li a', - backSelector: '.back', - flipSelector: '.flip', - slideUpSelector: '.slideup', - statusBar: 'default', // other options: black-translucent, black - icon: null, - iconIsGlossy: false, - fixedViewport: true - }; - - var settings = $.extend({}, defaults, options); - var head = $('head'); + function warn(message) { + if (window.console !== undefined && jQTSettings.debug === true) { + console.warn(message); + } + } - if (settings.backSelector) - { - $(settings.backSelector).live('click',function(){ - history.back(); - return false; + function addAnimation(animation) { + if (typeof(animation.selector) === 'string' && typeof(animation.name) === 'string') { + animations.push(animation); + } + } + + function addTapHandler(tapHandler) { + if (typeof(tapHandler.name) === 'string' && typeof(tapHandler.isSupported) === 'function' && typeof(tapHandler.fn) === 'function') { + tapHandlers.push(tapHandler); + } + } + + function addPageToHistory(page, animation) { + history.unshift({ + page: page, + animation: animation, + hash: '#' + page.attr('id'), + id: page.attr('id') }); } - if (settings.icon) - { - var precomposed = (settings.iconIsGlossy) ? '' : '-precomposed'; - head.append(''); - } - - if (settings.fixedViewport) - { - head.append(''); - } - - if (settings.fullScreen) - { - head.append(''); - - if (settings.statusBar) - { - head.append(''); + // Unfortunately, we can not assume the 'tap' event + // is being used for links, forms, etc. + function clickHandler(e) { + // Figure out whether to prevent default + var $el = $(e.target); + + // Find the nearest tappable ancestor + if (!$el.is(touchSelectors.join(', '))) { + $el = $(e.target).closest(touchSelectors.join(', ')); + } + + // Prevent default if we found an internal link + // (relative or absolute) + if ($el && $el.attr('href') && !$el.isExternalLink()) { + warn('Need to prevent default click behavior.'); + e.preventDefault(); + } else { + warn('No need to prevent default click behavior.'); + } + + // Trigger a tap event if touchstart is not on the job + if ($.support.touch) { + warn('Not converting click to a tap event because touch handler is on the job.'); + } else { + warn('Converting click event to a tap event because touch handlers are not present or off.'); + $(e.target).trigger('tap', e); } } - - var liveSelectors = []; - - if (settings.slideInSelector) liveSelectors.push(settings.slideInSelector); - if (settings.flipSelector) liveSelectors.push(settings.flipSelector); - if (settings.slideUpSelector) liveSelectors.push(settings.slideUpSelector); - // Selector settings - if (liveSelectors.length > 0) - { - $(liveSelectors.join(', ')).live('click',function(){ - - var jelem = $(this); - var hash = jelem.attr('hash'); - var transition = 'slideInOut'; + function doNavigation(fromPage, toPage, animation, goingBack) { - if ($(this).is(settings.flipSelector)) transition = 'flip'; - if ($(this).is(settings.slideUpSelector)) transition = 'slideUp'; + goingBack = goingBack ? goingBack : false; - if ( hash && hash != '#') - { - jelem.attr('selected', 'true'); - $.fn.jQTouch.showPage($(hash), transition); - setTimeout($.fn.unselect, 350, $(this)); - } - else if ( jelem.attr('href') != '#' ) - { - jelem.attr('selected', 'progress'); - - try { - $.fn.jQTouch.showPageByHref($(this).attr('href'), null, null, null, transition, function(){ setTimeout($.fn.unselect, 350, jelem); - }); - } - catch(err) - { - console.log(err); - } - } + // Error check for target page + if (toPage === undefined || toPage.length === 0) { + $.fn.unselect(); + warn('Target element is missing.'); return false; - }); - - // Initialize - - $(function(){ - var page = $.fn.jQTouch.getSelectedPage(); - if (page) $.fn.jQTouch.showPage(page); - - // setTimeout($.fn.jQTouch.checkOrientandLocation, 0); - $.fn.jQTouch.startCheck(); - }) - - } - } - - $.fn.ianimate = function(css, speed, fn) { - - // TODO: Autoconvert top,left to translate(); - // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(x1, y1, x2, y2) - - if(speed === 0) { // differentiate 0 from null - this.css(css) - window.setTimeout(fn, 0) - } else { - var s = [] - for(var i in css) - s.push(i) - this.css({ webkitTransitionProperty: s.join(", "), webkitTransitionDuration: speed + "ms", webkitTransitionTimingFunction: 'ease-in-out' }); - - window.setTimeout(function(x,y) { - x.css(y) - },0, this, css) - window.setTimeout(fn, speed) - } - return this; - } - - $.fn.jQTouch.checkOrientAndLocation = function() - { - if (window.innerWidth != currentWidth) - { - currentWidth = window.innerWidth; - currentHeight = window.innerHeight; - var orient = currentWidth < currentHeight ? "profile" : "landscape"; - document.body.setAttribute("orient", orient); - setTimeout(scrollTo, 100, 0, 1); - } - - if (location.hash != currentHash) - $.fn.jQTouch.showPageById(location.hash); - } - - $.fn.jQTouch.getSelectedPage = function() - { - return $('body > *[selected!=false]').slice(0,1); - } - - $.fn.jQTouch.showPage = function( page, transition, backwards ) - { - if (page) - { - if (currentDialog) - { - currentDialog.attr('selected', null); - currentDialog = null; } - var fromPage = currentPage; - currentPage = page; - - if (fromPage) - $.fn.jQTouch.animatePages(fromPage, page, transition, backwards); - else - $.fn.jQTouch.updatePage(page, fromPage, transition); - } - } - - $.fn.jQTouch.showPageById = function( hash ) - { - var page = $(hash); - - if (page) - { - var transition; - var currentIndex = pageHistory.indexOf(currentHash); - var index = pageHistory.indexOf(hash); - var backwards = index != -1; - - if (backwards) { - transition = pageHistoryInfo[currentIndex].transition; - - pageHistory.splice(index, pageHistory.length); - pageHistoryInfo.splice(index, pageHistoryInfo.length); + // Error check for fromPage === toPage + if (toPage.hasClass('current')) { + $.fn.unselect(); + warn('You are already on the page you are trying to navigate to.'); + return false; } - - $.fn.jQTouch.showPage(page, transition, backwards); - } - } - - $.fn.jQTouch.insertPages = function( nodes, transition ) - { - var targetPage; - - nodes.each(function(index, node){ - - if (!$(this).attr('id')) - $(this).attr('id', (++newPageCount)); - - $(this).appendTo($('body')); - - if ( $(this).attr('selected') == 'true' || ( !targetPage && !$(this).hasClass('btn')) ) - targetPage = $(this); - }); - - if (targetPage) $.fn.jQTouch.showPage(targetPage, transition); - - } - $.fn.jQTouch.showPageByHref = function(href, data, method, replace, transition, cb) - { - $.ajax({ - url: href, - data: data, - type: method || "GET", - success: function (data, textStatus) - { - $('a[selected="progress"]').attr('selected', 'true'); - - if (replace) $(replace).replaceWith(data); - else - { - $.fn.jQTouch.insertPages( $(data) ); + // Collapse the keyboard + $(':focus').trigger('blur'); + + fromPage.trigger('pageAnimationStart', { direction: 'out', back: goingBack }); + toPage.trigger('pageAnimationStart', { direction: 'in', back: goingBack }); + + if ($.support.animationEvents && animation && jQTSettings.useAnimations) { + // Fail over to 2d animation if need be + if (!$.support.transform3d && animation.is3d) { + warn('Did not detect support for 3d animations, falling back to ' + jQTSettings.defaultAnimation + '.'); + animation.name = jQTSettings.defaultAnimation; } - - if (cb) cb(true); - }, - error: function (data) - { - if (cb) cb(false); - } - }); - } - - $.fn.jQTouch.submitForm = function() - { - $.fn.jQTouch.showPageByHref($(this).attr('action') || "POST", $(this).serialize(), $(this).attr('method')); - return false; - } - - $.fn.showForm = function () - { - return this.each(function(){ - $(this).submit($.fn.jQTouch.submitForm); - }); - } - - $.fn.jQTouch.animatePages = function(fromPage, toPage, transition, backwards) - { - clearInterval(checkTimer); - - if (transition == 'flip'){ - toPage.flip({backwards: backwards}); - fromPage.flip({backwards: backwards}); - } - else if (transition == 'slideUp') - { - if (backwards) - { - toPage.attr('selected', true); - fromPage.slideUpDown({backwards: backwards}); - } - else - { - toPage.slideUpDown({backwards: backwards}); - } - - } - else - { - toPage.slideInOut({backwards: backwards}); - fromPage.slideInOut({backwards: backwards}); - } - - setTimeout(function(){ - fromPage.attr('selected', 'false'); - $.fn.jQTouch.updatePage(toPage, fromPage, transition); - $.fn.jQTouch.startCheck(); - }, 500); - } - - $.fn.jQTouch.startCheck = function() - { - checkTimer = setInterval($.fn.jQTouch.checkOrientAndLocation, 350); - } - - $.fn.jQTouch.updatePage = function(page, fromPage, transition) - { - if (page) - { - if (!page.attr('id')) - page.attr('id', (++newPageCount)); + // Reverse animation if need be + var finalAnimationName = animation.name, + is3d = animation.is3d ? 'animating3d' : ''; - location.replace(hashPrefix + page.attr('id')); - currentHash = location.hash; + if (goingBack) { + finalAnimationName = finalAnimationName.replace(/left|right|up|down|in|out/, reverseAnimation); + } - pageHistory.push(currentHash); - pageHistoryInfo.push({page: page, transition: transition}); - - if (page.attr('localName') == "form" && !page.attr('target')) - { - page.showForm(); + warn('finalAnimationName is ' + finalAnimationName + '.'); + + // Bind internal 'cleanup' callback + fromPage.bind('webkitAnimationEnd', navigationEndHandler); + + // Trigger animations + $body.addClass('animating ' + is3d); + + var lastScroll = window.pageYOffset; + + // Position the incoming page so toolbar is at top of + // viewport regardless of scroll position on from page + if (jQTSettings.trackScrollPositions === true) { + toPage.css('top', window.pageYOffset - (toPage.data('lastScroll') || 0)); + } + + toPage.addClass(finalAnimationName + ' in current'); + fromPage.removeClass('current').addClass(finalAnimationName + ' out inmotion'); + + if (jQTSettings.trackScrollPositions === true) { + fromPage.data('lastScroll', lastScroll); + $('.scroll', fromPage).each(function() { + $(this).data('lastScroll', this.scrollTop); + }); + } + } else { + toPage.addClass('current in'); + fromPage.removeClass('current'); + navigationEndHandler(); + } + + // Housekeeping + $currentPage = toPage; + if (goingBack) { + history.shift(); + } else { + addPageToHistory($currentPage, animation); + } + setHash($currentPage.attr('id')); + + // Private navigationEnd callback + function navigationEndHandler(event) { + var bufferTime = tapBuffer; + + if ($.support.animationEvents && animation && jQTSettings.useAnimations) { + fromPage.unbind('webkitAnimationEnd', navigationEndHandler); + fromPage.removeClass(finalAnimationName + ' out inmotion'); + if (finalAnimationName) { + toPage.removeClass(finalAnimationName); + } + $body.removeClass('animating animating3d'); + if (jQTSettings.trackScrollPositions === true) { + toPage.css('top', -toPage.data('lastScroll')); + + // Have to make sure the scroll/style resets + // are outside the flow of this function. + setTimeout(function() { + toPage.css('top', 0); + window.scroll(0, toPage.data('lastScroll')); + $('.scroll', toPage).each(function() { + this.scrollTop = - $(this).data('lastScroll'); + }); + }, 0); + } + } else { + fromPage.removeClass(finalAnimationName + ' out inmotion'); + if (finalAnimationName) { + toPage.removeClass(finalAnimationName); + } + bufferTime += 260; + } + + // 'in' class is intentionally delayed, + // as it is our ghost click hack + setTimeout(function() { + toPage.removeClass('in'); + window.scroll(0,0); + }, bufferTime); + + fromPage.unselect(); + + // Trigger custom events + toPage.trigger('pageAnimationEnd', { + direction:'in', + animation: animation, + back: goingBack + }); + fromPage.trigger('pageAnimationEnd', { + direction:'out', + animation: animation, + back: goingBack + }); + } + + return true; + } + + function reverseAnimation(animation) { + var opposites={ + 'up' : 'down', + 'down' : 'up', + 'left' : 'right', + 'right' : 'left', + 'in' : 'out', + 'out' : 'in' + }; + + return opposites[animation] || animation; + } + + function getOrientation() { + return orientation; + } + + function goBack() { + // Error checking + if (history.length < 1) { + warn('History is empty.'); + } + + if (history.length === 1) { + warn('You are on the first panel.'); + window.history.go(-1); + } + + var from = history[0], + to = history[1]; + + if (doNavigation(from.page, to.page, from.animation, true)) { + return publicObj; + } else { + warn('Could not go back.'); + return false; } } - } - - $.fn.unselect = function(obj) - { - obj.attr('selected', false); - } - $.preloadImages = function( imgs ) - { - for (var i = imgs.length - 1; i >= 0; i--){ - (new Image()).src = imgs[i]; - }; - } - - $.fn.flip = function(options) - { - this.each(function(){ + function goTo(toPage, animation) { + var fromPage = history[0].page; + + if (typeof animation === 'string') { + for (var i=0, max=animations.length; i < max; i++) { + if (animations[i].name === animation) { + animation = animations[i]; + break; + } + } + } + + if (typeof toPage === 'string') { + var nextPage = $(toPage); + + if (nextPage.length < 1) { + showPageByHref(toPage, { + animation: animation + }); + return; + } else { + toPage = nextPage; + } + } + if (doNavigation(fromPage, toPage, animation)) { + return publicObj; + } else { + warn('Could not animate pages.'); + return false; + } + } + + function hashChangeHandler(e) { + if (location.hash === history[0].hash) { + warn('We are on the right panel.'); + return true; + } else if (location.hash === '') { + goBack(); + return true; + } else if (history[1] && location.hash === history[1].hash) { + goBack(); + return true; + } else { + // Lastly, just try going to the ID... + warn('Could not find ID in history, just forwarding to DOM element.'); + goTo($(location.hash), jQTSettings.defaultAnimation); + } + } + + function initHairExtensions(options) { + // Preload images + if (jQTSettings.preloadImages) { + for (var i = jQTSettings.preloadImages.length - 1; i >= 0; i--) { + (new Image()).src = jQTSettings.preloadImages[i]; + } + } + + // Set appropriate icon + // (retina display available in iOS 4.2 and later.) + var precomposed = (jQTSettings.addGlossToIcon) ? '' : '-precomposed'; + if (jQTSettings.icon) { + hairExtensions += ''; + } + if (jQTSettings.icon4) { + hairExtensions += ''; + } + // Set startup screen + if (jQTSettings.startupScreen) { + hairExtensions += ''; + } + + // Set viewport + if (jQTSettings.fixedViewport) { + hairExtensions += ''; + } + + // Set full-screen + if (jQTSettings.fullScreen) { + hairExtensions += ''; + if (jQTSettings.statusBar) { + hairExtensions += ''; + } + } + + // Attach hair extensions + if (hairExtensions) { + $head.prepend(hairExtensions); + } + } + + function initFXExtensions() { + // Define public jQuery functions + $.fn.isExternalLink = function() { + var $el = $(this); + return ($el.attr('target') === '_blank' || $el.attr('rel') === 'external' || $el.is('a[href^="http://maps.google.com"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]')); + }; + $.fn.makeActive = function() { + return $(this).addClass('active'); + }; + $.fn.unselect = function(obj) { + if (obj) { + obj.removeClass('active'); + } else { + $('.active').removeClass('active'); + } + }; + } + + function getAnimation(el) { + var animation; + + for (var i=0, max=animations.length; i < max; i++) { + if (el.is(animations[i].selector)) { + animation = animations[i]; + break; + } + } + + if (!animation) { + warn('Animation could not be found. Using ' + jQTSettings.defaultAnimation + '.'); + animation = jQTSettings.defaultAnimation; + } + return animation; + } + + function insertPages(nodes, animation) { + + var targetPage = null; + + // Call dom.createElement element directly + // instead of relying on $(nodes), to work around: + // https://github.com/madrobby/zepto/issues/312 + var div = document.createElement('div'); + div.innerHTML = nodes; + + $(div).children().each(function(index, node) { + var $node = $(this); + if (!$node.attr('id')) { + $node.attr('id', 'page-' + (++newPageCount)); + } + + // Remove any existing instance + $('#' + $node.attr('id')).remove(); + + $body.append($node); + $body.trigger('pageInserted', {page: $node}); + + if ($node.hasClass('current') || !targetPage) { + targetPage = $node; + } + }); + if (targetPage !== null) { + goTo(targetPage, animation); + return targetPage; + } else { + return false; + } + } + + function orientationChangeHandler() { + scrollTo(0,0); + orientation = Math.abs(window.orientation) === 90 ? 'landscape' : 'portrait'; + $body.removeClass('portrait landscape').addClass(orientation).trigger('turn', {orientation: orientation}); + } + + function setHash(hash) { + // Sanitize + if (jQTSettings.updateHash) { + location.hash = '#' + hash.replace(/^#/, ''); + } + } + + // Document ready stuff + function start() { + // Store some properties in a support object + if (!$.support) $.support = {}; + $.support.animationEvents = (typeof window.WebKitAnimationEvent !== 'undefined'); + $.support.touch = (typeof window.TouchEvent !== 'undefined') && (window.navigator.userAgent.indexOf('Mobile') > -1) && jQTSettings.useFastTouch; + $.support.transform3d = supportForTransform3d(); + $.support.ios5 = supportIOS5(); + + if (!$.support.touch) { + warn('This device does not support touch interaction, or it has been deactivated by the developer. Some features might be unavailable.'); + } + if (!$.support.transform3d) { + warn('This device does not support 3d animation. 2d animations will be used instead.'); + } + + // Add extensions + for (var i=0, max=extensions.length; i < max; i++) { + var fn = extensions[i]; + if ($.isFunction(fn)) { + $.extend(publicObj, fn(publicObj)); + } + } + + // Add extensions tapHandlers + for (var j=0, maxTapHandlers=extTapHandlers.length; j < maxTapHandlers; j++) { + addTapHandler(extTapHandlers[j]); + } + // Add default tapHandlers + addDefaultTapHandlers(); + + // Add animations + for (var k=0, maxAnimations=defaults.animations.length; k < maxAnimations; k++) { + var animation = defaults.animations[k]; + if (jQTSettings[animation.name + 'Selector'] !== undefined) { + animation.selector = jQTSettings[animation.name + 'Selector']; + } + addAnimation(animation); + } + + // Create an array of stuff that needs touch event handling + touchSelectors.push(jQTSettings.touchSelector); + touchSelectors.push(jQTSettings.backSelector); + touchSelectors.push(jQTSettings.submitSelector); + $(touchSelectors.join(', ')).css('-webkit-touch-callout', 'none'); + + // Make sure we have a jqt element + $body = $('#jqt'); + var anatomyLessons = []; + + if ($body.length === 0) { + warn('Could not find an element with the id "jqt", so the body id has been set to "jqt". If you are having any problems, wrapping your panels in a div with the id "jqt" might help.'); + $body = $(document.body).attr('id', 'jqt'); + } + + // Add some specific css if need be + if ($.support.transform3d) { + anatomyLessons.push('supports3d'); + } + + if (jQTSettings.useTouchScroll) { + if ($.support.ios5) { + anatomyLessons.push('touchscroll'); + } else { + anatomyLessons.push('autoscroll'); + } + } + + if (jQTSettings.fullScreenClass && window.navigator.standalone === true) { + anatomyLessons.push(jQTSettings.fullScreenClass, jQTSettings.statusBar); + } + + // Bind events + $body + .addClass(anatomyLessons.join(' ')) + .bind('click', clickHandler) + .bind('orientationchange', orientationChangeHandler) + .bind('submit', submitHandler) + .bind('tap', tapHandler) + .bind($.support.touch ? 'touchstart' : 'mousedown', touchStartHandler) + .trigger('orientationchange'); + + $(window).bind('hashchange', hashChangeHandler); + + var startHash = location.hash; + + // Determine what the initial view should be + if ($('#jqt > .current').length === 0) { + $currentPage = $('#jqt > *:first-child').addClass('current'); + } else { + $currentPage = $('#jqt > .current'); + } + + setHash($currentPage.attr('id')); + addPageToHistory($currentPage); + + if ($(startHash).length === 1) { + goTo(startHash); + } + } + + function showPageByHref(href, options) { + var defaults = { - direction : 'toggle', - backwards: false + data: null, + method: 'GET', + animation: null, + callback: null, + $referrer: null }; var settings = $.extend({}, defaults, options); - var dir = ((settings.direction == 'toggle' && $(this).attr('selected') == 'true') || settings.direction == 'out') ? 1 : -1; - - if (dir == -1) $(this).attr('selected', 'true'); - - $(this).parent().css({webkitPerspective: '2000'}); - - $(this).css({ - '-webkit-backface-visibility': 'hidden', - '-webkit-transform': 'rotateY(' + ((dir == 1) ? '0' : (!settings.backwards ? '-' : '') + '180') + 'deg)' - }).ianimate({'-webkit-transform': 'rotateY(' + ((dir == 1) ? (settings.backwards ? '-' : '') + '180' : '0') + 'deg)'}, 350); - }) - } - - $.fn.slideInOut = function(options) - { - var defaults = { - direction : 'toggle', - backwards: false + if (href !== '#') { + $.ajax({ + url: href, + data: settings.data, + type: settings.method, + success: function (data) { + var firstPage = insertPages(data, settings.animation); + if (firstPage) { + if (settings.method === 'GET' && jQTSettings.cacheGetRequests === true && settings.$referrer) { + settings.$referrer.attr('href', '#' + firstPage.attr('id')); + } + if (settings.callback) { + settings.callback(true); + } + } + }, + error: function (data) { + if (settings.$referrer) { + settings.$referrer.unselect(); + } + if (settings.callback) { + settings.callback(false); + } + } + }); + } else if (settings.$referrer) { + settings.$referrer.unselect(); + } + } + + function submitHandler(e, callback) { + + $(':focus').trigger('blur'); + + e.preventDefault(); + + var $form = (typeof(e)==='string') ? $(e).eq(0) : (e.target ? $(e.target) : $(e)); + + if ($form.length && $form.is(jQTSettings.formSelector) && $form.attr('action')) { + showPageByHref($form.attr('action'), { + data: $form.serialize(), + method: $form.attr('method') || 'POST', + animation: getAnimation($form), + callback: callback + }); + return false; + } + return true; + } + + function submitParentForm($el) { + + var $form = $el.closest('form'); + if ($form.length === 0) { + warn('No parent form found.'); + } else { + warn('About to submit parent form.'); + $form.trigger('submit'); + return false; + } + return true; + } + + function supportForTransform3d() { + + var head, body, style, div, result; + + head = document.getElementsByTagName('head')[0]; + body = document.body; + + style = document.createElement('style'); + style.textContent = '@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-webkit-transform-3d){#jqt-3dtest{height:3px}}'; + + div = document.createElement('div'); + div.id = 'jqt-3dtest'; + + // Add to the page + head.appendChild(style); + body.appendChild(div); + + // Check the result + result = div.offsetHeight === 3; + + // Clean up + style.parentNode.removeChild(style); + div.parentNode.removeChild(div); + + // Pass back result + warn('Support for 3d transforms: ' + result + '.'); + return result; + } + + function supportIOS5() { + var support = false; + var REGEX_IOS_VERSION = /OS (\d+)(_\d+)* like Mac OS X/i; + + var agentString = window.navigator.userAgent; + if (REGEX_IOS_VERSION.test(agentString)) { + support = (REGEX_IOS_VERSION.exec(agentString)[1] >= 5); + } + return support; + } + + function touchStartHandler(e) { + + var $el = $(e.target), + selectors = touchSelectors.join(', '); + + // Find the nearest tappable ancestor + if (!$el.is(selectors)) { + $el = $el.closest(selectors); + } + + // Make sure we have a tappable element + if ($el.length && $el.attr('href')) { + $el.addClass('active'); + } + + // Remove our active class if we move + $el.on($.support.touch ? 'touchmove' : 'mousemove', function() { + $el.removeClass('active'); + }); + + $el.on('touchend', function() { + $el.unbind('touchmove mousemove'); + }); + } + + function tapHandler(e) { + + if (e.isDefaultPrevented()) { + return true; + } + + // Grab the target element + var $el = $(e.target); + + // Find the nearest tappable ancestor + if (!$el.is(touchSelectors.join(', '))) { + $el = $el.closest(touchSelectors.join(', ')); + } + + // Make sure we have a tappable element + if (!$el.length || !$el.attr('href')) { + warn('Could not find a link related to tapped element.'); + return true; + } + + // Init some vars + var target = $el.attr('target'), + hash = $el.prop('hash'), + href = $el.attr('href'); + + var params = { + e: e, + $el: $el, + target: target, + hash: hash, + href: href, + jQTSettings: jQTSettings + }; + + // Loop thru all handlers + for (var i=0, len=tapHandlers.length; i} stack */ - function notifyHandlers(stack, windowError) { + function notifyHandlers(stack, isWindowError) { var exception = null; - if (windowError && !TraceKit.collectWindowErrors) { + if (isWindowError && !TraceKit.collectWindowErrors) { return; } for (var i in handlers) { @@ -155,29 +157,39 @@ TraceKit.report = (function reportModuleWrapper() { * @param {string} url URL of script that generated the exception. * @param {(number|string)} lineNo The line number at which the error * occurred. + * @param {?(number|string)} columnNo The column number at which the error + * occurred. + * @param {?Error} errorObj The actual Error object. */ - function traceKitWindowOnError(message, url, lineNo) { + function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) { var stack = null; - if (lastExceptionStack) { - TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message); - stack = lastExceptionStack; - lastExceptionStack = null; - lastException = null; - } else { - var location = { - 'url': url, - 'line': lineNo - }; - location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line); - location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line); - stack = { - 'mode': 'onerror', - 'message': message, - 'url': document.location.href, - 'stack': [location], - 'useragent': navigator.userAgent - }; + if (errorObj) { + stack = TraceKit.computeStackTrace(errorObj); + } + else + { + if (lastExceptionStack) { + TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message); + stack = lastExceptionStack; + lastExceptionStack = null; + lastException = null; + } else { + var location = { + 'url': url, + 'line': lineNo, + 'column': columnNo + }; + location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line); + location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line); + stack = { + 'mode': 'onerror', + 'message': message, + 'url': document.location.href, + 'stack': [location], + 'useragent': navigator.userAgent + }; + } } notifyHandlers(stack, 'from window.onerror'); @@ -346,11 +358,17 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { * @return {Array.} Source contents. */ function getSource(url) { + if (typeof url !== 'string') { + return []; + } + if (!_has(sourceCache, url)) { // URL needs to be able to fetched within the acceptable domain. Otherwise, // cross-domain errors will be triggered. var source = ''; - if (url.indexOf(document.domain) !== -1) { + + url = url || ''; + if (url.indexOf && url.indexOf(document.domain) !== -1) { source = loadSource(url); } sourceCache[url] = source ? source.split('\n') : []; @@ -587,6 +605,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { // ex.message = qq is not defined // ex.fileName = http://... // ex.lineNumber = 59 + // ex.columnNumber = 69 // ex.stack = ...stack trace... (see the example below) // ex.name = ReferenceError // @@ -618,8 +637,9 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { return null; } - var chrome = /^\s*at (?:((?:\[object object\])?\S+(?: \[as \S+\])?) )?\(?((?:file|http|https):.*?):(\d+)(?::(\d+))?\)?\s*$/i, - gecko = /^\s*(\S*)(?:\((.*?)\))?@((?:file|http|https).*?):(\d+)(?::(\d+))?\s*$/i, + var chrome = /^\s*at (.*?) ?\(?((?:file|https?|chrome-extension):.*?):(\d+)(?::(\d+))?\)?\s*$/i, + gecko = /^\s*(.*?)(?:\((.*?)\))?@?((?:file|https?|chrome):.*?):(\d+)(?::(\d+))?\s*$/i, + winjs = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:ms-appx|http|https):.*?):(\d+)(?::(\d+))?\)?\s*$/i, lines = ex.stack.split('\n'), stack = [], parts, @@ -642,6 +662,13 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { 'line': +parts[3], 'column': parts[4] ? +parts[4] : null }; + } else if ((parts = winjs.exec(lines[i]))) { + element = { + 'url': parts[2], + 'func': parts[1] || UNKNOWN_FUNCTION, + 'line': +parts[3], + 'column': parts[4] ? +parts[4] : null + }; } else { continue; } @@ -657,14 +684,19 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { stack.push(element); } - if (stack[0] && stack[0].line && !stack[0].column && reference) { - stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line); - } - if (!stack.length) { return null; } + if (stack[0] && stack[0].line && !stack[0].column && reference) { + stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line); + } else if (!stack[0].column && !_isUndefined(ex.columnNumber)) { + // FireFox uses this awesome columnNumber property for its top frame + // Also note, Firefox's column number is 0-based and everything else expects 1-based, + // so adding 1 + stack[0].column = ex.columnNumber + 1; + } + return { 'mode': 'stack', 'name': ex.name, @@ -762,8 +794,8 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { return null; } - var lineRE1 = /^\s*Line (\d+) of linked script ((?:file|http|https)\S+)(?:: in function (\S+))?\s*$/i, - lineRE2 = /^\s*Line (\d+) of inline#(\d+) script in ((?:file|http|https)\S+)(?:: in function (\S+))?\s*$/i, + var lineRE1 = /^\s*Line (\d+) of linked script ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i, + lineRE2 = /^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i, lineRE3 = /^\s*Line (\d+) of function script\s*$/i, stack = [], scripts = document.getElementsByTagName('script'), @@ -939,6 +971,12 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { item.func = parts[1]; } + if (typeof item.func === 'undefined') { + try { + item.func = parts.input.substring(0, parts.input.indexOf('{')); + } catch (e) { } + } + if ((source = findSourceByFunctionBody(curr))) { item.url = source.url; item.line = source.line; @@ -1059,6 +1097,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { computeStackTrace.guessFunctionName = guessFunctionName; computeStackTrace.gatherContext = gatherContext; computeStackTrace.ofCaller = computeStackTraceOfCaller; + computeStackTrace.getSource = getSource; return computeStackTrace; }()); @@ -1067,7 +1106,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { * Extends support for global error handling for asynchronous browser * functions. Adopted from Closure Library's errorhandler.js */ -(function extendToAsynchronousCallbacks() { +TraceKit.extendToAsynchronousCallbacks = function () { var _helper = function _helper(fnName) { var originalFn = window[fnName]; window[fnName] = function traceKitAsyncExtension() { @@ -1090,7 +1129,7 @@ TraceKit.computeStackTrace = (function computeStackTraceWrapper() { _helper('setTimeout'); _helper('setInterval'); -}()); +}; //Default options: if (!TraceKit.remoteFetching) { @@ -1109,4 +1148,4 @@ if (!TraceKit.linesOfContext || TraceKit.linesOfContext < 1) { // Export to global object window.TraceKit = TraceKit; -}(window)); +}(typeof window !== 'undefined' ? window : global)); diff --git a/client/galaxy/scripts/mvc/form/form-select-content.js b/client/galaxy/scripts/mvc/form/form-select-content.js index 90aef404fc3..c3445fb017c 100644 --- a/client/galaxy/scripts/mvc/form/form-select-content.js +++ b/client/galaxy/scripts/mvc/form/form-select-content.js @@ -2,9 +2,6 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/ui/ui-tabs', 'mvc/tools/tools-template'], function(Utils, Ui, Tabs, ToolTemplate) { -// track current history elements -history = {}; - // hda/hdca content selector ui element var View = Backbone.View.extend({ // initialize @@ -13,6 +10,10 @@ var View = Backbone.View.extend({ this.app = app; this.options = options; + // track current history elements + this.history = {}; + + // link this var self = this; @@ -197,7 +198,7 @@ var View = Backbone.View.extend({ value: item.id }); // backup to local history - history[item.id + '_' + item.src] = item; + self.history[item.id + '_' + item.src] = item; } // update field field.update(select_options); @@ -272,7 +273,7 @@ var View = Backbone.View.extend({ // append to dataset ids for (var i in id_list) { - var details = history[id_list[i] + '_' + this.list[this.current].type]; + var details = this.history[id_list[i] + '_' + this.list[this.current].type]; if (details) { result.values.push(details); } else { @@ -315,7 +316,7 @@ var View = Backbone.View.extend({ /** Assists in identifying the batch mode */ _batch: function() { if (this.current == 'collection') { - var hdca = history[this._select().value() + '_hdca']; + var hdca = this.history[this._select().value() + '_hdca']; if (hdca && hdca.map_over_type) { return true; } diff --git a/client/galaxy/scripts/mvc/history/history-model.js b/client/galaxy/scripts/mvc/history/history-model.js index c7b0c224f3d..eb84d6f51e1 100644 --- a/client/galaxy/scripts/mvc/history/history-model.js +++ b/client/galaxy/scripts/mvc/history/history-model.js @@ -1,8 +1,9 @@ define([ "mvc/history/history-contents", + "utils/utils", "mvc/base-mvc", "utils/localization" -], function( HISTORY_CONTENTS, BASE_MVC, _l ){ +], function( HISTORY_CONTENTS, UTILS, BASE_MVC, _l ){ //============================================================================== /** @class Model for a Galaxy history resource - both a record of user * tool use and a collection of the datasets those tools produced. @@ -96,6 +97,26 @@ var History = Backbone.Model.extend( BASE_MVC.LoggableMixin ).extend( this.clearUpdateTimeout(); }, + /** convert size in bytes to a more human readable version */ + nice_size : function(){ + return UTILS.bytesToString( this.get( 'size' ), true, 2 ); + }, + + /** override to add nice_size */ + toJSON : function(){ + return _.extend( Backbone.Model.prototype.toJSON.call( this ), { + nice_size : this.nice_size() + }); + }, + + /** override to allow getting nice_size */ + get : function( key ){ + if( key === 'nice_size' ){ + return this.nice_size(); + } + return Backbone.Model.prototype.get.apply( this, arguments ); + }, + // ........................................................................ common queries /** T/F is this history owned by the current user (Galaxy.currUser) * Note: that this will return false for an anon user even if the history is theirs. diff --git a/client/galaxy/scripts/mvc/history/history-panel-edit.js b/client/galaxy/scripts/mvc/history/history-panel-edit.js index 22c21adb651..3f997ab8739 100644 --- a/client/galaxy/scripts/mvc/history/history-panel-edit.js +++ b/client/galaxy/scripts/mvc/history/history-panel-edit.js @@ -109,7 +109,7 @@ var HistoryPanelEdit = _super.extend( /** listening for history and HDA events */ _setUpModelListeners : function(){ _super.prototype._setUpModelListeners.call( this ); - this.model.on( 'change:nice_size', this.updateHistoryDiskSize, this ); + this.model.on( 'change:size', this.updateHistoryDiskSize, this ); return this; }, diff --git a/client/galaxy/scripts/mvc/ui/ui-select-library.js b/client/galaxy/scripts/mvc/ui/ui-select-library.js index fdffa445625..2df383b8eba 100644 --- a/client/galaxy/scripts/mvc/ui/ui-select-library.js +++ b/client/galaxy/scripts/mvc/ui/ui-select-library.js @@ -4,7 +4,7 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/ui/ui-table', 'mvc/ui/ui-list'], // collection of libraries var Libraries = Backbone.Collection.extend({ - url: galaxy_config.root + 'api/libraries' + url: galaxy_config.root + 'api/libraries?deleted=false' }); // collection of dataset diff --git a/client/galaxy/scripts/utils/query-string-parsing.js b/client/galaxy/scripts/utils/query-string-parsing.js new file mode 100644 index 00000000000..8b5ec29433d --- /dev/null +++ b/client/galaxy/scripts/utils/query-string-parsing.js @@ -0,0 +1,21 @@ +define([], function(){ +// ============================================================================ +function get( key, queryString ){ + queryString = queryString || window.location.search.substr( 1 ); + var keyRegex = new RegExp( key + '=([^&#$]+)' ), + matches = queryString.match( keyRegex ); + if( !matches || !matches.length ){ + return undefined; + } + matches = matches.splice( 1 ); + if( matches.length === 1 ){ + return matches[0]; + } + return matches; +} + +// ============================================================================ + return { + get : get + }; +}); diff --git a/client/galaxy/scripts/utils/utils.js b/client/galaxy/scripts/utils/utils.js index 6264561f5ed..7c951228f99 100644 --- a/client/galaxy/scripts/utils/utils.js +++ b/client/galaxy/scripts/utils/utils.js @@ -116,7 +116,7 @@ function request (options) { data : options.data || {}, url : options.url } - + // encode data into url if (ajaxConfig.type == 'GET' || ajaxConfig.type == 'DELETE') { if (ajaxConfig.url.indexOf('?') == -1) { @@ -156,7 +156,7 @@ function request (options) { }); }; -/** +/** * Read a property value from CSS * @param{String} classname - CSS class * @param{String} name - CSS property @@ -164,20 +164,20 @@ function request (options) { function cssGetAttribute (classname, name) { // place dummy element var el = $('
'); - + // required append el.appendTo(':eq(0)'); - + // get value var value = el.css(name); - + // remove element el.remove(); - + // return css value return value; }; - + /** * Load a CSS file * @param{String} url - Url of CSS file @@ -200,23 +200,42 @@ function merge (options, optionsDefault) { return optionsDefault; }; + +/** + * Round floaing point 'number' to 'numPlaces' number of decimal places. + * @param{Object} number a floaing point number + * @param{Object} numPlaces number of decimal places + */ +function roundToDecimalPlaces( number, numPlaces ){ + var placesMultiplier = 1; + for( var i=0; i= 100000000000) { size = size / 100000000000; unit = 'TB'; } else - if (size >= 100000000) { size = size / 100000000; unit = 'GB'; } else - if (size >= 100000) { size = size / 100000; unit = 'MB'; } else - if (size >= 100) { size = size / 100; unit = 'KB'; } else - if (size > 0) { size = size * 10; unit = 'b'; } else - return '-'; - + if (size >= tb){ size = size / tb; unit = 'TB'; } else + if (size >= gb){ size = size / gb; unit = 'GB'; } else + if (size >= mb){ size = size / mb; unit = 'MB'; } else + if (size >= kb){ size = size / kb; unit = 'KB'; } else + if (size > 0){ unit = 'b'; } + else { return normal_font? '0 b': '-'; } // return formatted string - var rounded = (Math.round(size) / 10); + var rounded = unit == 'b'? size: roundToDecimalPlaces( size, numberPlaces ); if (normal_font) { return rounded + ' ' + unit; } else { @@ -238,11 +257,11 @@ function uid(){ function time() { // get date object var d = new Date(); - + // format items var hours = (d.getHours() < 10 ? "0" : "") + d.getHours(); var minutes = (d.getMinutes() < 10 ? "0" : "") + d.getMinutes() - + // format final stamp var datetime = d.getDate() + "/" + (d.getMonth() + 1) + "/" diff --git a/client/galaxy/scripts/viz/trackster.js b/client/galaxy/scripts/viz/trackster.js index 02d162ca472..3131070c79c 100644 --- a/client/galaxy/scripts/viz/trackster.js +++ b/client/galaxy/scripts/viz/trackster.js @@ -31,8 +31,8 @@ require( }); // trackster viewer -define( ["libs/underscore", "base", "viz/trackster/tracks", "viz/visualization", "mvc/ui/icon-button" ], - function(_, base, tracks, visualization, mod_icon_btn) { +define( ["libs/underscore", "base", "viz/trackster/tracks", "viz/visualization", "mvc/ui/icon-button", "utils/query-string-parsing" ], + function(_, base, tracks, visualization, mod_icon_btn, query_string ) { /** * User interface controls for trackster */ @@ -401,11 +401,84 @@ var TracksterView = Backbone.View.extend( // hide right panel force_right_panel("hide"); + // check if id is available - if (galaxy_config.app.id) + if (galaxy_config.app.id){ this.view_existing(); - else + } else if( query_string.get( 'dataset_id' ) ){ + this.choose_existing_or_new(); + } else { this.view_new(); + } + }, + + choose_existing_or_new : function () { + var self = this; + var dbkey = query_string.get( 'dbkey' ), + listTracksParams = {}, + dataset_params = { + dbkey : dbkey, + dataset_id : query_string.get( 'dataset_id' ), + hda_ldda : query_string.get( 'hda_ldda' ) + }; + if (dbkey){ + listTracksParams[ 'f-dbkey' ] = dbkey; + } + $.ajax({ + url: galaxy_config.root + 'visualization/list_tracks?' + $.param( listTracksParams ), + dataType: "html", + error: function() { alert( "Could not add this dataset to browser." ); }, + + success: function(table_html) { + console.debug( 'success' ); + function view_in_saved(){ + // Show new modal with saved visualizations. + Galaxy.modal.show({ + title : "Add Data to Saved Visualization", + body : table_html, + buttons : { + "Cancel": function() { + // go back to the first choice + show_choice(); + }, + "Add to visualization": function() { + $(parent.document).find('input[name=id]:checked').each(function() { + var vis_id = $(this).val(); + dataset_params.id = vis_id; + window.location = galaxy_config.root + "visualization/trackster?" + $.param(dataset_params); + }); + } + } + }); + } + function show_choice(){ + Galaxy.modal.show({ + title : "View Data in a New or Saved Visualization?", + // either have text in here or have to remove body and the header/footer margins + body : ( + // TODO: yay. inline styles. thanks, galaxy + '

    You can add this dataset as:' + + "
  • a new track to one of your existing, saved Trackster " + + "sessions if they share the genome build: " + dbkey + "
  • " + + "
  • or create a new session with this dataset as the only track
  • " + + "

" + ), + buttons : { + "Cancel": function() { + window.location = galaxy_config.root + "visualization/list"; + }, + "View in saved visualization": function() { + view_in_saved(); + }, + "View in new visualization": function() { + self.view_new(); + } + } + }); + } + show_choice(); + } + }); }, // view @@ -459,7 +532,8 @@ var TracksterView = Backbone.View.extend( }); // select default - if (galaxy_config.app.default_dbkey) { + var dbkeys_in_genomes = response.map( function( r ){ return r[1]; }); + if (galaxy_config.app.default_dbkey && _.contains(dbkeys_in_genomes,galaxy_config.app.default_dbkey)) { $("#new-dbkey").val( galaxy_config.app.default_dbkey ); } diff --git a/client/galaxy/style/less/base.less b/client/galaxy/style/less/base.less index 8dad18887c1..72dfbd62e78 100644 --- a/client/galaxy/style/less/base.less +++ b/client/galaxy/style/less/base.less @@ -4,6 +4,9 @@ // Galaxy specific variables @import "galaxy_variables.less"; +// Galaxy Report Webapp +@import "reports"; + @white: #fff; @black: #000; @@ -134,14 +137,6 @@ body { #left-border { left: 250px; } -.reports-panel-container { - position: absolute; - top: @panel_header_height; - bottom: 10px; - overflow: scroll; - width: 100%; - padding: 10px; -} #center { left:250 + @border-default-color_padding; right: 250 + @border-default-color_padding; diff --git a/client/galaxy/style/less/history.less b/client/galaxy/style/less/history.less index 28e67de7832..af5974dd085 100644 --- a/client/galaxy/style/less/history.less +++ b/client/galaxy/style/less/history.less @@ -807,179 +807,6 @@ // ---------------------------------------------------------------------------- older styles -//TODO: these may still apply in mobile display, workflow stuff -body.historyPage { - background: @side-panel-bg; - color: @base-text-color; - margin: 5px; - border: 0; - padding: 0; -} - -// Control links at top of history -div.historyLinks { - margin: 5px 5px; -} - -// Default history item appearance -div.historyItem { - margin: 0px -5px; - padding: 8px 10px; - border-top: solid @border-default-color 1px; - // border-left: solid @state-queued-border 5px; - border-right: none; - word-wrap: break-word; - background: @state-default-bg; - .state-icon { - display: inline-block; - vertical-align: middle; - width: 16px; - height: 16px; - background-position: 0 1px; - background-repeat: no-repeat; - } - .historyItemTitle { - font-weight: bold; - line-height: 16px; - } -} - -.historyItemContainer:last-child div.historyItem { - border-bottom: solid @border-default-color 1px; -} - -// Nested history items -div.historyItem div.historyItem { - margin-right: -11px; -} - -// Change background/border color depending on state -div.historyItem-ok, -div.historyItem-failed_metadata { - background: @state-success-bg; - .state-icon { - display: none; - } -} - -div.historyItem-error { - background: @state-danger-bg; - .state-icon { - .sprite(@data-error); - } -} - -div.historyItem-empty { - background: @state-danger-bg; - .state-icon { - .sprite(@data-empty); - } -} - -div.historyItem-running { - background: @state-running-bg; - .state-icon { - background-image: url(data_running.gif); - } -} - -div.historyItem-setting_metadata { - background: @state-running-bg; - .state-icon { - background-image: url(data_running.gif); - } -} - -div.historyItem-upload { - background: @state-info-bg; - .state-icon { - background-image: url(data_upload.gif); - } -} - -div.historyItem-queued { - background: @state-default-bg; - .state-icon { - .sprite(@data-queued); - } -} - -div.historyItem-noPermission { - filter: alpha(opacity=60); - -moz-opacity: .60; - opacity: .60; - .state-icon { - line-height: 16px; - .fa-icon; - &:before { - content: "\f05e"; - } - } -} - -div.historyItem-paused { - background: @state-paused-bg; - .state-icon { - line-height: 16px; - .fa-icon; - &:before { - content: "\f04c"; - } - } -} - -div.historyItem-new { - .state-icon { - line-height: 16px; - .fa-icon; - &:before { - content: "\f071"; - } - } -} - -// Special case for showing the spinner but not changing the background -div.historyItemTitleBar.spinner .state-icon { - background: url(data_running.gif) 0 1px no-repeat !important; -} - -// Buttons -div.historyItemButtons { - float: right; - - .icon-button.display { - .sprite(@eye-icon); - } - .icon-button.display:hover { - .sprite(@eye-icon-dark); - } - .icon-button.display_disabled { - .sprite(@eye-icon-grey); - } - .icon-button.delete { - .sprite(@delete-icon); - } - .icon-button.delete:hover { - .sprite(@delete-icon-dark); - } - .icon-button.delete_disabled { - .sprite(@delete-icon-grey); - } - .icon-button.edit { - .sprite(@pencil-icon); - } - .icon-button.edit:hover { - .sprite(@pencil-icon-dark); - } - .icon-button.edit_disabled { - .sprite(@pencil-icon-grey); - } -} - -div.historyItemBody div { - padding-top: 2px; -} - pre.peek { background: white; color: black; diff --git a/client/galaxy/style/less/reports.less b/client/galaxy/style/less/reports.less new file mode 100644 index 00000000000..ac39c4374ee --- /dev/null +++ b/client/galaxy/style/less/reports.less @@ -0,0 +1,123 @@ +// ############################################################# Reports Webapp + + +// ======================================================== Left ============== +.reports-panel-container { + position: absolute; + /*From base.less, top should be @panel_header_height*/ + top: 30px; + bottom: 10px; + overflow: scroll; + width: 100%; + padding: 10px; +} + +// ======================================================== SparkLines ======== +#spark_time_select { + display: inline-block; +} +#spark_select { + height: 23px; + width: 30px; + padding: 0; + border-radius: 2px; +} + +.jqstooltip { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + } + +// ======================================================== Sorting =========== +.dir_arrow { + visibility: hidden +} + +// ======================================================== Paging ============ +// ------------------------------------ Pages --------------------------------- +#back_button, #next_button, #curr_button, .miss_pages, .page_button { + position: relative; + float: left; + height: 24px; + width: 23px; + margin: 0 -1px 0 0; + padding-top: 2.5px; + border: 1px solid #bfbfbf; + z-index: 0; +} + +#back_button { + cursor: pointer; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +#curr_button { + background: #ebd9b2; + border: 1px solid #5f6990; + z-index: 1; +} + +#formHeader > tbody > tr { + vertical-align: middle; +} + +#next_button { + cursor: pointer; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +#page_selector { + cursor: default; + position: relative; + text-align: center; +} + + + +.page_button > a { + text-decoration: none; + padding: 8px; + margin: -8px; + height: 100%; + width: 100%; +} +// ------------------------------------ Entry Selector ------------------------ +#entries_edit { + position: relative; + padding: 0; + width: 36px; + height: 20px; + text-align: center; + border: 1px solid black; + border-radius: 3px; + z-index: 6; +} + +#entry_submit { + cursor: default; + position: relative; + display: inline-block; + border: 1px solid black; + padding: 0; + width: 22px; + height: 22px; + border-radius: 11px; + background-color: #ebd9b2; + text-align: center; + opacity: 0.0; + z-index: 0; +} + +// ======================================================== Misc. ============= +.half_width { + width: 50% +} +.third_width { + width: 30%; +} +.quarter_width { + width: 25%; +} \ No newline at end of file diff --git a/client/grunt-tasks/install-libs.js b/client/grunt-tasks/install-libs.js index c2f8cbda161..d37120b0483 100644 --- a/client/grunt-tasks/install-libs.js +++ b/client/grunt-tasks/install-libs.js @@ -19,11 +19,12 @@ module.exports = function( grunt ){ 'backbone': [ 'backbone.js', 'backbone/backbone.js' ], 'requirejs': [ 'require.js', 'require.js' ], 'd3': [ 'd3.js', 'd3.js' ], + 'bib2json': [ 'Parser.js', 'bibtex.js' ], + + 'farbtastic': [ 'src/farbtastic.js', 'farbtastic.js' ], + 'jQTouch': [ 'src/reference/jqtouch.js', 'jquery/jqtouch.js' ], // these need to be updated and tested - //'farbtastic': [ 'src/farbtastic.js', 'farbtastic.js' ], - //'jQTouch': [ 'src/reference/jqtouch.js', 'jquery/jqtouch.js' ], - //'bib2json': [ 'Parser.js', 'bibtex.js' ], //'jquery-form': [ 'jquery.form.js', 'jquery/jquery.form.js' ], //'jquery-autocomplete': [ 'src/jquery.autocomplete.js', 'jquery/jquery.autocomplete.js' ], //'select2': [ 'select2.js', 'jquery/select2.js' ], diff --git a/client/grunt-tasks/style.js b/client/grunt-tasks/style.js index 4d0ba5321b0..968f3be24c1 100644 --- a/client/grunt-tasks/style.js +++ b/client/grunt-tasks/style.js @@ -20,7 +20,8 @@ module.exports = function( grunt ){ 'masthead', 'library', 'trackster', - 'circster' + 'circster', + 'reports' ]; @@ -82,4 +83,4 @@ module.exports = function( grunt ){ }); grunt.registerTask( 'style', [ 'sprite', 'less-site-config', 'less', 'clean' ] ); -}; \ No newline at end of file +}; diff --git a/config/galaxy.ini.sample b/config/galaxy.ini.sample index 3e9d8f67da5..be7c5732d28 100644 --- a/config/galaxy.ini.sample +++ b/config/galaxy.ini.sample @@ -952,12 +952,9 @@ use_interactive = True #job_config_file = config/job_conf.xml # In multiprocess configurations, notification between processes about new jobs -# is done via the database. In single process configurations, this is done in -# memory, which is a bit quicker. Galaxy tries to automatically determine -# which method it should used based on your handler configuration in the job -# config file, but you can explicitly override this behavior by setting the -# following option to True or False. -#track_jobs_in_database = None +# must be done via the database. In single process configurations, this can be +# done in memory, which is a bit quicker. +#track_jobs_in_database = True # This enables splitting of jobs into tasks, if specified by the particular tool # config. diff --git a/config/plugins/visualizations/trackster/config/trackster.xml b/config/plugins/visualizations/trackster/config/trackster.xml index 02e06e73e52..2d63a12854b 100644 --- a/config/plugins/visualizations/trackster/config/trackster.xml +++ b/config/plugins/visualizations/trackster/config/trackster.xml @@ -15,6 +15,7 @@ None dataset_id hda_ldda + dbkey diff --git a/doc/source/api/guidelines.rst b/doc/source/api/guidelines.rst new file mode 100644 index 00000000000..e97d46b8595 --- /dev/null +++ b/doc/source/api/guidelines.rst @@ -0,0 +1,72 @@ +API Design Guidelines +===================== + +The following section outlines guidelines related to extending and/or modifing +the Galaxy API. The Galaxy API has grown in an ad-hoc fashion over time by +many contributors and so clients SHOULD NOT expect the API will conform to +these guidelines - but developers contributing to the Galaxy API SHOULD follow +these guidelines. + + - API functionality should include docstring documentation for consumption + by readthedocs.org. + - Developers should familiarize themselves with the HTTP status code definitions + http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html. The API responses + should properly set the status code according to the result - in particular + 2XX responses should be used for successful requests, 4XX for various + kinds of client errors, and 5XX for the errors on the server side. + - If there is an error processing some part of request (one item in a list + for instance), the status code should be set to reflect the error and the + partial result may or may not be returned depending on the controller - + this behavior should be documented. + - API methods should throw a finite number of exceptions + (defined in :doc:`galaxy.exceptions`) and these should subclass + `MessageException` and not paste/wsgi HTTP exceptions. When possible, + the framework itself should be responsible catching these exceptions, + setting the status code, and building an error response. + - Error responses should not consist of plain text strings - they should be + dictionaries describing the error and containing the following:: + + { + "status_code": 400, + "err_code": 400007, + "err_msg": "Request contained invalid parameter, action could not be completed.", + "type": "error", + "extra_error_info": "Extra information." + } + + Various error conditions (once a format has been chosen and framework to + enforce it in place) should be spelled out in this document. + - Backward compatibility is important and should be maintained when possible. + If changing behavior in a non-backward compatibile way please ensure one + of the following holds - there is a strong reason to believe no consumers + depend on a behavior, the behavior is effectively broken, or the API + method being modified has not been part of a tagged dist release. + +The following bullet points represent good practices more than guidelines, please +consider them when modifying the API. + + - Functionality should not be copied and pasted between controllers - + consider refactoring functionality into associated classes or short of + that into Mixins (http://en.wikipedia.org/wiki/Composition_over_inheritance) + or into Managers (:doc:`galaxy.managers`). + - API additions are more permanent changes to Galaxy than many other potential + changes and so a second opinion on API changes should be sought. (Consider a + pull request!) + - New API functionality should include functional tests. These functional + tests should be implemented in Python and placed in + `test/functional/api`. (Once such a framework is in place - it is not + right now). + - Changes to reflect modifications to the API should be pushed upstream to + the BioBlend project if possible. + +Longer term goals/notes. + + - It would be advantageous to have a clearer separation of anonymous and + admin handling functionality. + - If at some point in the future, functionality needs to be added that + breaks backward compatibility in a significant way to a component used by + the community - a "dev" variant of the API will be established and + the community should be alerted and given a timeframe for when the old + behavior will be replaced with the new behavior. + - Consistent standards for range-based requests, batch requests, filtered + requests, etc... should be established and documented here. diff --git a/doc/source/api_doc.rst b/doc/source/api_doc.rst index 119b2216786..1a657105284 100644 --- a/doc/source/api_doc.rst +++ b/doc/source/api_doc.rst @@ -205,78 +205,6 @@ used in the web form, like 'link_data_only' and etc. The request and response format should be considered alpha and are subject to change. -API Design Guidelines -===================== - -The following section outlines guidelines related to extending and/or modifing -the Galaxy API. The Galaxy API has grown in an ad-hoc fashion over time by -many contributors and so clients SHOULD NOT expect the API will conform to -these guidelines - but developers contributing to the Galaxy API SHOULD follow -these guidelines. - - - API functionality should include docstring documentation for consumption - by readthedocs.org. - - Developers should familiarize themselves with the HTTP status code definitions - http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html. The API responses - should properly set the status code according to the result - in particular - 2XX responses should be used for successful requests, 4XX for various - kinds of client errors, and 5XX for the errors on the server side. - - If there is an error processing some part of request (one item in a list - for instance), the status code should be set to reflect the error and the - partial result may or may not be returned depending on the controller - - this behavior should be documented. - - API methods should throw a finite number of exceptions - (defined in :doc:`galaxy.exceptions`) and these should subclass - `MessageException` and not paste/wsgi HTTP exceptions. When possible, - the framework itself should be responsible catching these exceptions, - setting the status code, and building an error response. - - Error responses should not consist of plain text strings - they should be - dictionaries describing the error and containing the following:: - - { - "status_code": 400, - "err_code": 400007, - "err_msg": "Request contained invalid parameter, action could not be completed.", - "type": "error", - "extra_error_info": "Extra information." - } - - Various error conditions (once a format has been chosen and framework to - enforce it in place) should be spelled out in this document. - - Backward compatibility is important and should be maintained when possible. - If changing behavior in a non-backward compatibile way please ensure one - of the following holds - there is a strong reason to believe no consumers - depend on a behavior, the behavior is effectively broken, or the API - method being modified has not been part of a tagged dist release. - -The following bullet points represent good practices more than guidelines, please -consider them when modifying the API. - - - Functionality should not be copied and pasted between controllers - - consider refactoring functionality into associated classes or short of - that into Mixins (http://en.wikipedia.org/wiki/Composition_over_inheritance) - or into Managers (:doc:`galaxy.managers`). - - API additions are more permanent changes to Galaxy than many other potential - changes and so a second opinion on API changes should be sought. (Consider a - pull request!) - - New API functionality should include functional tests. These functional - tests should be implemented in Python and placed in - `test/functional/api`. (Once such a framework is in place - it is not - right now). - - Changes to reflect modifications to the API should be pushed upstream to - the BioBlend project if possible. - -Longer term goals/notes. - - - It would be advantageous to have a clearer separation of anonymous and - admin handling functionality. - - If at some point in the future, functionality needs to be added that - breaks backward compatibility in a significant way to a component used by - the community - a "dev" variant of the API will be established and - the community should be alerted and given a timeframe for when the old - behavior will be replaced with the new behavior. - - Consistent standards for range-based requests, batch requests, filtered - requests, etc... should be established and documented here. - +.. include:: api/guidelines.rst .. include:: lib/galaxy.webapps.galaxy.api.rst diff --git a/doc/source/index.rst b/doc/source/index.rst index 58450c3aaf2..a2d2fbf1bf2 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -8,33 +8,19 @@ transparent computational biomedical research. - *Reproducible:* Galaxy captures information so that any user can repeat and understand a complete computational analysis. - *Transparent:* Users share and publish analyses via the web and create Pages, interactive, web-based documents that describe a complete analysis. -Two copies of the Galaxy code doumentation are published by the Galaxy Project +Things to know: -- Galaxy-Dist_: This describes the code in the `most recent official release`_ of Galaxy. -- Galaxy-Central_: Describes the `current code in the development branch`_ of Galaxy. This is the latest checkin, bleeding edge version of the code. The documentation should never be more than an hour behind the code. +- There are multiple choices_ when it comes to using Galaxy. +- You can explore the `current code in the development branch`_ on GitHub. +- This documentation is hosted at readthedocs_. -Both copies are hosted at ReadTheDocs_, a publicly supported web site for hosting project documentation. +For more information on the Galaxy Project, please visit the `project home page`_. -If you have your own copy of the Galaxy source code, you can also generate your own version of this documentation: - -:: - - $ cd doc - $ make html - -The generated documentation will be in ``doc/build/html/`` and can be viewed with a web browser. Note that you will need to install Sphinx and a fair number of module dependencies before this will produce output. - -.. _Galaxy: http://galaxyproject.org/ -.. _Galaxy-Dist: https://galaxy-dist.readthedocs.org/ -.. _most recent official release: https://bitbucket.org/galaxy/galaxy-dist -.. _Galaxy-Central: https://galaxy-central.readthedocs.org/ -.. _current code in the development branch: https://bitbucket.org/galaxy/galaxy-central -.. _ReadTheDocs: https://readthedocs.org/ - - -For more on the Galaxy Project, please visit the `project home page`_. - -.. _project home page: http://galaxyproject.org/ +.. _Galaxy: http://galaxyproject.org +.. _choices: https://wiki.galaxyproject.org/BigPicture/Choices +.. _current code in the development branch: https://github.com/galaxyproject/galaxy +.. _readthedocs: http://galaxy.readthedocs.org +.. _project home page: http://galaxyproject.org Contents @@ -42,7 +28,9 @@ Contents .. toctree:: :maxdepth: 5 - API Documentation + Galaxy API Documentation + + Tool Shed API Documentation Application Documentation @@ -55,3 +43,14 @@ Indices and tables * :ref:`modindex` * :ref:`search` +Building this Documentation +========================== + +If you have your own copy of the Galaxy source code, you can also generate your own version of this documentation: + +:: + + $ cd doc + $ make html + +The generated documentation will be in ``doc/build/html/`` and can be viewed with a web browser. Note that you will need to install Sphinx and a fair number of module dependencies before this will produce output. diff --git a/doc/source/releases/_header.rst b/doc/source/releases/_header.rst index c982e72796d..ddaf966e0c9 100644 --- a/doc/source/releases/_header.rst +++ b/doc/source/releases/_header.rst @@ -1,3 +1,3 @@ -.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_logo_25percent_transparent.png +.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogos?action=AttachFile&do=get&target=galaxy_logo_25percent_transparent.png :alt: Get the Galaxy Release Your Way :target: http://getgalaxy.org diff --git a/doc/source/ts_api_doc.rst b/doc/source/ts_api_doc.rst new file mode 100644 index 00000000000..f69a9483a26 --- /dev/null +++ b/doc/source/ts_api_doc.rst @@ -0,0 +1,19 @@ +Tool Shed API Documentation +*************************** + +Introduction +============ +The Galaxy Tool Shed can be accessed programmatically using API described +here via shell scripts and other programs. +To interact with the API you first need to log in as your user, navigate +to the API Keys page in the User menu, and generate a new API key. This +key you have to attach to every request as a parameter. Example: + +:: + + GET https://toolshed.g2.bx.psu.edu/api/repositories?q=fastq?key=SOME_KEY_HERE + + +.. include:: api/guidelines.rst + +.. include:: lib/galaxy.webapps.tool_shed.api.rst diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index c738d2a6480..a0b717bc5cf 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -206,7 +206,7 @@ class Configuration( object ): self.smtp_username = kwargs.get( 'smtp_username', None ) self.smtp_password = kwargs.get( 'smtp_password', None ) self.smtp_ssl = kwargs.get( 'smtp_ssl', None ) - self.track_jobs_in_database = kwargs.get( 'track_jobs_in_database', 'None' ) + self.track_jobs_in_database = string_as_bool( kwargs.get( 'track_jobs_in_database', 'True') ) self.start_job_runners = listify(kwargs.get( 'start_job_runners', '' )) self.expose_dataset_path = string_as_bool( kwargs.get( 'expose_dataset_path', 'False' ) ) # External Service types used in sample tracking @@ -384,13 +384,6 @@ class Configuration( object ): self.job_manager = kwargs.get('job_manager', self.server_name).strip() self.job_handlers = [ x.strip() for x in kwargs.get('job_handlers', self.server_name).split(',') ] self.default_job_handlers = [ x.strip() for x in kwargs.get('default_job_handlers', ','.join( self.job_handlers ) ).split(',') ] - # Use database for job running IPC unless this is a standalone server or explicitly set in the config - if self.track_jobs_in_database == 'None': - self.track_jobs_in_database = False - if len(self.server_names) > 1: - self.track_jobs_in_database = True - else: - self.track_jobs_in_database = string_as_bool( self.track_jobs_in_database ) # Store per-tool runner configs self.tool_handlers = self.__read_tool_job_config( global_conf_parser, 'galaxy:tool_handlers', 'name' ) self.tool_runners = self.__read_tool_job_config( global_conf_parser, 'galaxy:tool_runners', 'url' ) diff --git a/lib/galaxy/dataset_collections/builder.py b/lib/galaxy/dataset_collections/builder.py index 1d353be0d08..48c160c9cb7 100644 --- a/lib/galaxy/dataset_collections/builder.py +++ b/lib/galaxy/dataset_collections/builder.py @@ -1,4 +1,5 @@ from galaxy import model +from galaxy.util.odict import odict def build_collection( type, dataset_instances ): @@ -24,3 +25,66 @@ def set_collection_elements( dataset_collection, type, dataset_instances ): dataset_collection.elements = elements return dataset_collection + + +class CollectionBuilder(object): + """ Purely functional builder pattern for building a dataset collection. """ + + def __init__(self, collection_type_description): + self._collection_type_description = collection_type_description + self._current_elements = odict() + + def get_level(self, identifier): + if not self._nested_collection: + message_template = "Cannot add nested collection to collection of type [%s]" + message = message_template % (self._collection_type_description) + raise AssertionError(message) + if identifier not in self._current_elements: + subcollection_builder = CollectionBuilder( + self._subcollection_type_description + ) + self._current_elements[identifier] = subcollection_builder + + return self._current_elements[identifier] + + def add_dataset(self, identifier, dataset_instance): + self._current_elements[ identifier ] = dataset_instance + + def build_elements(self): + elements = self._current_elements + if self._nested_collection: + new_elements = odict() + for identifier, element in elements.items(): + new_elements[identifier] = element.build() + elements = new_elements + return elements + + def build(self): + type_plugin = self._collection_type_description.rank_type_plugin() + collection = build_collection( type_plugin, self.build_elements() ) + collection.collection_type = self._collection_type_description.collection_type + return collection + + @property + def _subcollection_type_description(self): + return self._collection_type_description.subcollection_type_description() + + @property + def _nested_collection(self): + return self._collection_type_description.has_subcollections() + + +class BoundCollectionBuilder( CollectionBuilder ): + """ More stateful builder that is bound to a particular model object. """ + + def __init__( self, dataset_collection, collection_type_description ): + self.dataset_collection = dataset_collection + if dataset_collection.populated: + raise Exception("Cannot reset elements of an already populated dataset collection.") + super( BoundCollectionBuilder, self ).__init__( collection_type_description ) + + def populate( self ): + elements = self.build_elements() + type_plugin = self._collection_type_description.rank_type_plugin() + set_collection_elements( self.dataset_collection, type_plugin, elements ) + self.dataset_collection.mark_as_populated() diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 3723d5e0169..337b4aae139 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -1,7 +1,6 @@ """Binary classes""" import binascii -import data import gzip import logging import os @@ -14,13 +13,12 @@ import zipfile from galaxy import eggs eggs.require( "bx-python" ) - from bx.seq.twobit import TWOBIT_MAGIC_NUMBER, TWOBIT_MAGIC_NUMBER_SWAP, TWOBIT_MAGIC_SIZE -from galaxy.util import sqlite from galaxy.datatypes.metadata import MetadataElement, MetadataParameter, ListParameter, DictParameter from galaxy.datatypes import metadata -import dataproviders +from galaxy.util import nice_size, sqlite +from . import data, dataproviders with warnings.catch_warnings(): warnings.simplefilter( "ignore" ) @@ -71,7 +69,7 @@ class Binary( data.Data ): """Set the peek and blurb text""" if not dataset.dataset.purged: dataset.peek = 'binary data' - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -99,7 +97,7 @@ class Ab1( Binary ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Binary ab1 sequence file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -108,7 +106,7 @@ class Ab1( Binary ): try: return dataset.peek except: - return "Binary ab1 sequence file (%s)" % ( data.nice_size( dataset.get_size() ) ) + return "Binary ab1 sequence file (%s)" % ( nice_size( dataset.get_size() ) ) Binary.register_unsniffable_binary_ext("ab1") @@ -143,7 +141,7 @@ class CompressedArchive( Binary ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Compressed binary file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -152,7 +150,7 @@ class CompressedArchive( Binary ): try: return dataset.peek except: - return "Compressed binary file (%s)" % ( data.nice_size( dataset.get_size() ) ) + return "Compressed binary file (%s)" % ( nice_size( dataset.get_size() ) ) Binary.register_unsniffable_binary_ext("compressed_archive") @@ -369,7 +367,7 @@ class Bam( Binary ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Binary bam alignments file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -378,7 +376,7 @@ class Bam( Binary ): try: return dataset.peek except: - return "Binary bam alignments file (%s)" % ( data.nice_size( dataset.get_size() ) ) + return "Binary bam alignments file (%s)" % ( nice_size( dataset.get_size() ) ) # ------------- Dataproviders # pipe through samtools view @@ -524,7 +522,7 @@ class H5( Binary ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Binary h5 file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -533,7 +531,7 @@ class H5( Binary ): try: return dataset.peek except: - return "Binary h5 sequence file (%s)" % ( data.nice_size( dataset.get_size() ) ) + return "Binary h5 sequence file (%s)" % ( nice_size( dataset.get_size() ) ) Binary.register_unsniffable_binary_ext("h5") @@ -546,7 +544,7 @@ class Scf( Binary ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Binary scf sequence file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -555,7 +553,7 @@ class Scf( Binary ): try: return dataset.peek except: - return "Binary scf sequence file (%s)" % ( data.nice_size( dataset.get_size() ) ) + return "Binary scf sequence file (%s)" % ( nice_size( dataset.get_size() ) ) Binary.register_unsniffable_binary_ext("scf") @@ -582,7 +580,7 @@ class Sff( Binary ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Binary sff file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -591,7 +589,7 @@ class Sff( Binary ): try: return dataset.peek except: - return "Binary sff file (%s)" % ( data.nice_size( dataset.get_size() ) ) + return "Binary sff file (%s)" % ( nice_size( dataset.get_size() ) ) Binary.register_sniffable_binary_format("sff", "sff", Sff) @@ -624,7 +622,7 @@ class BigWig(Binary): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Binary UCSC %s file" % self._name - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -633,7 +631,7 @@ class BigWig(Binary): try: return dataset.peek except: - return "Binary UCSC %s file (%s)" % ( self._name, data.nice_size( dataset.get_size() ) ) + return "Binary UCSC %s file (%s)" % ( self._name, nice_size( dataset.get_size() ) ) Binary.register_sniffable_binary_format("bigwig", "bigwig", BigWig) @@ -671,7 +669,7 @@ class TwoBit (Binary): def set_peek(self, dataset, is_multi_byte=False): if not dataset.dataset.purged: dataset.peek = "Binary TwoBit format nucleotide file" - dataset.blurb = data.nice_size(dataset.get_size()) + dataset.blurb = nice_size(dataset.get_size()) else: return super(TwoBit, self).set_peek(dataset, is_multi_byte) @@ -679,7 +677,7 @@ class TwoBit (Binary): try: return dataset.peek except: - return "Binary TwoBit format nucleotide file (%s)" % (data.nice_size(dataset.get_size())) + return "Binary TwoBit format nucleotide file (%s)" % (nice_size(dataset.get_size())) Binary.register_sniffable_binary_format("twobit", "twobit", TwoBit) @@ -747,7 +745,7 @@ class SQlite ( Binary ): except: continue dataset.peek = '\n'.join(lines) - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -756,7 +754,7 @@ class SQlite ( Binary ): try: return dataset.peek except: - return "SQLite Database (%s)" % ( data.nice_size( dataset.get_size() ) ) + return "SQLite Database (%s)" % ( nice_size( dataset.get_size() ) ) @dataproviders.decorators.dataprovider_factory( 'sqlite', dataproviders.dataset.SQliteDataProvider.settings ) def sqlite_dataprovider( self, dataset, **settings ): @@ -817,7 +815,7 @@ class GeminiSQLite( SQlite ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "Gemini SQLite Database, version %s" % ( dataset.metadata.gemini_version or 'unknown' ) - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -875,7 +873,7 @@ class Sra( Binary ): def set_peek(self, dataset, is_multi_byte=False): if not dataset.dataset.purged: dataset.peek = 'Binary sra file' - dataset.blurb = data.nice_size(dataset.get_size()) + dataset.blurb = nice_size(dataset.get_size()) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -884,7 +882,7 @@ class Sra( Binary ): try: return dataset.peek except: - return 'Binary sra file (%s)' % (data.nice_size(dataset.get_size())) + return 'Binary sra file (%s)' % (nice_size(dataset.get_size())) Binary.register_sniffable_binary_format('sra', 'sra', Sra) diff --git a/lib/galaxy/datatypes/genetics.py b/lib/galaxy/datatypes/genetics.py index 718e958680c..16c4ef2f051 100644 --- a/lib/galaxy/datatypes/genetics.py +++ b/lib/galaxy/datatypes/genetics.py @@ -22,8 +22,8 @@ from galaxy.datatypes import metadata from galaxy.datatypes.images import Html from galaxy.datatypes.metadata import MetadataElement from galaxy.datatypes.tabular import Tabular +from galaxy.util import nice_size from galaxy.web import url_for -from . import data gal_Log = logging.getLogger(__name__) verbose = False @@ -341,7 +341,7 @@ class SNPMatrix(Rgenetics): def set_peek( self, dataset, **kwd ): if not dataset.dataset.purged: dataset.peek = "Binary RGenetics file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' diff --git a/lib/galaxy/datatypes/images.py b/lib/galaxy/datatypes/images.py index 0acb6d3e067..165f4dcd4fb 100644 --- a/lib/galaxy/datatypes/images.py +++ b/lib/galaxy/datatypes/images.py @@ -2,14 +2,16 @@ Image classes """ -import data +import imghdr import logging +import zipfile +from urllib import quote_plus + from galaxy.datatypes.binary import Binary from galaxy.datatypes.sniff import get_headers from galaxy.datatypes.util.image_util import check_image_type -from urllib import quote_plus -import zipfile -import imghdr +from galaxy.util import nice_size +from . import data try: import Image as PIL @@ -39,7 +41,7 @@ class Image( data.Data ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = 'Image in %s format' % dataset.extension - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -303,7 +305,7 @@ class Html( data.Text ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = "HTML file" - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' diff --git a/lib/galaxy/datatypes/msa.py b/lib/galaxy/datatypes/msa.py index 706d9423e70..7a516ac5896 100644 --- a/lib/galaxy/datatypes/msa.py +++ b/lib/galaxy/datatypes/msa.py @@ -1,12 +1,12 @@ -from galaxy.datatypes.data import Text -from galaxy.datatypes.binary import Binary -from galaxy.datatypes.data import get_file_peek -from galaxy.datatypes.data import nice_size -from galaxy.datatypes.metadata import MetadataElement -from galaxy.datatypes.util import generic_util +import logging import os -import logging +from galaxy.datatypes.binary import Binary +from galaxy.datatypes.data import get_file_peek, Text +from galaxy.datatypes.metadata import MetadataElement +from galaxy.datatypes.util import generic_util +from galaxy.util import nice_size + log = logging.getLogger(__name__) diff --git a/lib/galaxy/datatypes/proteomics.py b/lib/galaxy/datatypes/proteomics.py index 447d38c0869..ef74b010346 100644 --- a/lib/galaxy/datatypes/proteomics.py +++ b/lib/galaxy/datatypes/proteomics.py @@ -1,17 +1,16 @@ """ Proteomics Datatypes """ +import binascii import logging import re -import binascii from galaxy.datatypes import data +from galaxy.datatypes.binary import Binary, SQlite from galaxy.datatypes.data import Text -from galaxy.datatypes.xml import GenericXml -from galaxy.datatypes.binary import Binary -from galaxy.datatypes.binary import SQlite from galaxy.datatypes.tabular import Tabular -from galaxy.util import sqlite +from galaxy.datatypes.xml import GenericXml +from galaxy.util import nice_size, sqlite log = logging.getLogger(__name__) @@ -268,7 +267,7 @@ class ThermoRAW(Binary): def set_peek(self, dataset, is_multi_byte=False): if not dataset.dataset.purged: dataset.peek = "Thermo Finnigan RAW file" - dataset.blurb = data.nice_size(dataset.get_size()) + dataset.blurb = nice_size(dataset.get_size()) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -277,7 +276,7 @@ class ThermoRAW(Binary): try: return dataset.peek except: - return "Thermo Finnigan RAW file (%s)" % (data.nice_size(dataset.get_size())) + return "Thermo Finnigan RAW file (%s)" % (nice_size(dataset.get_size())) Binary.register_sniffable_binary_format("thermo.raw", "raw", ThermoRAW ) diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 67032e02730..509eb97c7a2 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -117,6 +117,8 @@ class Registry( object ): # Keep a status of the process steps to enable stopping the process of handling the datatype if necessary. ok = True extension = elem.get( 'extension', None ) + if extension: + extension = extension.lower() dtype = elem.get( 'type', None ) type_extension = elem.get( 'type_extension', None ) mimetype = elem.get( 'mimetype', None ) diff --git a/lib/galaxy/datatypes/sequence.py b/lib/galaxy/datatypes/sequence.py index 625ec393978..71dea891f40 100644 --- a/lib/galaxy/datatypes/sequence.py +++ b/lib/galaxy/datatypes/sequence.py @@ -2,22 +2,22 @@ Sequence classes """ -from . import data import gzip import json import logging import os import re import string - from cgi import escape from galaxy import eggs, util from galaxy.datatypes import metadata from galaxy.datatypes.checkers import is_gzip -from galaxy.datatypes.sniff import get_headers from galaxy.datatypes.metadata import MetadataElement +from galaxy.datatypes.sniff import get_headers from galaxy.datatypes.util.image_util import check_image_type +from galaxy.util import nice_size +from . import data try: eggs.require( "bx-python" ) @@ -103,7 +103,7 @@ class Sequence( data.Text ): if dataset.metadata.sequences: dataset.blurb = "%s sequences" % util.commaify( str( dataset.metadata.sequences ) ) else: - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' @@ -940,7 +940,7 @@ class RNADotPlotMatrix( data.Data ): def set_peek( self, dataset, is_multi_byte=False ): if not dataset.dataset.purged: dataset.peek = 'RNA Dot Plot format (Postscript derivative)' - dataset.blurb = data.nice_size( dataset.get_size() ) + dataset.blurb = nice_size( dataset.get_size() ) else: dataset.peek = 'file does not exist' dataset.blurb = 'file purged from disk' diff --git a/lib/galaxy/datatypes/text.py b/lib/galaxy/datatypes/text.py index a86d914e482..8763fdde4b4 100644 --- a/lib/galaxy/datatypes/text.py +++ b/lib/galaxy/datatypes/text.py @@ -2,20 +2,18 @@ """ Clearing house for generic text datatypes that are not XML or tabular. """ -from galaxy.datatypes.data import Text -from galaxy.datatypes.data import get_file_peek -from galaxy.datatypes.data import nice_size -from galaxy.datatypes.metadata import MetadataElement -from galaxy import util - -import tempfile -import subprocess -import json import gzip +import json +import logging import os import re +import subprocess +import tempfile + +from galaxy.datatypes.data import get_file_peek, Text +from galaxy.datatypes.metadata import MetadataElement +from galaxy.util import nice_size, string_as_bool -import logging log = logging.getLogger(__name__) @@ -98,7 +96,7 @@ class Ipynb( Json ): return super(Ipynb, self).display_data( trans, dataset, preview=preview, fileame=filename, to_ext=to_ext, chunk=chunk, **kwd ) def _display_data_trusted(self, trans, dataset, preview=False, filename=None, to_ext=None, chunk=None, **kwd): - preview = util.string_as_bool( preview ) + preview = string_as_bool( preview ) if chunk: return self.get_chunk(trans, dataset, chunk) elif to_ext or not preview: diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py index 12d0e3cd665..bf3c6347c4a 100644 --- a/lib/galaxy/jobs/__init__.py +++ b/lib/galaxy/jobs/__init__.py @@ -95,7 +95,7 @@ class JobToolConfiguration( Bunch ): def config_exception(e, file): abs_path = os.path.abspath(file) message = 'Problem parsing the XML in file %s, ' % abs_path - message += 'please correct the indicated portion of the file and restart Galaxy.' + message += 'please correct the indicated portion of the file and restart Galaxy. ' message += str(e) log.exception(message) return Exception(message) @@ -192,6 +192,9 @@ class JobConfiguration( object ): else: self.handlers[tag] = [id] + # Must define at least one handler to have a default. + if not self.handlers: + raise ValueError("Job configuration file defines no valid handler elements.") # Determine the default handler(s) self.default_handler_id = self.__get_default(handlers, self.handlers.keys()) diff --git a/lib/galaxy/jobs/actions/post.py b/lib/galaxy/jobs/actions/post.py index da867d47aa6..f82f907028c 100644 --- a/lib/galaxy/jobs/actions/post.py +++ b/lib/galaxy/jobs/actions/post.py @@ -399,9 +399,18 @@ class DeleteIntermediatesAction(DefaultJobAction): # concurrently, sometimes non-terminal steps won't be cleaned up # because of the lag in job state updates. wfi = job.workflow_invocation_step.workflow_invocation + if wfi.active: + log.debug("Workflow still scheduling so new jobs may appear, skipping deletion of intermediate files.") + # Still evaluating workflow so we don't yet have all workflow invocation + # steps to start looking at. + return if wfi.workflow.has_outputs_defined(): jobs_to_check = [wfistep.job for wfistep in wfi.steps if not wfistep.workflow_step.workflow_outputs] for j2c in jobs_to_check: + if j2c is None: + # Job not yet created, this will be re-evaluated after subsequent jobs in + # workflow. + return for input_dataset in [x.dataset for x in j2c.input_datasets if x.dataset.creating_job.workflow_invocation_step and x.dataset.creating_job.workflow_invocation_step.workflow_invocation == wfi]: safe_to_delete = True for job_to_check in [d_j.job for d_j in input_dataset.dependent_jobs]: diff --git a/lib/galaxy/managers/collections.py b/lib/galaxy/managers/collections.py index 2440bc843be..6de44064bbd 100644 --- a/lib/galaxy/managers/collections.py +++ b/lib/galaxy/managers/collections.py @@ -50,11 +50,13 @@ class DatasetCollectionManager( object ): element_identifiers=None, elements=None, implicit_collection_info=None, + trusted_identifiers=None, # Trust preloaded element objects ): """ """ # Trust embedded, newly created objects created by tool subsystem. - trusted_identifiers = implicit_collection_info is not None + if trusted_identifiers is None: + trusted_identifiers = implicit_collection_info is not None if element_identifiers and not trusted_identifiers: validate_input_element_identifiers( element_identifiers ) @@ -157,6 +159,11 @@ class DatasetCollectionManager( object ): return dataset_collection + def collection_builder_for( self, dataset_collection ): + collection_type = dataset_collection.collection_type + collection_type_description = self.collection_type_descriptions.for_collection_type( collection_type ) + return builder.BoundCollectionBuilder( dataset_collection, collection_type_description ) + def delete( self, trans, instance_type, id ): dataset_collection_instance = self.get_dataset_collection_instance( trans, instance_type, id, check_ownership=True ) dataset_collection_instance.deleted = True @@ -279,7 +286,9 @@ class DatasetCollectionManager( object ): raise MessageException( "Dataset collection element definition (%s) not dictionary-like." % element_identifier ) encoded_id = element_identifier.get( 'id', None ) if not src_type or not encoded_id: - raise RequestParameterInvalidException( "Problem decoding element identifier %s" % element_identifier ) + message_template = "Problem decoding element identifier %s - must contain a 'src' and a 'id'." + message = message_template % element_identifier + raise RequestParameterInvalidException( message ) if src_type == 'hda': decoded_id = int( trans.app.security.decode_id( encoded_id ) ) diff --git a/lib/galaxy/managers/collections_util.py b/lib/galaxy/managers/collections_util.py index ad192ced475..d6938071274 100644 --- a/lib/galaxy/managers/collections_util.py +++ b/lib/galaxy/managers/collections_util.py @@ -39,7 +39,7 @@ def validate_input_element_identifiers( element_identifiers ): identifier_names = set() for element_identifier in element_identifiers: if "__object__" in element_identifier: - message = ERROR_MESSAGE_INVALID_PARAMETER_FOUND % ( "__model_object__", element_identifier ) + message = ERROR_MESSAGE_INVALID_PARAMETER_FOUND % ( "__object__", element_identifier ) raise exceptions.RequestParameterInvalidException( message ) if "name" not in element_identifier: message = ERROR_MESSAGE_NO_NAME % element_identifier diff --git a/lib/galaxy/managers/datasets.py b/lib/galaxy/managers/datasets.py index ca12a5a8ae4..284447afa65 100644 --- a/lib/galaxy/managers/datasets.py +++ b/lib/galaxy/managers/datasets.py @@ -367,7 +367,7 @@ class _UnflattenedMetadataDatasetAssociationSerializer( base.ModelSerializer, # derived (not mapped) attributes 'data_type' : lambda i, k, **c: i.datatype.__class__.__module__ + '.' + i.datatype.__class__.__name__, - # TODO: conversions + 'converted' : self.serialize_converted_datasets, # TODO: metadata/extra files }) # this an abstract superclass, so no views created @@ -418,6 +418,19 @@ class _UnflattenedMetadataDatasetAssociationSerializer( base.ModelSerializer, return metadata + def serialize_converted_datasets( self, dataset_assoc, key, **context ): + """ + Return a file extension -> converted dataset encoded id map with all + the existing converted datasets associated with this instance. + + This filters out deleted associations. + """ + id_map = {} + for converted in dataset_assoc.implicitly_converted_datasets: + if not converted.deleted and converted.dataset: + id_map[ converted.type ] = self.serialize_id( converted.dataset, 'id' ) + return id_map + class DatasetAssociationSerializer( _UnflattenedMetadataDatasetAssociationSerializer ): # TODO: remove this class - metadata should be a sub-object instead as in the superclass diff --git a/lib/galaxy/managers/histories.py b/lib/galaxy/managers/histories.py index ef8933f3478..f0f0c5bb9ea 100644 --- a/lib/galaxy/managers/histories.py +++ b/lib/galaxy/managers/histories.py @@ -122,55 +122,6 @@ class HistoryManager( sharable.SharableModelManager, deletable.PurgableManagerMi """ return self.set_current( trans, self.by_id( history_id ) ) -# TODO: replace or move to serializer - def _get_history_data( self, trans, history ): - """ - Returns a dictionary containing ``history`` and ``contents``, serialized - history and an array of serialized history contents respectively. - """ - # TODO: instantiate here? really? - history_serializer = HistorySerializer( self.app ) - hda_serializer = hdas.HDASerializer( self.app ) - history_dictionary = {} - contents_dictionaries = [] - try: - history_dictionary = history_serializer.serialize_to_view( history, view='detailed', - user=trans.user, trans=trans ) - - for content in history.contents_iter( types=[ 'dataset', 'dataset_collection' ] ): - contents_dict = {} - if isinstance( content, model.HistoryDatasetAssociation ): - contents_dict = hda_serializer.serialize_to_view(content, view='detailed', user=trans.user, trans=trans ) - hda_annotation = hda_serializer.serialize_annotation( content, 'annotation', user=history.user ) - contents_dict[ 'annotation' ] = hda_annotation - elif isinstance( content, model.HistoryDatasetCollectionAssociation ): - try: - service = self.app.dataset_collections_service - collection = service.get_dataset_collection_instance( - trans=trans, - instance_type='history', - id=self.app.security.encode_id( content.id ), - ) - serializer = collections_util.dictify_dataset_collection_instance - contents_dict = serializer( collection, - security=self.app.security, - parent=collection.history, - view="element" ) - except Exception, exc: - log.exception( "Error in history API at listing dataset collection: %s", exc ) - # TODO: return some dict with the error - contents_dictionaries.append( contents_dict ) - - except Exception, exc: - user_id = str( trans.user.id ) if trans.user else '(anonymous)' - log.exception( 'Error bootstrapping history for user %s: %s', user_id, str( exc ) ) - message = ( 'An error occurred getting the history data from the server. ' - 'Please contact a Galaxy administrator if the problem persists.' ) - history_dictionary[ 'error' ] = message - - return { 'history': history_dictionary, - 'contents': contents_dictionaries } - # container interface def _filter_to_contained( self, container, content_class ): return content_class.history == container @@ -215,7 +166,8 @@ class HistorySerializer( sharable.SharableModelSerializer, deletable.PurgableSer 'contents_url', # 'hdas', 'empty', - 'size', 'nice_size', + 'size', + # 'nice_size', 'user_id', 'create_time', 'update_time', 'importable', 'slug', 'username_and_slug', @@ -321,14 +273,21 @@ class HistorySerializer( sharable.SharableModelSerializer, deletable.PurgableSer return state - def serialize_contents( self, history, *args, **context ): + def serialize_contents( self, history, key, trans=None, **context ): contents_dictionaries = [] for content in history.contents_iter( types=[ 'dataset', 'dataset_collection' ] ): contents_dict = {} + if isinstance( content, model.HistoryDatasetAssociation ): - contents_dict = self.hda_serializer.serialize_to_view( content, view='detailed', **context ) - # elif isinstance( content, model.HistoryDatasetCollectionAssociation ): - # contents_dict = self._serialize_collection( trans, content ) + contents_dict = self.hda_serializer.serialize_to_view( content, + view='detailed', trans=trans, **context ) + # TODO: work out: shouldn't history annotations *always* use user=history.user? why anything else? + hda_annotation = self.hda_serializer.serialize_annotation( content, 'annotation', user=history.user ) + contents_dict[ 'annotation' ] = hda_annotation + + elif isinstance( content, model.HistoryDatasetCollectionAssociation ): + contents_dict = self._serialize_collection( trans, content ) + contents_dictionaries.append( contents_dict ) return contents_dictionaries @@ -341,7 +300,7 @@ class HistorySerializer( sharable.SharableModelSerializer, deletable.PurgableSer id=self.app.security.encode_id( collection.id ), ) return collections_util.dictify_dataset_collection_instance( dataset_collection_instance, - security=self.app.security, parent=dataset_collection_instance.history, view="element" ) + security=self.app.security, parent=dataset_collection_instance.history, view="element" ) class HistoryDeserializer( sharable.SharableModelDeserializer, deletable.PurgableDeserializerMixin ): diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 7dc74873372..3cb20324cc8 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -27,12 +27,13 @@ from sqlalchemy.orm import joinedload, object_session import galaxy.datatypes import galaxy.datatypes.registry +import galaxy.model.orm.now import galaxy.security.passwords +import galaxy.util from galaxy.datatypes.metadata import MetadataCollection from galaxy.model.item_attrs import Dictifiable, UsesAnnotations -import galaxy.model.orm.now from galaxy.security import get_permitted_actions -from galaxy.util import is_multi_byte, nice_size, Params, restore_text, send_mail +from galaxy.util import is_multi_byte, Params, restore_text, send_mail from galaxy.util import ready_name_for_url, unique_id from galaxy.util.bunch import Bunch from galaxy.util.hash_util import new_secure_hash @@ -185,7 +186,7 @@ class User( object, Dictifiable ): if self.disk_usage is not None: rval = self.disk_usage if nice_size: - rval = galaxy.datatypes.data.nice_size( rval ) + rval = galaxy.util.nice_size( rval ) return rval def set_disk_usage( self, bytes ): @@ -1220,7 +1221,7 @@ class History( object, Dictifiable, UsesAnnotations, HasName ): if rval is None: rval = 0 if nice_size: - rval = galaxy.datatypes.data.nice_size( rval ) + rval = galaxy.util.nice_size( rval ) return rval @property @@ -1381,7 +1382,7 @@ class Quota( object, Dictifiable ): if self.bytes == -1: return "unlimited" else: - return nice_size( self.bytes ) + return galaxy.util.nice_size( self.bytes ) class DefaultQuotaAssociation( Quota, Dictifiable ): @@ -1559,12 +1560,12 @@ class Dataset( object ): """Returns the size of the data on disk""" if self.file_size: if nice_size: - return galaxy.datatypes.data.nice_size( self.file_size ) + return galaxy.util.nice_size( self.file_size ) else: return self.file_size else: if nice_size: - return galaxy.datatypes.data.nice_size( self._calculate_size() ) + return galaxy.util.nice_size( self._calculate_size() ) else: return self._calculate_size() @@ -1755,7 +1756,7 @@ class DatasetInstance( object ): def get_size( self, nice_size=False ): """Returns the size of the data on disk""" if nice_size: - return galaxy.datatypes.data.nice_size( self.dataset.get_size() ) + return galaxy.util.nice_size( self.dataset.get_size() ) return self.dataset.get_size() def set_size( self ): diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index 171c9252761..3472881beee 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -343,16 +343,15 @@ class ToolOutputCollection( ToolOutputBase ): # This line is probably not right - should verify structured_like # or have outputs and all outputs have name. if len( self.outputs ) > 1: - outputs = self.outputs + output_parts = map( to_part, self.outputs ) else: # either must have specified structured_like or something worse if self.structure.structured_like: collection_prototype = inputs[ self.structure.structured_like ].collection else: collection_prototype = type_registry.prototype( self.structure.collection_type ) - # TODO: Handle nested structures. - outputs = odict() - for element in collection_prototype.elements: + + def prototype_dataset_element_to_output( element, parent_ids=[] ): name = element.element_identifier format = self.default_format if self.inherit_format: @@ -366,10 +365,29 @@ class ToolOutputCollection( ToolOutputBase ): ) if self.inherit_metadata: output.metadata_source = element.dataset_instance + return ToolOutputCollectionPart( + self, + element.element_identifier, + output, + parent_ids=parent_ids, + ) - outputs[ element.element_identifier ] = output + def prototype_collection_to_output( collection_prototype, parent_ids=[] ): + output_parts = [] + for element in collection_prototype.elements: + element_parts = [] + if not element.is_collection: + element_parts.append(prototype_dataset_element_to_output( element, parent_ids )) + else: + new_parent_ids = parent_ids[:] + [element.element_identifier] + element_parts.extend(prototype_collection_to_output(element.element_object, new_parent_ids)) + output_parts.extend(element_parts) - return map( to_part, outputs.items() ) + return output_parts + + output_parts = prototype_collection_to_output( collection_prototype ) + + return output_parts @property def dynamic_structure(self): @@ -402,10 +420,11 @@ class ToolOutputCollectionStructure( object ): class ToolOutputCollectionPart( object ): - def __init__( self, output_collection_def, element_identifier, output_def ): + def __init__( self, output_collection_def, element_identifier, output_def, parent_ids=[] ): self.output_collection_def = output_collection_def self.element_identifier = element_identifier self.output_def = output_def + self.parent_ids = parent_ids @property def effective_output_name( self ): diff --git a/lib/galaxy/tools/actions/__init__.py b/lib/galaxy/tools/actions/__init__.py index 93af340d2bd..cd42250db5b 100644 --- a/lib/galaxy/tools/actions/__init__.py +++ b/lib/galaxy/tools/actions/__init__.py @@ -287,16 +287,36 @@ class DefaultToolAction( object ): if not filter_output(output, incoming): if output.collection: collections_manager = trans.app.dataset_collections_service - # As far as I can tell - this is always true - but just verify assert set_output_history, "Cannot create dataset collection for this kind of tool." - elements = odict() + element_identifiers = [] input_collections = dict( [ (k, v[0]) for k, v in inp_dataset_collections.iteritems() ] ) known_outputs = output.known_outputs( input_collections, collections_manager.type_registry ) # Just to echo TODO elsewhere - this should be restructured to allow # nested collections. for output_part_def in known_outputs: + # Add elements to top-level collection, unless nested... + current_element_identifiers = element_identifiers + current_collection_type = output.structure.collection_type + + for parent_id in (output_part_def.parent_ids or []): + # TODO: replace following line with formal abstractions for doing this. + current_collection_type = ":".join(current_collection_type.split(":")[1:]) + name_to_index = dict(map(lambda (index, value): (value["name"], index), enumerate(current_element_identifiers))) + if parent_id not in name_to_index: + if parent_id not in current_element_identifiers: + index = len(current_element_identifiers) + current_element_identifiers.append(dict( + name=parent_id, + collection_type=current_collection_type, + src="new_collection", + element_identifiers=[], + )) + else: + index = name_to_index[parent_id] + current_element_identifiers = current_element_identifiers[ index ][ "element_identifiers" ] + effective_output_name = output_part_def.effective_output_name element = handle_output( effective_output_name, output_part_def.output_def ) # Following hack causes dataset to no be added to history... @@ -307,17 +327,23 @@ class DefaultToolAction( object ): trans.sa_session.add( element ) trans.sa_session.flush() - elements[ output_part_def.element_identifier ] = element + current_element_identifiers.append({ + "__object__": element, + "name": output_part_def.element_identifier, + }) + log.info(element_identifiers) if output.dynamic_structure: - assert not elements # known_outputs must have been empty - elements = collections_manager.ELEMENTS_UNINITIALIZED + assert not element_identifiers # known_outputs must have been empty + element_kwds = dict(elements=collections_manager.ELEMENTS_UNINITIALIZED) + else: + element_kwds = dict(element_identifiers=element_identifiers) if mapping_over_collection: dc = collections_manager.create_dataset_collection( trans, collection_type=output.structure.collection_type, - elements=elements, + **element_kwds ) out_collections[ name ] = dc else: @@ -327,7 +353,8 @@ class DefaultToolAction( object ): history, name=hdca_name, collection_type=output.structure.collection_type, - elements=elements, + trusted_identifiers=True, + **element_kwds ) # name here is name of the output element - not name # of the hdca. diff --git a/lib/galaxy/tools/parameters/dynamic_options.py b/lib/galaxy/tools/parameters/dynamic_options.py index 822be16a268..637d0b6b581 100644 --- a/lib/galaxy/tools/parameters/dynamic_options.py +++ b/lib/galaxy/tools/parameters/dynamic_options.py @@ -127,9 +127,26 @@ class DataMetaFilter( Filter ): return file_value == dataset_value assert self.ref_name in other_values or ( trans is not None and trans.workflow_building_mode), "Required dependency '%s' not found in incoming values" % self.ref_name ref = other_values.get( self.ref_name, None ) - if not isinstance( ref, self.dynamic_option.tool_param.tool.app.model.HistoryDatasetAssociation ) and not isinstance( ref, galaxy.tools.wrappers.DatasetFilenameWrapper ): + is_data = isinstance( ref, galaxy.tools.wrappers.DatasetFilenameWrapper ) + is_data_list = isinstance( ref, galaxy.tools.wrappers.DatasetListWrapper ) or isinstance( ref, list ) + is_data_or_data_list = is_data or is_data_list + if not isinstance( ref, self.dynamic_option.tool_param.tool.app.model.HistoryDatasetAssociation ) and not is_data_or_data_list: return [] # not a valid dataset - meta_value = ref.metadata.get( self.key, None ) + + if is_data_list: + meta_value = None + for single_ref in ref: + this_meta_value = single_ref.metadata.get( self.key, None ) + if this_meta_value == meta_value: + continue + elif meta_value is None: + meta_value = this_meta_value + else: + # Different values with mismatching metadata, return [] + return [] + else: + meta_value = ref.metadata.get( self.key, None ) + if meta_value is None: # assert meta_value is not None, "Required metadata value '%s' not found in referenced dataset" % self.key return [ ( disp_name, basic.UnvalidatedValue( optval ), selected ) for disp_name, optval, selected in options ] diff --git a/lib/galaxy/tools/parameters/output.py b/lib/galaxy/tools/parameters/output.py index f385ccb21ea..a0f8da261dc 100644 --- a/lib/galaxy/tools/parameters/output.py +++ b/lib/galaxy/tools/parameters/output.py @@ -10,6 +10,9 @@ from galaxy import util log = logging.getLogger( __name__ ) +# Attributes tool developer may want to query on dataset collections. +COLLECTION_ATTRIBUTES = [ "collection_type" ] + class ToolOutputActionGroup( object ): """ @@ -235,6 +238,13 @@ class FromParamToolOutputActionOption( ToolOutputActionOption ): value = value[0] elif isinstance(value, dict): value = value[ attr_name ] + elif hasattr( value, "collection" ) and value not in COLLECTION_ATTRIBUTES: + # if this is an HDCA for instance let reverse.ext grab + # the reverse element and then continue for loop to grab + # dataset extension + value = value.collection[ attr_name ].element_object + elif hasattr( value, "collection" ) and value in COLLECTION_ATTRIBUTES: + value = getattr( value.collection, attr_name ) else: value = getattr( value, attr_name ) options = [ [ str( value ) ] ] diff --git a/lib/galaxy/tools/parameters/output_collect.py b/lib/galaxy/tools/parameters/output_collect.py index 12fa418c46c..b673e1f787c 100644 --- a/lib/galaxy/tools/parameters/output_collect.py +++ b/lib/galaxy/tools/parameters/output_collect.py @@ -46,16 +46,17 @@ def collect_dynamic_collections( collection = has_collection try: - elements = job_context.build_collection_elements( + collection_builder = collections_service.collection_builder_for( + collection + ) + job_context.populate_collection_elements( collection, + collection_builder, output_collection_def, ) - collections_service.set_collection_elements( - collection, - elements - ) + collection_builder.populate() except Exception: - log.info("Problem gathering output collection.") + log.exception("Problem gathering output collection.") collection.handle_population_failed("Problem building datasets for collection.") @@ -85,33 +86,23 @@ class JobContext( object ): filenames[ path ] = extra_file_collector return filenames - def build_collection_elements( self, collection, output_collection_def ): - datasets = self.create_datasets( - collection, - output_collection_def, - ) - - elements = odict.odict() + def populate_collection_elements( self, collection, root_collection_builder, output_collection_def ): # TODO: allow configurable sorting. # # # # - # TODO: allow nested structure - for designation in datasets.keys(): - elements[ designation ] = datasets[ designation ] - - return elements - - def create_datasets( self, collection, output_collection_def ): dataset_collectors = output_collection_def.dataset_collectors filenames = self.find_files( collection, dataset_collectors ) - datasets = {} for filename, extra_file_collector in filenames.iteritems(): fields_match = extra_file_collector.match( collection, os.path.basename( filename ) ) if not fields_match: raise Exception( "Problem parsing metadata fields for file %s" % filename ) + element_identifiers = fields_match.element_identifiers + current_builder = root_collection_builder + for element_identifier in element_identifiers[:-1]: + current_builder = current_builder.get_level(element_identifier) designation = fields_match.designation visible = fields_match.visible ext = fields_match.ext @@ -128,9 +119,7 @@ class JobContext( object ): filename=filename, metadata_source_name=output_collection_def.metadata_source, ) - - datasets[ designation ] = dataset - return datasets + current_builder.add_dataset( element_identifiers[-1], dataset ) def create_dataset( self, @@ -394,13 +383,37 @@ class CollectedDatasetMatch( object ): @property def designation( self ): re_match = self.re_match - if "designation" in re_match.groupdict(): + # If collecting nested collection, grap identifier_0, + # identifier_1, etc... and join on : to build designation. + element_identifiers = self.raw_element_identifiers + if element_identifiers: + return ":".join(element_identifiers) + elif "designation" in re_match.groupdict(): return re_match.group( "designation" ) elif "name" in re_match.groupdict(): return re_match.group( "name" ) else: return None + @property + def element_identifiers( self ): + return self.raw_element_identifiers or [self.designation] + + @property + def raw_element_identifiers( self ): + re_match = self.re_match + identifiers = [] + i = 0 + while True: + key = "identifier_%d" % i + if key in re_match.groupdict(): + identifiers.append(re_match.group(key)) + else: + break + i += 1 + + return identifiers + @property def name( self ): """ Return name or None if not defined by the discovery pattern. diff --git a/lib/galaxy/tools/parser/xml.py b/lib/galaxy/tools/parser/xml.py index 56667d4242c..0a03d387742 100644 --- a/lib/galaxy/tools/parser/xml.py +++ b/lib/galaxy/tools/parser/xml.py @@ -359,17 +359,22 @@ def __parse_output_collection_elem( output_collection_elem ): name = attrib.pop( 'name', None ) if name is None: raise Exception( "Test output collection does not have a 'name'" ) + element_tests = __parse_element_tests( output_collection_elem ) + return TestCollectionOutputDef( name, attrib, element_tests ) + + +def __parse_element_tests( parent_element ): element_tests = {} - for element in output_collection_elem.findall("element"): + for element in parent_element.findall("element"): element_attrib = dict( element.attrib ) identifier = element_attrib.pop( 'name', None ) if identifier is None: raise Exception( "Test primary dataset does not have a 'identifier'" ) - element_tests[ identifier ] = __parse_test_attributes( element, element_attrib ) - return TestCollectionOutputDef( name, attrib, element_tests ) + element_tests[ identifier ] = __parse_test_attributes( element, element_attrib, parse_elements=True ) + return element_tests -def __parse_test_attributes( output_elem, attrib ): +def __parse_test_attributes( output_elem, attrib, parse_elements=False ): assert_list = __parse_assert_list( output_elem ) file = attrib.pop( 'file', None ) # File no longer required if an list of assertions was present. @@ -390,12 +395,17 @@ def __parse_test_attributes( output_elem, attrib ): for metadata_elem in output_elem.findall( 'metadata' ): metadata[ metadata_elem.get('name') ] = metadata_elem.get( 'value' ) md5sum = attrib.get("md5", None) - if not (assert_list or file or extra_files or metadata or md5sum): + element_tests = {} + if parse_elements: + element_tests = __parse_element_tests( output_elem ) + + if not (assert_list or file or extra_files or metadata or md5sum or element_tests): raise Exception( "Test output defines nothing to check (e.g. must have a 'file' check against, assertions to check, metadata or md5 tests, etc...)") attributes['assert_list'] = assert_list attributes['extra_files'] = extra_files attributes['metadata'] = metadata attributes['md5'] = md5sum + attributes['elements'] = element_tests return file, attributes diff --git a/lib/galaxy/webapps/galaxy/api/datasets.py b/lib/galaxy/webapps/galaxy/api/datasets.py index 8d203a7bd64..eae3004ae58 100644 --- a/lib/galaxy/webapps/galaxy/api/datasets.py +++ b/lib/galaxy/webapps/galaxy/api/datasets.py @@ -1,6 +1,8 @@ """ API operations on the contents of a history dataset. """ +from galaxy import model +from galaxy import exceptions as galaxy_exceptions from galaxy import web from galaxy.web.framework.helpers import is_true from galaxy import util @@ -25,6 +27,13 @@ class DatasetsController( BaseAPIController, UsesVisualizationMixin ): self.hda_manager = managers.hdas.HDAManager( app ) self.hda_serializer = managers.hdas.HDASerializer( self.app ) + def _parse_serialization_params( self, kwd, default_view ): + view = kwd.get( 'view', None ) + keys = kwd.get( 'keys' ) + if isinstance( keys, basestring ): + keys = keys.split( ',' ) + return dict( view=view, keys=keys, default_view=default_view ) + @web.expose_api def index( self, trans, **kwd ): """ @@ -304,3 +313,49 @@ class DatasetsController( BaseAPIController, UsesVisualizationMixin ): rval = ( "Could not get display data for dataset: " + str( exception ) ) return rval + + @web._future_expose_api_anonymous + def converted( self, trans, dataset_id, ext, **kwargs ): + """ + converted( self, trans, dataset_id, ext, **kwargs ) + * GET /api/datasets/{dataset_id}/converted/{ext} + return information about datasets made by converting this dataset + to a new format + + :type dataset_id: str + :param dataset_id: the encoded id of the original HDA to check + :type ext: str + :param ext: file extension of the target format or None. + + If there is no existing converted dataset for the format in `ext`, + one will be created. + + If `ext` is None, a dictionary will be returned of the form + { : , ... } containing all the + *existing* converted datasets. + + ..note: `view` and `keys` are also available to control the serialization + of individual datasets. They have no effect when `ext` is None. + + :rtype: dict + :returns: dictionary containing detailed HDA information + or (if `ext` is None) an extension->dataset_id map + """ + decoded_id = self.decode_id( dataset_id ) + hda = self.hda_manager.get_accessible( decoded_id, trans.user ) + if ext: + converted = self._get_or_create_converted( trans, hda, ext, **kwargs ) + return self.hda_serializer.serialize_to_view( converted, + user=trans.user, trans=trans, **self._parse_serialization_params( kwargs, 'detailed' ) ) + + return self.hda_serializer.serialize_converted_datasets( hda, 'converted' ) + + def _get_or_create_converted( self, trans, original, target_ext, **kwargs ): + try: + original.get_converted_dataset( trans, target_ext ) + converted = original.get_converted_files_by_type( target_ext ) + return converted + + except model.NoConverterException: + exc_data = dict( source=original.ext, target=target_ext, available=original.get_converter_types().keys() ) + raise galaxy_exceptions.RequestParameterInvalidException( 'Conversion not possible', **exc_data ) diff --git a/lib/galaxy/webapps/galaxy/api/histories.py b/lib/galaxy/webapps/galaxy/api/histories.py index 750d78b6cf6..ba693db5773 100644 --- a/lib/galaxy/webapps/galaxy/api/histories.py +++ b/lib/galaxy/webapps/galaxy/api/histories.py @@ -8,7 +8,7 @@ import pkg_resources pkg_resources.require( "Paste" ) pkg_resources.require( "SQLAlchemy >= 0.4" ) -from sqlalchemy import true, false, desc +from sqlalchemy import true, false, desc, asc from galaxy import exceptions from galaxy.web import _future_expose_api as expose_api @@ -90,6 +90,23 @@ class HistoriesController( BaseAPIController, ExportsHistoryMixin, ImportsHistor skip the first ( offset - 1 ) items and begin returning at the Nth item + The list returned can be ordered using the optional parameter: + order: string containing one of the valid ordering attributes followed + (optionally) by '-asc' or '-dsc' for ascending and descending + order respectively. Orders can be stacked as a comma- + separated list of values. + + ..example: + To sort by name descending then create time descending: + '?order=name-dsc,create_time' + + The ordering attributes and their default orders are: + create_time defaults to 'create_time-dsc' + update_time defaults to 'update_time-dsc' + name defaults to 'name-asc' + + 'order' defaults to 'create_time-dsc' + ..example: limit and offset can be combined. Skip the first two and return five: '?limit=5&offset=3' @@ -116,8 +133,7 @@ class HistoriesController( BaseAPIController, ExportsHistoryMixin, ImportsHistor # and any sent in from the query string filters += self.history_filters.parse_filters( filter_params ) - # TODO: eventually make order_by a param as well - order_by = desc( self.app.model.History.create_time ) + order_by = self._parse_order_by( kwd.get( 'order', 'create_time-dsc' ) ) histories = self.history_manager.list( filters=filters, order_by=order_by, limit=limit, offset=offset ) rval = [] @@ -402,3 +418,27 @@ class HistoriesController( BaseAPIController, ExportsHistoryMixin, ImportsHistor raise exceptions.MessageException( "Export not available or not yet ready." ) return self.serve_ready_history_export( trans, jeha ) + + def _parse_order_by( self, order_by_string ): + ORDER_BY_SEP_CHAR = ',' + if ORDER_BY_SEP_CHAR in order_by_string: + return [ self._parse_single_order_by( o ) for o in order_by_string.split( ORDER_BY_SEP_CHAR ) ] + return self._parse_single_order_by( order_by_string ) + + def _parse_single_order_by( self, order_by_string ): + History = self.history_manager.model_class + # TODO: formalize and generalize into managers + if order_by_string in ( 'create_time', 'create_time-dsc' ): + return desc( History.create_time ) + if order_by_string == 'create_time-asc': + return asc( History.create_time ) + if order_by_string in ( 'update_time', 'update_time-dsc' ): + return desc( History.update_time ) + if order_by_string == 'update_time-asc': + return asc( History.update_time ) + if order_by_string in ( 'name', 'name-asc' ): + return asc( History.name ) + if order_by_string == 'name-dsc': + return desc( History.name ) + raise exceptions.RequestParameterInvalidException( 'Unkown order_by', + controller='history', order_by=order_by_string ) diff --git a/lib/galaxy/webapps/galaxy/api/workflows.py b/lib/galaxy/webapps/galaxy/api/workflows.py index 9271ebe7479..e83528bfbc2 100644 --- a/lib/galaxy/webapps/galaxy/api/workflows.py +++ b/lib/galaxy/webapps/galaxy/api/workflows.py @@ -472,7 +472,7 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn @expose_api def show_invocation(self, trans, workflow_id, invocation_id, **kwd): """ - GET /api/workflows/{workflow_id}/invocation/{invocation_id} + GET /api/workflows/{workflow_id}/invocations/{invocation_id} Get detailed description of workflow invocation :param workflow_id: the workflow id (required) @@ -492,7 +492,7 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn @expose_api def cancel_invocation(self, trans, workflow_id, invocation_id, **kwd): """ - DELETE /api/workflows/{workflow_id}/invocation/{invocation_id} + DELETE /api/workflows/{workflow_id}/invocations/{invocation_id} Cancel the specified workflow invocation. :param workflow_id: the workflow id (required) @@ -510,7 +510,7 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn @expose_api def invocation_step(self, trans, workflow_id, invocation_id, step_id, **kwd): """ - GET /api/workflows/{workflow_id}/invocation/{invocation_id}/steps/{step_id} + GET /api/workflows/{workflow_id}/invocations/{invocation_id}/steps/{step_id} :param workflow_id: the workflow id (required) :type workflow_id: str @@ -536,7 +536,7 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn @expose_api def update_invocation_step(self, trans, workflow_id, invocation_id, step_id, payload, **kwd): """ - PUT /api/workflows/{workflow_id}/invocation/{invocation_id}/steps/{step_id} + PUT /api/workflows/{workflow_id}/invocations/{invocation_id}/steps/{step_id} Update state of running workflow step invocation - still very nebulous but this would be for stuff like confirming paused steps can proceed etc.... diff --git a/lib/galaxy/webapps/galaxy/buildapp.py b/lib/galaxy/webapps/galaxy/buildapp.py index 21215c87b78..c572569012b 100644 --- a/lib/galaxy/webapps/galaxy/buildapp.py +++ b/lib/galaxy/webapps/galaxy/buildapp.py @@ -320,6 +320,10 @@ def populate_api_routes( webapp, app ): action='import_shared_workflow_deprecated', conditions=dict( method=['POST'] ) ) + # route for creating/getting converted datasets + webapp.mapper.connect( '/api/datasets/:dataset_id/converted', controller='datasets', action='converted', ext=None ) + webapp.mapper.connect( '/api/datasets/:dataset_id/converted/:ext', controller='datasets', action='converted' ) + # API refers to usages and invocations - these mean the same thing but the # usage routes should be considered deprecated. invoke_names = { diff --git a/lib/galaxy/webapps/galaxy/controllers/history.py b/lib/galaxy/webapps/galaxy/controllers/history.py index 17c568d74a3..f563e14ea35 100644 --- a/lib/galaxy/webapps/galaxy/controllers/history.py +++ b/lib/galaxy/webapps/galaxy/controllers/history.py @@ -14,10 +14,9 @@ from galaxy import managers from galaxy import model from galaxy import util from galaxy import web -from galaxy.datatypes.data import nice_size from galaxy.model.item_attrs import UsesAnnotations from galaxy.model.item_attrs import UsesItemRatings -from galaxy.util import Params +from galaxy.util import nice_size, Params from galaxy.util.odict import odict from galaxy.util.sanitize_html import sanitize_html from galaxy.web import url_for @@ -583,15 +582,17 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI unencoded_history_id = trans.history.id if id: unencoded_history_id = self.decode_id( id ) - history_to_view = self.history_manager.get_accessible( unencoded_history_id, trans.user, current_history=trans.history ) + history_to_view = self.history_manager.get_accessible( unencoded_history_id, trans.user, + current_history=trans.history ) - history_data = self.history_manager._get_history_data( trans, history_to_view ) - history_dictionary = history_data[ 'history' ] - hda_dictionaries = history_data[ 'contents' ] + history_dictionary = self.history_serializer.serialize_to_view( history_to_view, + view='detailed', user=trans.user, trans=trans ) + contents = self.history_serializer.serialize_contents( history_to_view, + 'contents', trans=trans, user=trans.user ) jobs = ( trans.sa_session.query( trans.app.model.Job ) - .filter( trans.app.model.Job.user == history_to_view.user ) - .filter( trans.app.model.Job.history_id == unencoded_history_id ) ).all() + .filter( trans.app.model.Job.user == history_to_view.user ) + .filter( trans.app.model.Job.history_id == unencoded_history_id ) ).all() jobs = map( lambda j: self.encode_all_ids( trans, j.to_dict( 'element' ), True ), jobs ) tools = {} @@ -604,7 +605,7 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI tools[ tool_id ] = tool.to_dict( trans, io_details=True, link_details=True ) return trans.fill_template( "history/structure.mako", historyId=history_dictionary[ 'id' ], - history=history_dictionary, hdas=hda_dictionaries, jobs=jobs, tools=tools, **kwargs ) + history=history_dictionary, contents=contents, jobs=jobs, tools=tools, **kwargs ) @web.expose def view( self, trans, id=None, show_deleted=False, show_hidden=False, use_panels=True ): @@ -616,7 +617,7 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI use_panels = galaxy.util.string_as_bool( use_panels ) history_dictionary = {} - hda_dictionaries = [] + contents = [] user_is_owner = False try: if id: @@ -630,9 +631,10 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI history_is_current = True # include all datasets: hidden, deleted, and purged - history_data = self.history_manager._get_history_data( trans, history_to_view ) - history_dictionary = history_data[ 'history' ] - hda_dictionaries = history_data[ 'contents' ] + history_dictionary = self.history_serializer.serialize_to_view( history_to_view, + view='detailed', user=trans.user, trans=trans ) + contents = self.history_serializer.serialize_contents( history_to_view, + 'contents', trans=trans, user=trans.user ) except Exception, exc: user_id = str( trans.user.id ) if trans.user else '(anonymous)' @@ -645,7 +647,7 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI return trans.show_error_message( error_msg, use_panels=use_panels ) return trans.fill_template_mako( "history/view.mako", - history=history_dictionary, hdas=hda_dictionaries, + history=history_dictionary, contents=contents, user_is_owner=user_is_owner, history_is_current=history_is_current, show_deleted=show_deleted, show_hidden=show_hidden, use_panels=use_panels ) @@ -708,19 +710,19 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI # create ownership flag for template, dictify models user_is_owner = trans.user == history.user - history_data = self.history_manager._get_history_data( trans, history ) - history_dict = history_data[ 'history' ] - hda_dicts = history_data[ 'contents' ] + history_dictionary = self.history_serializer.serialize_to_view( history, + view='detailed', user=trans.user, trans=trans ) + contents = self.history_serializer.serialize_contents( history, 'contents', trans=trans, user=trans.user ) - history_dict[ 'annotation' ] = self.get_item_annotation_str( trans.sa_session, history.user, history ) + history_dictionary[ 'annotation' ] = self.get_item_annotation_str( trans.sa_session, history.user, history ) # note: adding original annotation since this is published - get_dict returns user-based annos # for hda_dict in hda_dicts: # hda_dict[ 'annotation' ] = hda.annotation # dataset.annotation = self.get_item_annotation_str( trans.sa_session, history.user, dataset ) return trans.stream_template_mako( "history/display.mako", item=history, item_data=[], - user_is_owner=user_is_owner, history_dict=history_dict, hda_dicts=hda_dicts, - user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings ) + user_is_owner=user_is_owner, history_dict=history_dictionary, content_dicts=contents, + user_item_rating=user_item_rating, ave_item_rating=ave_item_rating, num_ratings=num_ratings ) # ......................................................................... sharing & publishing @web.expose diff --git a/lib/galaxy/webapps/galaxy/controllers/page.py b/lib/galaxy/webapps/galaxy/controllers/page.py index a99aeba6472..43050a8b4cf 100644 --- a/lib/galaxy/webapps/galaxy/controllers/page.py +++ b/lib/galaxy/webapps/galaxy/controllers/page.py @@ -302,6 +302,7 @@ class PageController( BaseUIController, SharableMixin, def __init__( self, app ): super( PageController, self ).__init__( app ) self.history_manager = managers.histories.HistoryManager( app ) + self.history_serializer = managers.histories.HistorySerializer( self.app ) self.hda_manager = managers.hdas.HDAManager( app ) @web.expose @@ -755,15 +756,16 @@ class PageController( BaseUIController, SharableMixin, history.annotation = self.get_item_annotation_str( trans.sa_session, history.user, history ) # include all datasets: hidden, deleted, and purged - history_data = self.history_manager._get_history_data( trans, history ) - history_dictionary = history_data[ 'history' ] - hda_dictionaries = history_data[ 'contents' ] + history_dictionary = self.history_serializer.serialize_to_view( history, + view='detailed', user=trans.user, trans=trans ) + contents = self.history_serializer.serialize_contents( history, 'contents', trans=trans, user=trans.user ) history_dictionary[ 'annotation' ] = history.annotation - filled = trans.fill_template( "history/embed.mako", item=history, - user_is_owner=user_is_owner, - history_dict=history_dictionary, - hda_dicts=hda_dictionaries ) + filled = trans.fill_template( "history/embed.mako", + item=history, + user_is_owner=user_is_owner, + history_dict=history_dictionary, + content_dicts=contents ) return filled def _get_embedded_visualization_html( self, trans, id ): diff --git a/lib/galaxy/webapps/galaxy/controllers/root.py b/lib/galaxy/webapps/galaxy/controllers/root.py index ba3dbecef7d..00139f35554 100644 --- a/lib/galaxy/webapps/galaxy/controllers/root.py +++ b/lib/galaxy/webapps/galaxy/controllers/root.py @@ -26,6 +26,7 @@ class RootController( BaseUIController, UsesAnnotations ): def __init__( self, app ): super( RootController, self ).__init__( app ) self.history_manager = managers.histories.HistoryManager( app ) + self.history_serializer = managers.histories.HistorySerializer( self.app ) @web.expose def default(self, trans, target1=None, target2=None, **kwd): diff --git a/lib/galaxy/webapps/reports/controllers/jobs.py b/lib/galaxy/webapps/reports/controllers/jobs.py index 092f8563e43..b8d6e2a1929 100644 --- a/lib/galaxy/webapps/reports/controllers/jobs.py +++ b/lib/galaxy/webapps/reports/controllers/jobs.py @@ -1,3 +1,4 @@ +from __future__ import print_function import calendar import logging from collections import namedtuple @@ -11,7 +12,8 @@ from sqlalchemy import and_, not_, or_ from galaxy import model, util from galaxy.web.base.controller import BaseUIController, web from galaxy.web.framework.helpers import grids -from math import ceil +import re +from math import ceil, floor from galaxy.webapps.reports.controllers.query import ReportQueryBuilder log = logging.getLogger( __name__ ) @@ -53,6 +55,24 @@ def sorter(default_sort_id, kwd): return SortSpec(sort_id, order, arrow, _order) +def get_spark_time( time_period ): + _time_period = 0 + + if time_period == "days": + _time_period = 1.0 + elif time_period == "weeks": + _time_period = 7.0 + elif time_period == "months": + _time_period = 30.0 + elif time_period == "years": + _time_period = 365.0 + else: + time_period = "days" + _time_period = 1.0 + + return time_period, _time_period + + class SpecifiedDateListGrid( grids.Grid ): class JobIdColumn( grids.IntegerColumn ): @@ -258,6 +278,8 @@ class Jobs( BaseUIController, ReportQueryBuilder ): params = util.Params( kwd ) monitor_email = params.get( 'monitor_email', 'monitor@bx.psu.edu' ) specs = sorter( 'date', kwd ) + offset = 0 + limit = 10 sort_id = specs.sort_id order = specs.order arrow = specs.arrow @@ -266,7 +288,7 @@ class Jobs( BaseUIController, ReportQueryBuilder ): if "entries" in kwd: entries = int(kwd.get( 'entries' )) else: - entries = 50 + entries = 25 limit = entries * 4 if "offset" in kwd: @@ -285,12 +307,14 @@ class Jobs( BaseUIController, ReportQueryBuilder ): # If specified_date is not received, we'll default to the current month specified_date = kwd.get( 'specified_date', datetime.utcnow().strftime( "%Y-%m-%d" ) ) specified_month = specified_date[ :7 ] + year, month = map( int, specified_month.split( "-" ) ) start_date = date( year, month, 1 ) end_date = start_date + timedelta( days=calendar.monthrange( year, month )[1] ) month_label = start_date.strftime( "%B" ) year_label = start_date.strftime( "%Y" ) + # Use to make the page table month_jobs = sa.select( ( sa.func.date( model.Job.table.c.create_time ).label( 'date' ), sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ), whereclause=sa.and_( model.Job.table.c.user_id != monitor_user_id, @@ -302,16 +326,37 @@ class Jobs( BaseUIController, ReportQueryBuilder ): offset=offset, limit=limit) + # Use to make trendline + all_jobs = sa.select( ( model.Job.table.c.create_time.label('date'), model.Job.table.c.id.label('id') ), + whereclause=sa.and_( model.Job.table.c.user_id != monitor_user_id, + model.Job.table.c.create_time >= start_date, + model.Job.table.c.create_time < end_date ) ) + + trends = dict() + for job in all_jobs.execute(): + job_hour = int(job.date.strftime("%-H")) + job_day = job.date.strftime("%d") + + try: + trends[job_day][job_hour] += 1 + except KeyError: + trends[job_day] = [0] * 24 + trends[job_day][job_hour] += 1 + jobs = [] for row in month_jobs.execute(): - jobs.append( ( row.date.strftime( "%A" ), - row.date.strftime( "%d" ), + row_dayname = row.date.strftime("%A") + row_day = row.date.strftime("%d") + + jobs.append( ( row_dayname, + row_day, row.total_jobs, row.date ) ) pages_found = ceil(len(jobs) / float(entries)) page_specs = PageSpec(entries, offset, page, pages_found) + return trans.fill_template( '/webapps/reports/jobs_specified_month_all.mako', order=order, arrow=arrow, @@ -321,6 +366,7 @@ class Jobs( BaseUIController, ReportQueryBuilder ): month=month, page_specs=page_specs, jobs=jobs, + trends=trends, is_user_jobs_only=monitor_user_id, message=message ) @@ -360,12 +406,35 @@ class Jobs( BaseUIController, ReportQueryBuilder ): group_by=[ 'date' ], order_by=[ _order ] ) + # Use to make trendline + all_jobs_in_error = sa.select( ( model.Job.table.c.create_time.label('date'), model.Job.table.c.id.label('id') ), + whereclause=sa.and_( model.Job.table.c.user_id != monitor_user_id, + model.Job.table.c.state == 'error', + model.Job.table.c.create_time >= start_date, + model.Job.table.c.create_time < end_date ) ) + + trends = dict() + for job in all_jobs_in_error.execute(): + job_hour = int(job.date.strftime("%-H")) + job_day = job.date.strftime("%d") + + try: + trends[job_day][job_hour] += 1 + except KeyError: + trends[job_day] = [0] * 24 + trends[job_day][job_hour] += 1 + jobs = [] for row in month_jobs_in_error.execute(): - jobs.append( ( row.date.strftime( "%A" ), - row.date, + row_dayname = row.date.strftime("%A") + row_day = row.date.strftime("%d") + + jobs.append( ( row_dayname, + row_day, row.total_jobs, - row.date.strftime( "%d" ) ) ) + row.date + ) ) + return trans.fill_template( '/webapps/reports/jobs_specified_month_in_error.mako', order=order, arrow=arrow, @@ -374,6 +443,7 @@ class Jobs( BaseUIController, ReportQueryBuilder ): year_label=year_label, month=month, jobs=jobs, + trends=trends, message=message, is_user_jobs_only=monitor_user_id ) @@ -395,26 +465,51 @@ class Jobs( BaseUIController, ReportQueryBuilder ): # In case we don't know which is the monitor user we will query for all jobs monitor_user_id = get_monitor_id( trans, monitor_email ) + # Use to make the page table jobs_by_month = sa.select( ( self.select_month( model.Job.table.c.create_time ).label( 'date' ), - sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ), + sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ), whereclause=model.Job.table.c.user_id != monitor_user_id, from_obj=[ model.Job.table ], group_by=self.group_by_month( model.Job.table.c.create_time ), order_by=[ _order ] ) + # Use to make sparkline + all_jobs = sa.select( ( self.select_day(model.Job.table.c.create_time).label('date'), + model.Job.table.c.id.label('id') ) ) + + trends = dict() + for job in all_jobs.execute(): + job_day = int(job.date.strftime("%-d")) - 1 + job_month = int(job.date.strftime("%-m")) + job_month_name = job.date.strftime("%B") + job_year = job.date.strftime("%Y") + key = str( job_month_name + job_year) + + try: + trends[key][job_day] += 1 + except KeyError: + job_year = int(job_year) + wday, day_range = calendar.monthrange(job_year, job_month) + trends[key] = [0] * day_range + trends[key][job_day] += 1 + jobs = [] for row in jobs_by_month.execute(): + month_name = row.date.strftime("%B") + year = int(row.date.strftime("%Y")) + jobs.append( ( row.date.strftime( "%Y-%m" ), row.total_jobs, - row.date.strftime( "%B" ), - row.date.strftime( "%y" ) + month_name, + year ) ) return trans.fill_template( '/webapps/reports/jobs_per_month_all.mako', order=order, arrow=arrow, sort_id=sort_id, + trends=trends, jobs=jobs, is_user_jobs_only=monitor_user_id, message=message ) @@ -437,6 +532,7 @@ class Jobs( BaseUIController, ReportQueryBuilder ): # In case we don't know which is the monitor user we will query for all jobs monitor_user_id = get_monitor_id( trans, monitor_email ) + # Use to make the page table jobs_in_error_by_month = sa.select( ( self.select_month( model.Job.table.c.create_time ).label( 'date' ), sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ), whereclause=sa.and_( model.Job.table.c.state == 'error', @@ -445,16 +541,46 @@ class Jobs( BaseUIController, ReportQueryBuilder ): group_by=self.group_by_month( model.Job.table.c.create_time ), order_by=[ _order ] ) + # Use to make trendline + all_jobs = sa.select( ( self.select_day(model.Job.table.c.create_time).label('date'), + model.Job.table.c.id.label('id') ), + whereclause=sa.and_( model.Job.table.c.state == 'error', + model.Job.table.c.user_id != monitor_user_id ) ) + + trends = dict() + for job in all_jobs.execute(): + job_day = int(job.date.strftime("%-d")) - 1 + job_month = int(job.date.strftime("%-m")) + job_month_name = job.date.strftime("%B") + job_year = job.date.strftime("%Y") + key = str( job_month_name + job_year) + + try: + trends[key][job_day] += 1 + except KeyError: + job_year = int(job_year) + wday, day_range = calendar.monthrange(job_year, job_month) + trends[key] = [0] * day_range + trends[key][job_day] += 1 + jobs = [] for row in jobs_in_error_by_month.execute(): - jobs.append( ( row.date.strftime( "%Y-%m" ), - row.total_jobs, - row.date.strftime( "%B" ), - row.date.strftime( "%y" ) ) ) + month = int(row.date.strftime("%-m")) + month_name = row.date.strftime("%B") + year = int(row.date.strftime("%Y")) + wday, day_range = calendar.monthrange(year, month) + + jobs.append( ( + row.date.strftime( "%Y-%m" ), + row.total_jobs, + month_name, + year + ) ) return trans.fill_template( '/webapps/reports/jobs_per_month_in_error.mako', order=order, arrow=arrow, sort_id=sort_id, + trends=trends, jobs=jobs, message=message, is_user_jobs_only=monitor_user_id ) @@ -469,6 +595,9 @@ class Jobs( BaseUIController, ReportQueryBuilder ): order = specs.order arrow = specs.arrow _order = specs.exc_order + time_period = kwd.get('spark_time') + time_period, _time_period = get_spark_time( time_period ) + limit = 30 jobs = [] jobs_per_user = sa.select( ( model.User.table.c.email.label( 'user_email' ), @@ -476,6 +605,36 @@ class Jobs( BaseUIController, ReportQueryBuilder ): from_obj=[ sa.outerjoin( model.Job.table, model.User.table ) ], group_by=[ 'user_email' ], order_by=[ _order ] ) + + all_jobs_per_user = sa.select( ( model.Job.table.c.id.label( 'id' ), + model.Job.table.c.create_time.label( 'date' ), + model.User.table.c.email.label( 'user_email' ) ), + from_obj=[ sa.outerjoin( model.Job.table, model.User.table ) ] ) + + currday = datetime.today() + trends = dict() + for job in all_jobs_per_user.execute(): + if job.user_email is None: + curr_user = 'Anonymous' + else: + curr_user = re.sub(r'\W+', '', job.user_email) + + try: + day = currday - job.date + except TypeError: + day = currday - datetime.date(job.date) + + day = day.days + container = floor(day / _time_period) + container = int(container) + try: + if container < limit: + trends[curr_user][container] += 1 + except KeyError: + trends[curr_user] = [0] * limit + if container < limit: + trends[curr_user][container] += 1 + for row in jobs_per_user.execute(): if ( row.user_email is None ): jobs.append( ( 'Anonymous', @@ -485,10 +644,14 @@ class Jobs( BaseUIController, ReportQueryBuilder ): else: jobs.append( ( row.user_email, row.total_jobs ) ) + return trans.fill_template( '/webapps/reports/jobs_per_user.mako', order=order, arrow=arrow, sort_id=sort_id, + limit=limit, + time_period=time_period, + trends=trends, jobs=jobs, message=message ) @@ -503,14 +666,35 @@ class Jobs( BaseUIController, ReportQueryBuilder ): order = specs.order arrow = specs.arrow _order = specs.exc_order + q = sa.select( ( self.select_month( model.Job.table.c.create_time ).label( 'date' ), sa.func.count( model.Job.table.c.id ).label( 'total_jobs' ) ), - whereclause=sa.and_( model.Job.table.c.session_id == model.GalaxySession.table.c.id, - model.GalaxySession.table.c.user_id == model.User.table.c.id, - model.User.table.c.email == email ), + whereclause=model.User.table.c.email == email, from_obj=[ sa.join( model.Job.table, model.User.table ) ], group_by=self.group_by_month( model.Job.table.c.create_time ), order_by=[ _order ] ) + + all_jobs_per_user = sa.select( ( model.Job.table.c.create_time.label( 'date' ), + model.Job.table.c.id.label( 'job_id' ) ), + whereclause=sa.and_( model.User.table.c.email == email ), + from_obj=[ sa.join( model.Job.table, model.User.table ) ] ) + + trends = dict() + for job in all_jobs_per_user.execute(): + job_day = int(job.date.strftime("%-d")) - 1 + job_month = int(job.date.strftime("%-m")) + job_month_name = job.date.strftime("%B") + job_year = job.date.strftime("%Y") + key = str( job_month_name + job_year) + + try: + trends[key][job_day] += 1 + except KeyError: + job_year = int(job_year) + wday, day_range = calendar.monthrange(job_year, job_month) + trends[key] = [0] * day_range + trends[key][job_day] += 1 + jobs = [] for row in q.execute(): jobs.append( ( row.date.strftime( "%Y-%m" ), @@ -522,6 +706,7 @@ class Jobs( BaseUIController, ReportQueryBuilder ): arrow=arrow, sort_id=sort_id, id=kwd.get('id'), + trends=trends, email=util.sanitize_text( email ), jobs=jobs, message=message ) @@ -536,6 +721,10 @@ class Jobs( BaseUIController, ReportQueryBuilder ): order = specs.order arrow = specs.arrow _order = specs.exc_order + time_period = kwd.get('spark_time') + time_period, _time_period = get_spark_time( time_period ) + limit = 30 + # In case we don't know which is the monitor user we will query for all jobs monitor_user_id = get_monitor_id( trans, monitor_email ) @@ -546,13 +735,44 @@ class Jobs( BaseUIController, ReportQueryBuilder ): from_obj=[ model.Job.table ], group_by=[ 'tool_id' ], order_by=[ _order ] ) + + all_jobs_per_tool = sa.select( ( model.Job.table.c.tool_id.label( 'tool_id' ), + model.Job.table.c.id.label( 'id' ), + self.select_day( model.Job.table.c.create_time ).label( 'date' ) ), + whereclause=model.Job.table.c.user_id != monitor_user_id, + from_obj=[ model.Job.table ] ) + + currday = date.today() + trends = dict() + for job in all_jobs_per_tool.execute(): + curr_tool = re.sub(r'\W+', '', str(job.tool_id)) + try: + day = currday - job.date + except TypeError: + day = currday - datetime.date(job.date) + + day = day.days + container = floor(day / _time_period) + container = int(container) + try: + if container < limit: + trends[curr_tool][container] += 1 + except KeyError: + trends[curr_tool] = [0] * limit + if container < limit: + trends[curr_tool][container] += 1 + for row in q.execute(): jobs.append( ( row.tool_id, row.total_jobs ) ) + return trans.fill_template( '/webapps/reports/jobs_per_tool.mako', order=order, arrow=arrow, sort_id=sort_id, + limit=limit, + time_period=time_period, + trends=trends, jobs=jobs, message=message, is_user_jobs_only=monitor_user_id) @@ -571,6 +791,10 @@ class Jobs( BaseUIController, ReportQueryBuilder ): order = specs.order arrow = specs.arrow _order = specs.exc_order + time_period = kwd.get('spark_time') + time_period, _time_period = get_spark_time( time_period ) + limit = 30 + # In case we don't know which is the monitor user we will query for all jobs monitor_user_id = get_monitor_id( trans, monitor_email ) @@ -581,6 +805,35 @@ class Jobs( BaseUIController, ReportQueryBuilder ): from_obj=[ model.Job.table ], group_by=[ 'tool_id' ], order_by=[ _order ] ) + + all_jobs_per_tool_errors = sa.select( ( self.select_day( model.Job.table.c.create_time ).label( 'date' ), + model.Job.table.c.id.label( 'id' ), + model.Job.table.c.tool_id.label( 'tool_id' ) ), + whereclause=sa.and_( model.Job.table.c.state == 'error', + model.Job.table.c.user_id != monitor_user_id ), + from_obj=[ model.Job.table ] + ) + + currday = date.today() + trends = dict() + for job in all_jobs_per_tool_errors.execute(): + curr_tool = re.sub(r'\W+', '', str(job.tool_id)) + try: + day = currday - job.date + except TypeError: + day = currday - datetime.date(job.date) + + # convert day into days/weeks/months/years + day = day.days + container = floor(day / _time_period) + container = int(container) + try: + if container < limit: + trends[curr_tool][container] += 1 + except KeyError: + trends[curr_tool] = [0] * limit + if day < limit: + trends[curr_tool][container] += 1 jobs = [] for row in jobs_in_error_per_tool.execute(): jobs.append( ( row.total_jobs, row.tool_id ) ) @@ -588,6 +841,9 @@ class Jobs( BaseUIController, ReportQueryBuilder ): order=order, arrow=arrow, sort_id=sort_id, + limit=limit, + time_period=time_period, + trends=trends, jobs=jobs, message=message, is_user_jobs_only=monitor_user_id ) @@ -615,6 +871,30 @@ class Jobs( BaseUIController, ReportQueryBuilder ): from_obj=[ model.Job.table ], group_by=self.group_by_month( model.Job.table.c.create_time ), order_by=[ _order ] ) + + # Use to make sparkline + all_jobs_for_tool = sa.select( ( self.select_month(model.Job.table.c.create_time).label('month'), + self.select_day(model.Job.table.c.create_time).label('day'), + model.Job.table.c.id.label('id') ), + whereclause=sa.and_( model.Job.table.c.tool_id == tool_id, + model.Job.table.c.user_id != monitor_user_id ), + from_obj=[ model.Job.table ] ) + trends = dict() + for job in all_jobs_for_tool.execute(): + job_day = int(job.day.strftime("%-d")) - 1 + job_month = int(job.month.strftime("%-m")) + job_month_name = job.month.strftime("%B") + job_year = job.month.strftime("%Y") + key = str( job_month_name + job_year) + + try: + trends[key][job_day] += 1 + except KeyError: + job_year = int(job_year) + wday, day_range = calendar.monthrange(job_year, job_month) + trends[key] = [0] * day_range + trends[key][job_day] += 1 + jobs = [] for row in q.execute(): jobs.append( ( row.date.strftime( "%Y-%m" ), @@ -627,6 +907,7 @@ class Jobs( BaseUIController, ReportQueryBuilder ): sort_id=sort_id, specified_date=specified_date, tool_id=tool_id, + trends=trends, jobs=jobs, message=message, is_user_jobs_only=monitor_user_id ) diff --git a/lib/galaxy/webapps/reports/controllers/workflows.py b/lib/galaxy/webapps/reports/controllers/workflows.py index cad3eefc9fd..4fdc9f92aca 100644 --- a/lib/galaxy/webapps/reports/controllers/workflows.py +++ b/lib/galaxy/webapps/reports/controllers/workflows.py @@ -1,17 +1,19 @@ import calendar +from datetime import datetime, date, timedelta import logging -from datetime import date, timedelta - from galaxy import eggs eggs.require( "SQLAlchemy >= 0.4" ) import sqlalchemy as sa from sqlalchemy import and_ from galaxy import model, util +from math import floor from galaxy.web.base.controller import BaseUIController, web from galaxy.web.framework.helpers import grids +eggs.require( "SQLAlchemy >= 0.4" ) +import re from galaxy.webapps.reports.controllers.query import ReportQueryBuilder -from galaxy.webapps.reports.controllers.jobs import sorter +from galaxy.webapps.reports.controllers.jobs import sorter, get_spark_time log = logging.getLogger( __name__ ) @@ -154,20 +156,46 @@ class Workflows( BaseUIController, ReportQueryBuilder ): order = specs.order arrow = specs.arrow _order = specs.exc_order - q = sa.select( ( self.select_month( model.StoredWorkflow.table.c.create_time ).label( 'date' ), sa.func.count( model.StoredWorkflow.table.c.id ).label( 'total_workflows' ) ), + + q = sa.select( ( self.select_month( model.StoredWorkflow.table.c.create_time ).label( 'date' ), + sa.func.count( model.StoredWorkflow.table.c.id ).label( 'total_workflows' ) ), from_obj=[ sa.outerjoin( model.StoredWorkflow.table, model.User.table ) ], group_by=self.group_by_month( model.StoredWorkflow.table.c.create_time ), order_by=[ _order ] ) + + all_workflows = sa.select( ( self.select_day( model.StoredWorkflow.table.c.create_time ).label( 'date' ), + model.StoredWorkflow.table.c.id ) ) + + trends = dict() + for workflow in all_workflows.execute(): + workflow_day = int(workflow.date.strftime("%-d")) - 1 + workflow_month = int(workflow.date.strftime("%-m")) + workflow_month_name = workflow.date.strftime("%B") + workflow_year = workflow.date.strftime("%Y") + key = str( workflow_month_name + workflow_year) + + try: + trends[key][workflow_day] += 1 + except KeyError: + workflow_year = int(workflow_year) + wday, day_range = calendar.monthrange(workflow_year, workflow_month) + trends[key] = [0] * day_range + trends[key][workflow_day] += 1 + workflows = [] for row in q.execute(): + month_name = row.date.strftime("%B") + year = int(row.date.strftime("%Y")) + workflows.append( ( row.date.strftime( "%Y-%m" ), row.total_workflows, - row.date.strftime( "%B" ), - row.date.strftime( "%Y" ) ) ) + month_name, + year ) ) return trans.fill_template( '/webapps/reports/workflows_per_month_all.mako', order=order, arrow=arrow, sort_id=sort_id, + trends=trends, workflows=workflows, message=message ) @@ -179,12 +207,42 @@ class Workflows( BaseUIController, ReportQueryBuilder ): order = specs.order arrow = specs.arrow _order = specs.exc_order + time_period = kwd.get('spark_time') + time_period, _time_period = get_spark_time( time_period ) + limit = 30 + workflows = [] q = sa.select( ( model.User.table.c.email.label( 'user_email' ), sa.func.count( model.StoredWorkflow.table.c.id ).label( 'total_workflows' ) ), from_obj=[ sa.outerjoin( model.StoredWorkflow.table, model.User.table ) ], group_by=[ 'user_email' ], order_by=[ _order ] ) + + all_workflows_per_user = sa.select( ( model.User.table.c.email.label( 'user_email' ), + self.select_day( model.StoredWorkflow.table.c.create_time ).label('date'), + model.StoredWorkflow.table.c.id ), + from_obj=[ sa.outerjoin( model.StoredWorkflow.table, + model.User.table ) ] ) + currday = datetime.today() + trends = dict() + for workflow in all_workflows_per_user.execute(): + curr_user = re.sub(r'\W+', '', workflow.user_email) + try: + day = currday - workflow.date + except TypeError: + day = datetime.date(currday) - datetime.date(workflow.date) + + day = day.days + container = floor(day / _time_period) + container = int(container) + try: + if container < limit: + trends[curr_user][container] += 1 + except KeyError: + trends[curr_user] = [0] * limit + if container < limit: + trends[curr_user][container] += 1 + for row in q.execute(): workflows.append( ( row.user_email, row.total_workflows ) ) @@ -192,6 +250,9 @@ class Workflows( BaseUIController, ReportQueryBuilder ): order=order, arrow=arrow, sort_id=sort_id, + limit=limit, + trends=trends, + time_period=time_period, workflows=workflows, message=message ) @@ -206,12 +267,35 @@ class Workflows( BaseUIController, ReportQueryBuilder ): _order = specs.exc_order email = util.restore_text( params.get( 'email', '' ) ) user_id = trans.security.decode_id( params.get( 'id', '' ) ) + q = sa.select( ( self.select_month( model.StoredWorkflow.table.c.create_time ).label( 'date' ), sa.func.count( model.StoredWorkflow.table.c.id ).label( 'total_workflows' ) ), whereclause=model.StoredWorkflow.table.c.user_id == user_id, from_obj=[ model.StoredWorkflow.table ], group_by=self.group_by_month( model.StoredWorkflow.table.c.create_time ), order_by=[ _order ] ) + + all_workflows_user_month = sa.select( ( self.select_day( model.StoredWorkflow.table.c.create_time ).label( 'date' ), + model.StoredWorkflow.table.c.id ), + whereclause=model.StoredWorkflow.table.c.user_id == user_id, + from_obj=[ model.StoredWorkflow.table ] ) + + trends = dict() + for workflow in all_workflows_user_month.execute(): + workflow_day = int(workflow.date.strftime("%-d")) - 1 + workflow_month = int(workflow.date.strftime("%-m")) + workflow_month_name = workflow.date.strftime("%B") + workflow_year = workflow.date.strftime("%Y") + key = str( workflow_month_name + workflow_year) + + try: + trends[key][workflow_day] += 1 + except KeyError: + workflow_year = int(workflow_year) + wday, day_range = calendar.monthrange(workflow_year, workflow_month) + trends[key] = [0] * day_range + trends[key][workflow_day] += 1 + workflows = [] for row in q.execute(): workflows.append( ( row.date.strftime( "%Y-%m" ), @@ -223,9 +307,77 @@ class Workflows( BaseUIController, ReportQueryBuilder ): order=order, arrow=arrow, sort_id=sort_id, + trends=trends, workflows=workflows, message=message ) + @web.expose + def per_workflow( self, trans, **kwd ): + message = '' + + specs = sorter( 'workflow_name', kwd ) + sort_id = specs.sort_id + order = specs.order + arrow = specs.arrow + _order = specs.exc_order + time_period = kwd.get('spark_time') + time_period, _time_period = get_spark_time( time_period ) + limit = 30 + + # In case we don't know which is the monitor user we will query for all jobs + + q = sa.select( ( model.Workflow.table.c.id.label( 'workflow_id' ), + sa.func.min(model.Workflow.table.c.name).label( 'workflow_name' ), + sa.func.count( model.WorkflowInvocation.table.c.id ).label( 'total_runs' ) ), + from_obj=[ model.Workflow.table, + model.WorkflowInvocation.table ], + whereclause=sa.and_( model.WorkflowInvocation.table.c.workflow_id == model.Workflow.table.c.id ), + group_by=[ model.Workflow.table.c.id ], + order_by=[ _order ] ) + + all_runs_per_workflow = sa.select( ( model.Workflow.table.c.id.label( 'workflow_id' ), + model.Workflow.table.c.name.label( 'workflow_name' ), + self.select_day( model.WorkflowInvocation.table.c.create_time ).label( 'date' ) ), + from_obj=[ model.Workflow.table, + model.WorkflowInvocation.table ], + whereclause=sa.and_( model.WorkflowInvocation.table.c.workflow_id == model.Workflow.table.c.id ) ) + + currday = date.today() + trends = dict() + for run in all_runs_per_workflow.execute(): + curr_tool = re.sub(r'\W+', '', str(run.workflow_id)) + try: + day = currday - run.date + except TypeError: + day = currday - datetime.date(run.date) + + day = day.days + container = floor(day / _time_period) + container = int(container) + try: + if container < limit: + trends[curr_tool][container] += 1 + except KeyError: + trends[curr_tool] = [0] * limit + if container < limit: + trends[curr_tool][container] += 1 + + runs = [] + for row in q.execute(): + runs.append( ( row.workflow_name, + row.total_runs, + row.workflow_id) ) + + return trans.fill_template( '/webapps/reports/workflows_per_workflow.mako', + order=order, + arrow=arrow, + sort_id=sort_id, + limit=limit, + time_period=time_period, + trends=trends, + runs=runs, + message=message) + # ---- Utility methods ------------------------------------------------------- diff --git a/lib/galaxy/webapps/tool_shed/search/tool_search.py b/lib/galaxy/webapps/tool_shed/search/tool_search.py index d4a15c8147e..9dab056b322 100644 --- a/lib/galaxy/webapps/tool_shed/search/tool_search.py +++ b/lib/galaxy/webapps/tool_shed/search/tool_search.py @@ -73,7 +73,7 @@ class ToolSearch( object ): results[ 'hits' ] = [] for hit in hits: hit_dict = {} - hit_dict[ 'id' ] = trans.security.encode_id( hit.get( 'id' ) ) + hit_dict[ 'id' ] = hit.get( 'id' ) hit_dict[ 'repo_owner_username' ] = hit.get( 'repo_owner_username' ) hit_dict[ 'repo_name' ] = hit.get( 'repo_name' ) hit_dict[ 'name' ] = hit.get( 'name' ) diff --git a/lib/tool_shed/galaxy_install/install_manager.py b/lib/tool_shed/galaxy_install/install_manager.py index c8bdd8a201c..af6d451bf39 100644 --- a/lib/tool_shed/galaxy_install/install_manager.py +++ b/lib/tool_shed/galaxy_install/install_manager.py @@ -57,7 +57,7 @@ class InstallToolDependencyManager( object ): def get_tool_shed_repository_install_dir( self, tool_shed_repository ): return os.path.abspath( tool_shed_repository.repo_files_directory( self.app ) ) - def install_and_build_package( self, tool_shed_repository, tool_dependency, actions_dict ): + def install_and_build_package( self, install_environment, tool_shed_repository, tool_dependency, actions_dict ): """Install a Galaxy tool dependency package either via a url or a mercurial or git clone command.""" tool_shed_repository_install_dir = self.get_tool_shed_repository_install_dir( tool_shed_repository ) install_dir = actions_dict[ 'install_dir' ] @@ -65,12 +65,9 @@ class InstallToolDependencyManager( object ): actions = actions_dict.get( 'actions', None ) filtered_actions = [] env_file_builder = EnvFileBuilder( install_dir ) - install_environment = InstallEnvironment( app=self.app, - tool_shed_repository_install_dir=tool_shed_repository_install_dir, - install_dir=install_dir ) step_manager = StepManager( self.app ) if actions: - with install_environment.make_tmp_dir() as work_dir: + with install_environment.use_tmp_dir() as work_dir: with lcd( work_dir ): # The first action in the list of actions will be the one that defines the initial download process. # There are currently three supported actions; download_binary, download_by_url and clone via a @@ -133,10 +130,10 @@ class InstallToolDependencyManager( object ): dir = tmp_dir return tool_dependency - def install_and_build_package_via_fabric( self, tool_shed_repository, tool_dependency, actions_dict ): + def install_and_build_package_via_fabric( self, install_environment, tool_shed_repository, tool_dependency, actions_dict ): try: # There is currently only one fabric method. - tool_dependency = self.install_and_build_package( tool_shed_repository, tool_dependency, actions_dict ) + tool_dependency = self.install_and_build_package( install_environment, tool_shed_repository, tool_dependency, actions_dict ) except Exception, e: log.exception( 'Error installing tool dependency %s version %s.', str( tool_dependency.name ), str( tool_dependency.version ) ) # Since there was an installation error, update the tool dependency status to Error. The remove_installation_path option must @@ -284,7 +281,10 @@ class InstallToolDependencyManager( object ): # TODO: this is not yet supported or functional, but when it is handle it using the fabric api. raise Exception( 'Tool dependency installation using proprietary fabric scripts is not yet supported.' ) else: - tool_dependency = self.install_and_build_package_via_fabric( tool_shed_repository, tool_dependency, actions_dict ) + tool_dependency = self.install_and_build_package_via_fabric( install_environment, + tool_shed_repository, + tool_dependency, + actions_dict ) return tool_dependency def install_package( self, elem, tool_shed_repository, tool_dependencies=None, from_tool_migration_manager=False ): @@ -391,6 +391,8 @@ class InstallToolDependencyManager( object ): # tag set that defines the recipe to install and compile from source. log.debug( 'Proceeding with install and compile recipe for tool dependency %s.' % str( tool_dependency.name ) ) + # Reset above error to installing + tool_dependency.status = self.install_model.ToolDependency.installation_status.INSTALLING tool_dependency = self.install_via_fabric( tool_shed_repository, tool_dependency, install_dir, diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py index d336c711f42..11e6ff7bbad 100644 --- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/install_environment.py @@ -45,6 +45,7 @@ class InstallEnvironment( object ): self.env_shell_file_paths = [] self.install_dir = install_dir self.tool_shed_repository_install_dir = tool_shed_repository_install_dir + self.tmp_work_dir = os.path.abspath( tempfile.mkdtemp( prefix="tmp-toolshed-mtd" ) ) def add_env_shell_file_paths( self, paths ): for path in paths: @@ -255,8 +256,8 @@ class InstallEnvironment( object ): logfile.close() @contextmanager - def make_tmp_dir( self ): - work_dir = tempfile.mkdtemp( prefix="tmp-toolshed-mtd" ) + def use_tmp_dir( self ): + work_dir = self.tmp_work_dir yield work_dir if os.path.exists( work_dir ): try: diff --git a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py index 248d2a4c051..be9a23bfac0 100755 --- a/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py +++ b/lib/tool_shed/galaxy_install/tool_dependencies/recipe/step_handler.py @@ -84,7 +84,7 @@ class CompressedFile( object ): external_attributes = self.archive.getinfo( filename ).external_attr # The 2 least significant bytes are irrelevant, the next two contain unix permissions. unix_permissions = external_attributes >> 16 - if unix_permissions != 0: + if unix_permissions != 0 and os.path.exists( absolute_filepath ): os.chmod( absolute_filepath, unix_permissions ) return os.path.abspath( extraction_path ) @@ -489,22 +489,33 @@ class ChangeDirectory( RecipeStep ): no recipe step filtering is performed here and a None value is return for filtered_actions. However, the new dir value is returned since it is needed for later steps. """ - target_directory = os.path.realpath( os.path.normpath( os.path.join( current_dir, action_dict[ 'directory' ] ) ) ) - if target_directory.startswith( os.path.realpath( current_dir ) ) and os.path.exists( target_directory ): - # Change directory to a directory within the current working directory. - dir = target_directory - elif target_directory.startswith( os.path.realpath( work_dir ) ) and os.path.exists( target_directory ): - # Change directory to a directory above the current working directory, but within the defined work_dir. - dir = target_directory.replace( os.path.realpath( work_dir ), '' ).lstrip( '/' ) + + def dir_valid( test_dir ): + """ + Make sure the defined directory is within current_dir or work_dir. + """ + for valid_dir in [ os.path.realpath( current_dir ), os.path.realpath( work_dir ) ]: + if test_dir.startswith( valid_dir ) and os.path.exists( test_dir ): + return True + return False + + target_dir = os.path.realpath( os.path.normpath( action_dict[ 'directory' ] ) ) + if dir_valid( target_dir ): + # We have a directory that includes a path. + dir = target_dir else: - log.debug( 'Invalid or nonexistent directory %s specified, ignoring change_directory action.', target_directory ) - dir = current_dir + target_dir = os.path.realpath( os.path.normpath( os.path.join( current_dir, action_dict[ 'directory' ] ) ) ) + if dir_valid( target_dir ): + dir = target_dir + else: + log.debug( 'Invalid or nonexistent directory %s specified, ignoring change_directory action.', str( action_dict[ 'directory' ] ) ) + dir = current_dir return tool_dependency, None, dir def prepare_step( self, tool_dependency, action_elem, action_dict, install_environment, is_binary_download ): # PHYLIP-3.6b if action_elem.text: - action_dict[ 'directory' ] = action_elem.text + action_dict[ 'directory' ] = basic_util.evaluate_template( action_elem.text, install_environment ) return action_dict @@ -1123,7 +1134,7 @@ class SetupPerlEnvironment( Download, RecipeStep ): filtered_actions = actions[ 1: ] env_shell_file_paths = action_dict.get( 'env_shell_file_paths', None ) if env_shell_file_paths is None: - log.debug( 'Missing Perl environment, make sure your specified Rerl installation exists.' ) + log.debug( 'Missing Perl environment, make sure your specified Perl installation exists.' ) if initial_download: return tool_dependency, filtered_actions, dir return tool_dependency, None, None @@ -1699,7 +1710,7 @@ class SetupVirtualEnv( Download, RecipeStep ): def install_virtualenv( self, install_environment, venv_dir ): if not os.path.exists( venv_dir ): - with install_environment.make_tmp_dir() as work_dir: + with install_environment.use_tmp_dir() as work_dir: downloaded_filename = VIRTUALENV_URL.rsplit('/', 1)[-1] try: dir = self.url_download( work_dir, downloaded_filename, VIRTUALENV_URL ) diff --git a/lib/tool_shed/util/basic_util.py b/lib/tool_shed/util/basic_util.py index 18497640206..8c188395b81 100644 --- a/lib/tool_shed/util/basic_util.py +++ b/lib/tool_shed/util/basic_util.py @@ -62,14 +62,16 @@ def evaluate_template( text, install_environment ): def get_env_var_values( install_environment ): """ Return a dictionary of values, some of which enable substitution of reserved words for the values. - The received install_enviroment object has 2 important attributes for reserved word substitution: + The received install_enviroment object has 3 important attributes for reserved word substitution: install_environment.tool_shed_repository_install_dir is the root installation directory of the repository - that contains the tool dependency being installed, and install_environment.install_dir is the root - installation directory of the tool dependency. + that contains the tool dependency being installed, install_environment.install_dir is the root + installation directory of the tool dependency, and install_environment.tmp_work_dir is the + temporary directory where the tool dependency compilation/installation is being processed. """ env_var_dict = {} env_var_dict[ 'REPOSITORY_INSTALL_DIR' ] = install_environment.tool_shed_repository_install_dir env_var_dict[ 'INSTALL_DIR' ] = install_environment.install_dir + env_var_dict[ 'TMP_WORK_DIR' ] = install_environment.tmp_work_dir env_var_dict[ 'system_install' ] = install_environment.install_dir # If the Python interpreter is 64bit then we can safely assume that the underlying system is also 64bit. env_var_dict[ '__is64bit__' ] = sys.maxsize > 2**32 diff --git a/scripts/tool_shed/build_ts_whoosh_index.py b/scripts/tool_shed/build_ts_whoosh_index.py index 78954de35e5..776ad310a2b 100644 --- a/scripts/tool_shed/build_ts_whoosh_index.py +++ b/scripts/tool_shed/build_ts_whoosh_index.py @@ -161,21 +161,13 @@ def get_repos( sa_session, path_to_repositories ): path = os.path.join( path_to_repositories, *model.directory_hash_id( repo.id )) path = os.path.join( path, "repo_%d" % repo.id ) if os.path.exists(path): - tool_elems = load_tool_elements_from_path(path) - if tool_elems: - for elem in tool_elems: - root = elem[1].getroot() - if root.tag == 'tool': - tool = {} - if root.find('help') is not None: - tool.update( dict( help=root.find( 'help' ).text ) ) - if root.find('description') is not None: - tool.update( dict( description=root.find( 'description' ).text ) ) - tool.update( dict( id=root.attrib.get('id'), - name=root.attrib.get('name'), - version=root.attrib.get('version') ) ) - - tools_list.append( tool ) + tools_list.extend( load_one_dir( path ) ) + for root, dirs, files in os.walk( path ): + if '.hg' in dirs: + dirs.remove('.hg') + for dirname in dirs: + tools_in_dir = load_one_dir( os.path.join( root, dirname ) ) + tools_list.extend( tools_in_dir ) results.append(dict( id=repo_id, name=name, @@ -192,6 +184,25 @@ def get_repos( sa_session, path_to_repositories ): return results +def load_one_dir( path ): + tools_in_dir = [] + tool_elems = load_tool_elements_from_path( path ) + if tool_elems: + for elem in tool_elems: + root = elem[1].getroot() + if root.tag == 'tool': + tool = {} + if root.find( 'help' ) is not None: + tool.update( dict( help=root.find( 'help' ).text ) ) + if root.find( 'description' ) is not None: + tool.update( dict( description=root.find( 'description' ).text ) ) + tool.update( dict( id=root.attrib.get( 'id' ), + name=root.attrib.get( 'name' ), + version=root.attrib.get( 'version' ) ) ) + tools_in_dir.append( tool ) + return tools_in_dir + + def get_sa_session_and_needed_config_settings( path_to_tool_shed_config ): conf_parser = ConfigParser.ConfigParser( { 'here' : os.getcwd() } ) conf_parser.read( path_to_tool_shed_config ) diff --git a/static/maps/libs/d3.js.map b/static/maps/libs/d3.js.map index 436228cd1d0..3f6667b75ba 100644 --- a/static/maps/libs/d3.js.map +++ b/static/maps/libs/d3.js.map @@ -1 +1 @@ -{"version":3,"file":"d3.js","sources":["../../src/libs/d3.js"],"names":["d3_documentElement","node","ownerDocument","document","documentElement","d3_window","defaultView","d3_ascending","a","b","d3_number","x","d3_numeric","isNaN","d3_bisector","compare","left","lo","hi","arguments","length","mid","right","d3_zipLength","d","d3_range_integerScale","k","d3_class","ctor","properties","key","Object","defineProperty","prototype","value","enumerable","d3_Map","this","_","create","d3_map_escape","d3_map_proto","d3_map_zero","d3_map_unescape","slice","d3_map_has","d3_map_remove","d3_map_keys","keys","push","d3_map_size","size","d3_map_empty","d3_Set","d3_identity","d3_rebind","target","source","method","apply","d3_vendorSymbol","object","name","charAt","toUpperCase","i","n","d3_vendorPrefixes","prefixName","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","event","l","z","listeners","on","listenerByName","listener","get","indexOf","concat","remove","set","d3_eventPreventDefault","d3","preventDefault","d3_eventSource","s","e","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","type","d3_selection","groups","d3_subclass","d3_selectionPrototype","d3_selection_selector","selector","d3_select","d3_selection_selectorAll","d3_selectAll","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","space","local","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","ns","qualify","d3_collapse","trim","replace","d3_selection_classedRe","RegExp","requote","d3_selection_classes","split","d3_selection_classed","classedConstant","classedFunction","map","d3_selection_classedName","re","c","classList","add","getAttribute","lastIndex","test","d3_selection_style","priority","styleNull","style","removeProperty","styleConstant","setProperty","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","namespace","namespaceURI","createElementNS","createElement","createNS","d3_selectionRemove","parent","parentNode","removeChild","d3_selection_dataNode","data","__data__","d3_selection_filter","d3_selectMatches","d3_selection_sortComparator","comparator","d3_selection_each","callback","j","m","group","d3_selection_enter","selection","d3_selection_enterPrototype","d3_selection_enterInsertBefore","enter","i0","j0","update","d3_selection_on","capture","onRemove","removeEventListener","$","onAdd","wrap","d3_array","call","addEventListener","removeAll","match","d3_selection_onListener","filter","d3_selection_onFilters","d3_selection_onFilter","o","related","relatedTarget","compareDocumentPosition","d3_event_dragSuppress","d3_event_dragId","click","w","select","d3_event_dragSelect","suppressClick","off","setTimeout","d3_mousePoint","container","changedTouches","svg","ownerSVGElement","createSVGPoint","point","d3_mouse_bug44083","window","scrollX","scrollY","append","position","top","margin","padding","border","ctm","getScreenCTM","f","pageX","y","pageY","clientX","clientY","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","d3_sgn","d3_cross2d","d3_acos","π","Math","acos","d3_asin","halfπ","asin","d3_sinh","exp","d3_cosh","d3_tanh","d3_haversin","sin","d3_color","d3_hsl","h","d3_rgb_parse","d3_rgb_hsl","d3_hsl_rgb","v","m1","m2","vv","round","d3_rgb","d3_hcl","d3_lab","d3_lab_hcl","d3_rgb_lab","rgb","r","g","d3_hcl_lab","cos","d3_radians","d3_lab_rgb","d3_lab_xyz","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_xyz_rgb","atan2","d3_degrees","sqrt","d3_xyz_lab","pow","d3_rgbNumber","d3_rgbString","d3_rgb_hex","max","toString","min","format","hsl","color","exec","parseFloat","d3_rgb_parseNumber","d3_rgb_names","toLowerCase","parseInt","d3_rgb_xyz","d3_functor","d3_xhrType","response","url","mimeType","d3_xhr","respond","result","status","request","d3_xhrHasResponse","xhr","error","load","headers","XMLHttpRequest","responseType","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","forEach","send","open","setRequestHeader","overrideMimeType","beforesend","abort","rebind","d3_xhr_fixCallback","responseText","d3_timer_step","now","d3_timer_mark","delay","d3_timer_sweep","isFinite","clearTimeout","d3_timer_timeout","d3_timer_interval","d3_timer_frame","Date","d3_timer_active","d3_timer_queueHead","t","t0","t1","time","d3_timer_queueTail","d3_format_precision","p","ceil","log","LN10","d3_formatPrefix","abs","scale","symbol","d3_locale_numberFormat","locale","locale_decimal","decimal","locale_thousands","thousands","locale_grouping","grouping","locale_currency","currency","formatGroup","width","substring","reverse","join","specifier","d3_format_re","fill","align","sign","zfill","comma","precision","prefix","suffix","integer","exponent","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","negative","unit","formatPrefix","before","after","lastIndexOf","Array","d3_date_utc","UTC","d3_time_interval","step","number","date","d0","d1","offset","d3_date","range","dt","times","range_utc","utc","floor","d3_time_interval_utc","d3_locale_timeFormat","d3_time_format","template","string","charCodeAt","d3_time_formatPads","d3_time_formats","parse","H","M","S","L","Z","d3_time_parse","localZ","setFullYear","W","getDay","U","setHours","d3_time_parsers","d3_time_parseWeekdayAbbrev","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_parseWeekday","d3_time_dayRe","d3_time_dayLookup","d3_time_parseMonthAbbrev","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_parseMonth","d3_time_monthRe","d3_time_monthLookup","d3_time_parseLocaleFull","d3_time_parseLocaleDate","d3_time_parseLocaleTime","X","d3_time_parseAmPm","d3_time_periodLookup","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_days","days","locale_shortDays","shortDays","locale_months","months","locale_shortMonths","shortMonths","multi","d3_time_formatMulti","d3_time_formatRe","d3_time_formatLookup","A","getMonth","B","d3_time_formatPad","getDate","getHours","I","d3_time","dayOfYear","getMilliseconds","getMinutes","getSeconds","sundayOfYear","mondayOfYear","getFullYear","Y","d3_time_zone","%","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","names","d3_time_numberRe","d3_time_expandYear","getTimezoneOffset","zs","zh","zm","d3_time_percentRe","formats","d3_adder","d3_adderSum","bv","av","d3_geo_streamGeometry","geometry","d3_geo_streamGeometryType","hasOwnProperty","d3_geo_streamLine","coordinates","closed","coordinate","lineStart","lineEnd","d3_geo_streamPolygon","polygonStart","polygonEnd","d3_geo_areaRingStart","nextPoint","λ","φ","dλ","λ0","sdλ","adλ","cosφ","sinφ","sinφ0","u","cosφ0","d3_geo_areaRingSum","λ00","φ00","d3_geo_area","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","vector","d3_geo_cartesianNormalize","d3_geo_spherical","cartesian","d3_geo_sphericalEqual","ε","d3_geo_centroidPoint","d3_geo_centroidPointXYZ","d3_geo_centroidW0","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidLineStart","y0","z0","x0","d3_geo_centroidW1","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroid","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","cx","cy","cz","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_compose","compose","invert","d3_true","d3_geo_clipPolygon","segments","clipStartInside","interpolate","subject","clip","segment","p0","p1","d3_geo_clipPolygonIntersection","sort","d3_geo_clipPolygonLinkCircular","entry","points","start","current","isSubject","array","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotate","pointLine","line","pointRing","ring","ringListener","ringStart","ringEnd","clean","ringSegments","buffer","pop","polygon","polygonStarted","shift","d3_geo_clipSegmentLength1","rotatedClipStart","merge","d3_geo_pointInPolygon","d3_geo_clipSort","sphere","d3_geo_clipBufferListener","lines","rejoin","d3_geo_clipAntimeridianLine","φ0","sλ0","λ1","φ1","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","atan","d3_geo_clipAntimeridianInterpolate","from","to","direction","meridian","parallel","meridianNormal","polarAngle","winding","reset","point0","antimeridian","τ","arc","intersection","φarc","d3_geo_clipCircle","radius","visible","cr","c0","v0","v00","point2","point1","smallRadius","code","intersect","notHemisphere","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","t2","q","δλ","polar","q1","d3_geo_circleInterpolate","d3_geom_clipLine","x1","y1","ax","ay","bx","by","dx","dy","d3_geo_clipExtent","corner","comparePoints","ca","cb","insidePolygon","wn","a1","linePoint","first","v_","x_","y_","x__","y__","v__","bufferListener","d3_geo_clipExtentMAX","listener_","inside","d3_geo_conic","projectAt","d3_geo_projectionMutator","parallels","d3_geo_conicEqualArea","forward","ρ","C","ρ0","ρ0_y","d3_geo_pathAreaRingStart","d3_geo_pathAreaPolygon","x00","y00","d3_geo_pathArea","d3_geo_pathBoundsPoint","d3_geo_pathBoundsX0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY0","d3_geo_pathBoundsY1","d3_geo_pathBuffer","pointCircle","pointLineStart","stream","lineEndPolygon","d3_geo_pathBufferCircle","pointRadius","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroid","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","context","moveTo","lineTo","closePath","d3_geo_resample","project","resample","maxDepth","resampleRecursive","resampleNone","d3_geo_transformPoint","resampleLineTo","a0","b0","ringPoint","a00","b00","c00","b1","depth","d2","δ2","φ2","λ2","x2","y2","dx2","dy2","dz","cosMinDistance","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projection","projectRotate","δx","δy","d3_geo_rotation","δφ","δγ","center","invalidate","valid","projectResample","preclip","d3_geo_clipAntimeridian","postclip","clipAngle","clipExtent","output","translate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","rotation","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","angle","PI","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","distance","d3_geo_lengthLineStart","cosΔλ","d3_geo_lengthSum","d3_geo_length","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_conicConformal","F","tan","d3_geo_mercator","d3_geo_conicEquidistant","G","d3_geo_mercatorProjection","clipAuto","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hull","hs","d3_geom_hullOrder","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","circle","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiBeachPool","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiBeaches","d3_geom_voronoiRemoveBeach","vertex","previous","P","next","N","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","R","newArc","insert","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiCloseCells","extent","cell","iHalfEdge","halfEdges","nHalfEdges","end","cells","d3_geom_voronoiCells","iCell","prepare","splice","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ε2","ha","d3_geom_voronoiCirclePool","d3_geom_voronoiCircles","d3_geom_voronoiFirstCircle","d3_geom_voronoiClipEdges","d3_geom_voronoiEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","fx","fy","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","tree","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","diagram","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","leaf","nodes","d3_geom_quadtreeVisit","sx","sy","children","d3_geom_quadtreeFind","root","closestPoint","minDistance2","find","distance2","xm","ym","below","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","interpolators","d3_interpolateArray","na","nb","n0","d3_ease_clamp","d3_ease_reverse","d3_ease_reflect","d3_ease_quad","d3_ease_cubic","d3_ease_cubicInOut","t3","d3_ease_poly","d3_ease_sin","d3_ease_exp","d3_ease_circle","d3_ease_elastic","d3_ease_back","d3_ease_bounce","d3_interpolateHcl","hcl","ah","ac","al","bh","bc","bl","d3_interpolateHsl","as","d3_interpolateLab","lab","aa","ba","d3_interpolateRound","d3_transform","r0","r1","kx","d3_transformNormalize","kz","d3_transformDot","ky","d3_transformCombine","skew","d3_interpolateTransform","transform","ta","tb","ra","rb","wa","wb","ka","kb","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","d3_layout_forceAccumulate","quad","alpha","charges","charge","random","pointCharge","d3_layout_hierarchyRebind","hierarchy","links","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","d3_layout_stackMaxIndex","d3_layout_stackReduceSum","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","values","d3_layout_histogramBinFixed","LN2","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","bound","xMin","xMax","yMin","yMax","d3_layout_packLink","d3_layout_packPlace","isect","s1","s2","d3_layout_packUnlink","d3_layout_packTransform","db","da","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","change","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","domain","stop","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","i1","d3_scale_niceStep","d3_scale_niceIdentity","d3_scale_polylinear","bisect","d3_scale_linear","clamp","rescale","linear","input","Number","rangeRound","ticks","d3_scale_linearTicks","tickFormat","d3_scale_linearTickFormat","d3_scale_linearNice","copy","d3_scale_linearRebind","d3_scale_linearTickRange","span","err","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","powp","d3_scale_powPow","powb","d3_scale_ordinal","ranger","steps","rangeBand","xi","has","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","d3_scale_quantile","thresholds","quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","identity","d3_zero","d3_svg_arcInnerRadius","innerRadius","d3_svg_arcOuterRadius","outerRadius","d3_svg_arcStartAngle","startAngle","d3_svg_arcEndAngle","endAngle","d3_svg_arcPadAngle","padAngle","d3_svg_arcSweep","d3_svg_arcCornerTangents","rc","cw","x01","y01","ox","oy","D","cx0","cx1","dx0","dy0","dx1","dy1","d3_svg_line","tension","defined","d3_svg_lineLinear","interpolateKey","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","path","d3_svg_lineStepBefore","d3_svg_lineStepAfter","d3_svg_lineCardinalOpen","d3_svg_lineHermite","d3_svg_lineCardinalTangents","d3_svg_lineCardinalClosed","d3_svg_lineCardinal","tangents","pi","lp","p2","d3_svg_lineBasis","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineMonotone","d3_svg_lineRadial","d3_svg_area","area","points1","interpolateReverse","points0","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","d3_selection_interruptNS","lock","active","count","interrupt","d3_transition","id","d3_transitionPrototype","d3_transition_tween","tween","d3_transition_text","textContent","d3_transitionNamespace","d3_transitionNode","inherit","transition","duration","ease","timer","elapsed","tweened","tick","d3_svg_axisX","attr","d3_svg_axisY","d3_time_formatIsoNative","toISOString","d3_time_scale","methods","tickMethod","d3_time_scaleSteps","year","d3_time_scaleMilliseconds","d3_time_scaleDate","interval","skip","skipped","d3_json","JSON","d3_html","d3_document","createRange","selectNode","body","createContextualFragment","version","d3_arraySlice","list","childNodes","nodeType","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","ascending","descending","sum","mean","median","numbers","variance","deviation","d3_bisect","bisectLeft","bisectRight","bisector","shuffle","permute","indexes","permutes","pairs","zip","zips","transpose","matrix","entries","arrays","merged","Error","isArray","empty","nest","mapType","rollup","sortValues","keyValue","setter","valuesByKey","sortKey","sortKeys","keyMap","order","behavior","d3_requote_re","__proto__","property","querySelector","querySelectorAll","d3_selectMatcher","matches","Sizzle","matchesSelector","subgroup","subnode","subgroups","selectAll","d3_nsPrefix","xhtml","xlink","xml","xmlns","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","html","innerHTML","appendChild","insertBefore","bind","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","exit","datum","nextSibling","args","upgroup","mouseenter","mouseleave","mouse","navigator","userAgent","touch","touches","drag","mousedown","touchstart","dragstart","move","moved","position1","dragId","position0","dragged","dragOffset","ended","dragSubject","dragName","dragRestore","that","origin","τε","SQRT2","ρ2","ρ4","interpolateZoom","coshr0","w0","ux0","uy0","ux1","uy1","w1","zoom","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","location","view","scaleTo","scaleExtent","translateTo","zoomTo","__chart__","center0","zoomstarted","zooming","zoomed","zoomended","location0","mousemove","mouseup","d3_selection_interrupt","relocate","scale0","locations0","started","touchmove","touchend","targets","changed","touchtime","distance0","l0","l1","distance1","scale1","zoomName","mousewheelTimer","translate0","d3_behavior_zoomDelta","shiftKey","d3_behavior_zoomInfinity","deltaY","deltaMode","wheelDelta","detail","view1","d3_transitionInheritId","d3_hslPrototype","brighter","darker","d3_hclPrototype","d3_lab_K","d3_labPrototype","d3_rgbPrototype","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","functor","dsv","delimiter","row","typedResponse","formatRow","formatValue","reFormat","delimiterCode","parseRows","Function","stringify","token","EOF","eol","EOL","rows","formatRows","fieldSet","fields","field","csv","tsv","then","flush","d3_formatPrefixes","String","fromCharCode","toPrecision","toExponential","toFixed","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getTime","valueOf","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setUTCFullYear","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","day","years","week","sunday","weeks","weekOfYear","-","0","numberFormat","timeFormat","d3_locale_enUS","geo","d3_adderTemp","d3_geo_streamObjectType","Feature","feature","FeatureCollection","features","Sphere","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","geometries","d3_geo_areaSum","bounds","ranges","normal","equatorial","inflection","λ_","λi","φi","dλSum","λ__","φ__","compareRanges","withinRange","best","centroid","conicEqualArea","raw","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathBounds","contextStream","cacheStream","projectStream","projectionMutator","equirectangular","Δλ","sinΔλ","sinφ1","graticule","X0","DX","X1","Y0","DY","Y1","outline","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_azimuthalEqualArea","cosλcosφ","azimuthalEqualArea","d3_geo_azimuthalEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","stereographic","transverseMercator","geom","vertices","flippedPoints","upper","lower","skipLeft","skipRight","d3_geom_polygonPrototype","grandpa","uncle","sibling","voronoi","polygons","d3_geom_voronoiClipExtent","triangles","s0","delaunay","quadtree","nx","ny","insertChild","nPoint","xs","ys","x1_","y1_","x2_","y2_","compat","visit","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolateArray","d3_ease_default","d3_ease","poly","cubic","elastic","back","bounce","d3_ease_mode","in","out","in-out","out-in","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","baseVal","consolidate","d3_transformIdentity","interpolateTransform","layout","bundle","paths","chord","relayout","groupSums","groupIndex","subgroupIndex","chords","sortGroups","sortSubgroups","di","dj","subindex","sortChords","resort","force","repulse","dw","dn","theta2","chargeDistance2","dragmove","resume","distances","strengths","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","d3_layout_forceChargeDistance2","gravity","weight","chargeDistance","theta","dimension","neighbors","candidates","stack","childs","revalue","partition","pie","arcs","d3_layout_pieSortByValue","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","inside-out","sums","bottom","tops","bottoms","default","silhouette","wiggle","s3","o0","expand","zero","histogram","bin","bins","valuer","binner","frequency","pack","root0","root1","wrapTree","firstWalk","secondWalk","nodeSize","sizeNode","tx","separation","node1","queue","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","squarify","score","pad","remaining","mode","worst","stickify","rmax","rmin","ratio","stickies","sticky","padFunction","padConstant","µ","σ","logNormal","bates","irwinHall","ordinal","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","quantize","threshold","circleSegment","rp","ap","padRadius","d3_svg_arcAuto","h1","h0","cornerRadius","oc","kc","lc","rc1","t30","t12","rc0","t03","t21","linear-closed","step-before","step-after","basis","basis-open","basis-closed","cardinal","cardinal-open","cardinal-closed","monotone","radial","equals","curve","self","diagonal","p3","projection_","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","triangle-down","d3_svg_symbolSqrt3","triangle-up","symbolTypes","d3_transitionId","d3_transitionInherit","subnodes","nameNS","attrTween","attrTweenNS","styleString","styleTween","inheritId","id0","id1","axis","tickTransform","tickValues","tickArguments_","tickFormat_","tickEnter","tickExit","tickUpdate","tickSpacing","innerTickSize","tickPadding","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","orient","outerTickSize","d3_svg_axisDefaultOrient","d3_svg_axisOrients","tickSize","tickSubdivide","brush","brushstart","background","resize","resizes","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","xExtent","yExtent","keydown","keyCode","dragging","keyup","brushmove","altKey","resizingX","move1","resizingY","event_","yClamp","xClamp","yExtentDomain","xExtentDomain","brushend","eventTarget","resizing","ex","ey","d3_svg_brushResizes","extent1","extent0","yi","clear","nw","ne","se","sw","d3_time_formatUtc","d3_time_formatIso","iso","second","seconds","minute","minutes","hour","timezone","hours","month","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","json","responseXML","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"d3.js","sources":["../../src/libs/d3.js"],"names":["d3_documentElement","node","ownerDocument","document","documentElement","d3_window","defaultView","d3_ascending","a","b","d3_number","x","d3_numeric","isNaN","d3_bisector","compare","left","lo","hi","arguments","length","mid","right","d3_zipLength","d","d3_range_integerScale","k","d3_class","ctor","properties","key","Object","defineProperty","prototype","value","enumerable","d3_Map","this","_","create","d3_map_escape","d3_map_proto","d3_map_zero","d3_map_unescape","slice","d3_map_has","d3_map_remove","d3_map_keys","keys","push","d3_map_size","size","d3_map_empty","d3_Set","d3_identity","d3_rebind","target","source","method","apply","d3_vendorSymbol","object","name","charAt","toUpperCase","i","n","d3_vendorPrefixes","prefixName","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","event","l","z","listeners","on","listenerByName","listener","get","indexOf","concat","remove","set","d3_eventPreventDefault","d3","preventDefault","d3_eventSource","s","e","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","type","d3_selection","groups","d3_subclass","d3_selectionPrototype","d3_selection_selector","selector","d3_select","d3_selection_selectorAll","d3_selectAll","d3_selection_attr","attrNull","removeAttribute","attrNullNS","removeAttributeNS","space","local","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","ns","qualify","d3_collapse","trim","replace","d3_selection_classedRe","RegExp","requote","d3_selection_classes","split","d3_selection_classed","classedConstant","classedFunction","map","d3_selection_classedName","re","c","classList","add","getAttribute","lastIndex","test","d3_selection_style","priority","styleNull","style","removeProperty","styleConstant","setProperty","styleFunction","d3_selection_property","propertyNull","propertyConstant","propertyFunction","d3_selection_creator","namespace","namespaceURI","createElementNS","createElement","createNS","d3_selectionRemove","parent","parentNode","removeChild","d3_selection_dataNode","data","__data__","d3_selection_filter","d3_selectMatches","d3_selection_sortComparator","comparator","d3_selection_each","callback","j","m","group","d3_selection_enter","selection","d3_selection_enterPrototype","d3_selection_enterInsertBefore","enter","i0","j0","update","d3_selection_on","capture","onRemove","removeEventListener","$","onAdd","wrap","d3_array","call","addEventListener","removeAll","match","d3_selection_onListener","filter","d3_selection_onFilters","d3_selection_onFilter","o","related","relatedTarget","compareDocumentPosition","d3_event_dragSuppress","d3_event_dragId","click","w","select","d3_event_dragSelect","suppressClick","off","setTimeout","d3_mousePoint","container","changedTouches","svg","ownerSVGElement","createSVGPoint","point","d3_mouse_bug44083","window","scrollX","scrollY","append","position","top","margin","padding","border","ctm","getScreenCTM","f","pageX","y","pageY","clientX","clientY","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","d3_sgn","d3_cross2d","d3_acos","π","Math","acos","d3_asin","halfπ","asin","d3_sinh","exp","d3_cosh","d3_tanh","d3_haversin","sin","d3_color","d3_hsl","h","d3_rgb_parse","d3_rgb_hsl","d3_hsl_rgb","v","m1","m2","vv","round","d3_rgb","d3_hcl","d3_lab","d3_lab_hcl","d3_rgb_lab","rgb","r","g","d3_hcl_lab","cos","d3_radians","d3_lab_rgb","d3_lab_xyz","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_xyz_rgb","atan2","d3_degrees","sqrt","d3_xyz_lab","pow","d3_rgbNumber","d3_rgbString","d3_rgb_hex","max","toString","min","format","hsl","toLowerCase","color","exec","parseFloat","d3_rgb_parseNumber","d3_rgb_names","parseInt","d3_rgb_xyz","d3_functor","d3_xhrType","response","url","mimeType","d3_xhr","respond","result","status","request","d3_xhrHasResponse","xhr","error","load","headers","XMLHttpRequest","responseType","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","forEach","send","open","setRequestHeader","overrideMimeType","beforesend","abort","rebind","d3_xhr_fixCallback","responseText","d3_timer_step","now","d3_timer_mark","delay","d3_timer_sweep","isFinite","clearTimeout","d3_timer_timeout","d3_timer_interval","d3_timer_frame","Date","d3_timer_active","d3_timer_queueHead","t","t0","t1","time","d3_timer_queueTail","d3_format_precision","p","ceil","log","LN10","d3_formatPrefix","abs","scale","symbol","d3_locale_numberFormat","locale","locale_decimal","decimal","locale_thousands","thousands","locale_grouping","grouping","locale_currency","currency","formatGroup","width","substring","reverse","join","specifier","d3_format_re","fill","align","sign","zfill","comma","precision","prefix","suffix","integer","exponent","d3_format_types","d3_format_typeDefault","zcomma","fullSuffix","negative","unit","formatPrefix","before","after","lastIndexOf","Array","d3_date_utc","UTC","d3_time_interval","step","number","date","d0","d1","offset","d3_date","range","dt","times","range_utc","utc","floor","d3_time_interval_utc","d3_locale_timeFormat","d3_time_format","template","string","charCodeAt","d3_time_formatPads","d3_time_formats","parse","H","M","S","L","Z","d3_time_parse","localZ","setFullYear","W","getDay","U","setHours","d3_time_parsers","d3_time_parseWeekdayAbbrev","d3_time_dayAbbrevRe","d3_time_dayAbbrevLookup","d3_time_parseWeekday","d3_time_dayRe","d3_time_dayLookup","d3_time_parseMonthAbbrev","d3_time_monthAbbrevRe","d3_time_monthAbbrevLookup","d3_time_parseMonth","d3_time_monthRe","d3_time_monthLookup","d3_time_parseLocaleFull","d3_time_parseLocaleDate","d3_time_parseLocaleTime","X","d3_time_parseAmPm","d3_time_periodLookup","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_days","days","locale_shortDays","shortDays","locale_months","months","locale_shortMonths","shortMonths","multi","d3_time_formatMulti","d3_time_formatRe","d3_time_formatLookup","A","getMonth","B","d3_time_formatPad","getDate","getHours","I","d3_time","dayOfYear","getMilliseconds","getMinutes","getSeconds","sundayOfYear","mondayOfYear","getFullYear","Y","d3_time_zone","%","d3_time_parseDay","d3_time_parseHour24","d3_time_parseDayOfYear","d3_time_parseMilliseconds","d3_time_parseMonthNumber","d3_time_parseMinutes","d3_time_parseSeconds","d3_time_parseWeekNumberSunday","d3_time_parseWeekdayNumber","d3_time_parseWeekNumberMonday","d3_time_parseYear","d3_time_parseFullYear","d3_time_parseZone","d3_time_parseLiteralPercent","names","d3_time_numberRe","d3_time_expandYear","getTimezoneOffset","zs","zh","zm","d3_time_percentRe","formats","d3_adder","d3_adderSum","bv","av","d3_geo_streamGeometry","geometry","d3_geo_streamGeometryType","hasOwnProperty","d3_geo_streamLine","coordinates","closed","coordinate","lineStart","lineEnd","d3_geo_streamPolygon","polygonStart","polygonEnd","d3_geo_areaRingStart","nextPoint","λ","φ","dλ","λ0","sdλ","adλ","cosφ","sinφ","sinφ0","u","cosφ0","d3_geo_areaRingSum","λ00","φ00","d3_geo_area","d3_geo_cartesian","spherical","d3_geo_cartesianDot","d3_geo_cartesianCross","d3_geo_cartesianAdd","d3_geo_cartesianScale","vector","d3_geo_cartesianNormalize","d3_geo_spherical","cartesian","d3_geo_sphericalEqual","ε","d3_geo_centroidPoint","d3_geo_centroidPointXYZ","d3_geo_centroidW0","d3_geo_centroidX0","d3_geo_centroidY0","d3_geo_centroidZ0","d3_geo_centroidLineStart","y0","z0","x0","d3_geo_centroidW1","d3_geo_centroidX1","d3_geo_centroidY1","d3_geo_centroidZ1","d3_geo_centroid","d3_geo_centroidLineEnd","d3_geo_centroidRingStart","cx","cy","cz","d3_geo_centroidX2","d3_geo_centroidY2","d3_geo_centroidZ2","d3_geo_compose","compose","invert","d3_true","d3_geo_clipPolygon","segments","clipStartInside","interpolate","subject","clip","segment","p0","p1","d3_geo_clipPolygonIntersection","sort","d3_geo_clipPolygonLinkCircular","entry","points","start","current","isSubject","array","other","d3_geo_clip","pointVisible","clipLine","clipStart","rotate","pointLine","line","pointRing","ring","ringListener","ringStart","ringEnd","clean","ringSegments","buffer","pop","polygon","polygonStarted","shift","d3_geo_clipSegmentLength1","rotatedClipStart","merge","d3_geo_pointInPolygon","d3_geo_clipSort","sphere","d3_geo_clipBufferListener","lines","rejoin","d3_geo_clipAntimeridianLine","φ0","sλ0","λ1","φ1","sλ1","d3_geo_clipAntimeridianIntersect","cosφ1","sinλ0_λ1","atan","d3_geo_clipAntimeridianInterpolate","from","to","direction","meridian","parallel","meridianNormal","polarAngle","winding","reset","point0","antimeridian","τ","arc","intersection","φarc","d3_geo_clipCircle","radius","visible","cr","c0","v0","v00","point2","point1","smallRadius","code","intersect","notHemisphere","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","uu","t2","q","δλ","polar","q1","d3_geo_circleInterpolate","d3_geom_clipLine","x1","y1","ax","ay","bx","by","dx","dy","d3_geo_clipExtent","corner","comparePoints","ca","cb","insidePolygon","wn","a1","linePoint","first","v_","x_","y_","x__","y__","v__","bufferListener","d3_geo_clipExtentMAX","listener_","inside","d3_geo_conic","projectAt","d3_geo_projectionMutator","parallels","d3_geo_conicEqualArea","forward","ρ","C","ρ0","ρ0_y","d3_geo_pathAreaRingStart","d3_geo_pathAreaPolygon","x00","y00","d3_geo_pathArea","d3_geo_pathBoundsPoint","d3_geo_pathBoundsX0","d3_geo_pathBoundsX1","d3_geo_pathBoundsY0","d3_geo_pathBoundsY1","d3_geo_pathBuffer","pointCircle","pointLineStart","stream","lineEndPolygon","d3_geo_pathBufferCircle","pointRadius","d3_geo_pathCentroidPoint","d3_geo_pathCentroidLineStart","d3_geo_pathCentroid","d3_geo_pathCentroidLineEnd","d3_geo_pathCentroidRingStart","d3_geo_pathContext","context","moveTo","lineTo","closePath","d3_geo_resample","project","resample","maxDepth","resampleRecursive","resampleNone","d3_geo_transformPoint","resampleLineTo","a0","b0","ringPoint","a00","b00","c00","b1","depth","d2","δ2","φ2","λ2","x2","y2","dx2","dy2","dz","cosMinDistance","d3_geo_pathProjectStream","d3_geo_projectionRadians","d3_geo_transform","d3_geo_projection","projection","projectRotate","δx","δy","d3_geo_rotation","δφ","δγ","center","invalidate","valid","projectResample","preclip","d3_geo_clipAntimeridian","postclip","clipAngle","clipExtent","output","translate","d3_geo_equirectangular","d3_geo_identityRotation","d3_geo_rotationλ","d3_geo_rotationφγ","d3_geo_forwardRotationλ","rotation","cosδφ","sinδφ","cosδγ","sinδγ","sr","d3_geo_circleAngle","angle","PI","d3_geo_graticuleX","d3_geo_graticuleY","d3_source","d3_target","d3_geo_interpolate","cy0","sy0","cy1","sy1","kx0","ky0","kx1","ky1","distance","d3_geo_lengthLineStart","cosΔλ","d3_geo_lengthSum","d3_geo_length","d3_geo_azimuthal","azimuthal","cosλ","sinc","cosc","d3_geo_conicConformal","F","tan","d3_geo_mercator","d3_geo_conicEquidistant","G","d3_geo_mercatorProjection","clipAuto","d3_geo_transverseMercator","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","hull","hs","d3_geom_hullOrder","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","circle","d3_geom_voronoiCreateBeach","beach","d3_geom_voronoiBeachPool","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiBeaches","d3_geom_voronoiRemoveBeach","vertex","previous","P","next","N","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","d3_geom_voronoiRightBreakPoint","R","newArc","insert","lSite","rSite","hb","hc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiCloseCells","extent","cell","iHalfEdge","halfEdges","nHalfEdges","end","cells","d3_geom_voronoiCells","iCell","prepare","splice","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiHalfEdgeOrder","d3_geom_voronoiCircle","cSite","ε2","ha","d3_geom_voronoiCirclePool","d3_geom_voronoiCircles","d3_geom_voronoiFirstCircle","d3_geom_voronoiClipEdges","d3_geom_voronoiEdges","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","fx","fy","d3_geom_voronoiEdge","d3_geom_voronoiRedBlackTree","d3_geom_voronoiRedBlackRotateLeft","tree","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","diagram","d3_geom_voronoiTriangleArea","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeNode","leaf","nodes","d3_geom_quadtreeVisit","sx","sy","children","d3_geom_quadtreeFind","root","closestPoint","minDistance2","find","distance2","xm","ym","below","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","interpolators","d3_interpolateArray","na","nb","n0","d3_ease_clamp","d3_ease_reverse","d3_ease_reflect","d3_ease_quad","d3_ease_cubic","d3_ease_cubicInOut","t3","d3_ease_poly","d3_ease_sin","d3_ease_exp","d3_ease_circle","d3_ease_elastic","d3_ease_back","d3_ease_bounce","d3_interpolateHcl","hcl","ah","ac","al","bh","bc","bl","d3_interpolateHsl","as","d3_interpolateLab","lab","aa","ba","d3_interpolateRound","d3_transform","r0","r1","kx","d3_transformNormalize","kz","d3_transformDot","ky","d3_transformCombine","skew","d3_interpolateTransform","transform","ta","tb","ra","rb","wa","wb","ka","kb","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","d3_layout_bundleLeastCommonAncestor","d3_layout_bundleAncestors","ancestors","aNodes","bNodes","aNode","bNode","sharedNode","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","d3_layout_forceAccumulate","quad","alpha","charges","charge","random","pointCharge","d3_layout_hierarchyRebind","hierarchy","links","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","d3_layout_stackMaxIndex","d3_layout_stackReduceSum","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","values","d3_layout_histogramBinFixed","LN2","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","bound","xMin","xMax","yMin","yMax","d3_layout_packLink","d3_layout_packPlace","isect","s1","s2","d3_layout_packUnlink","d3_layout_packTransform","db","da","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","change","d3_layout_treeShift","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterY","d3_layout_clusterX","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","domain","stop","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","i1","d3_scale_niceStep","d3_scale_niceIdentity","d3_scale_polylinear","bisect","d3_scale_linear","clamp","rescale","linear","input","Number","rangeRound","ticks","d3_scale_linearTicks","tickFormat","d3_scale_linearTickFormat","d3_scale_linearNice","copy","d3_scale_linearRebind","d3_scale_linearTickRange","span","err","d3_scale_linearPrecision","d3_scale_linearFormatPrecision","d3_scale_linearFormatSignificant","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_logFormat","d3_scale_pow","powp","d3_scale_powPow","powb","d3_scale_ordinal","ranger","steps","rangeBand","xi","has","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","d3_scale_quantile","thresholds","quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","identity","d3_zero","d3_svg_arcInnerRadius","innerRadius","d3_svg_arcOuterRadius","outerRadius","d3_svg_arcStartAngle","startAngle","d3_svg_arcEndAngle","endAngle","d3_svg_arcPadAngle","padAngle","d3_svg_arcSweep","d3_svg_arcCornerTangents","rc","cw","x01","y01","ox","oy","D","cx0","cx1","dx0","dy0","dx1","dy1","d3_svg_line","tension","defined","d3_svg_lineLinear","interpolateKey","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStep","path","d3_svg_lineStepBefore","d3_svg_lineStepAfter","d3_svg_lineCardinalOpen","d3_svg_lineHermite","d3_svg_lineCardinalTangents","d3_svg_lineCardinalClosed","d3_svg_lineCardinal","tangents","pi","lp","p2","d3_svg_lineBasis","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","d3_svg_lineBasisOpen","d3_svg_lineBasisClosed","d3_svg_lineBundle","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","d3_svg_lineMonotone","d3_svg_lineRadial","d3_svg_area","area","points1","interpolateReverse","points0","fx0","fy0","fx1","fy1","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_diagonalRadialProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","d3_selection_interruptNS","lock","active","count","interrupt","d3_transition","id","d3_transitionPrototype","d3_transition_tween","tween","d3_transition_text","textContent","d3_transitionNamespace","d3_transitionNode","inherit","transition","duration","ease","timer","elapsed","tweened","tick","d3_svg_axisX","attr","d3_svg_axisY","d3_time_formatIsoNative","toISOString","d3_time_scale","methods","tickMethod","d3_time_scaleSteps","year","d3_time_scaleMilliseconds","d3_time_scaleDate","interval","skip","skipped","d3_json","JSON","d3_html","d3_document","createRange","selectNode","body","createContextualFragment","version","d3_arraySlice","list","childNodes","nodeType","d3_element_prototype","Element","d3_element_setAttribute","d3_element_setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","ascending","descending","sum","mean","median","numbers","variance","deviation","d3_bisect","bisectLeft","bisectRight","bisector","shuffle","permute","indexes","permutes","pairs","zip","zips","transpose","matrix","entries","arrays","merged","Error","isArray","empty","nest","mapType","rollup","sortValues","keyValue","setter","valuesByKey","sortKey","sortKeys","keyMap","order","behavior","d3_requote_re","__proto__","property","querySelector","querySelectorAll","d3_selectMatcher","matches","Sizzle","matchesSelector","subgroup","subnode","subgroups","selectAll","d3_nsPrefix","xhtml","xlink","xml","xmlns","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","html","innerHTML","appendChild","insertBefore","bind","groupData","nodeData","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","exit","datum","nextSibling","args","upgroup","mouseenter","mouseleave","mouse","navigator","userAgent","touch","touches","drag","mousedown","touchstart","dragstart","move","moved","position1","dragId","position0","dragged","dragOffset","ended","dragSubject","dragName","dragRestore","that","origin","τε","SQRT2","ρ2","ρ4","interpolateZoom","coshr0","w0","ux0","uy0","ux1","uy1","w1","zoom","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","location","view","scaleTo","scaleExtent","translateTo","zoomTo","__chart__","center0","zoomstarted","zooming","zoomed","zoomended","location0","mousemove","mouseup","d3_selection_interrupt","relocate","scale0","locations0","started","touchmove","touchend","targets","changed","touchtime","distance0","l0","l1","distance1","scale1","zoomName","mousewheelTimer","translate0","d3_behavior_zoomDelta","shiftKey","d3_behavior_zoomInfinity","deltaY","deltaMode","wheelDelta","detail","view1","d3_transitionInheritId","d3_hslPrototype","brighter","darker","d3_hclPrototype","d3_lab_K","d3_labPrototype","d3_rgbPrototype","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","functor","dsv","delimiter","row","typedResponse","formatRow","formatValue","reFormat","delimiterCode","parseRows","Function","stringify","token","EOF","eol","EOL","rows","formatRows","fieldSet","fields","field","csv","tsv","then","flush","d3_formatPrefixes","String","fromCharCode","toPrecision","toExponential","toFixed","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getTime","valueOf","setDate","d3_time_prototype","setUTCDate","setDay","setUTCDay","setUTCFullYear","setUTCHours","setMilliseconds","setUTCMilliseconds","setMinutes","setUTCMinutes","setMonth","setUTCMonth","setSeconds","setUTCSeconds","setTime","day","years","week","sunday","weeks","weekOfYear","-","0","numberFormat","timeFormat","d3_locale_enUS","geo","d3_adderTemp","d3_geo_streamObjectType","Feature","feature","FeatureCollection","features","Sphere","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","GeometryCollection","geometries","d3_geo_areaSum","bounds","ranges","normal","equatorial","inflection","λ_","λi","φi","dλSum","λ__","φ__","compareRanges","withinRange","best","centroid","conicEqualArea","raw","albers","albersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","lower48Stream","alaskaStream","hawaiiStream","d3_geo_pathAreaSum","d3_geo_pathBounds","contextStream","cacheStream","projectStream","projectionMutator","equirectangular","Δλ","sinΔλ","sinφ1","graticule","X0","DX","X1","Y0","DY","Y1","outline","majorExtent","minorExtent","majorStep","minorStep","greatArc","source_","target_","d3_geo_azimuthalEqualArea","cosλcosφ","azimuthalEqualArea","d3_geo_azimuthalEquidistant","azimuthalEquidistant","conicConformal","conicEquidistant","d3_geo_gnomonic","gnomonic","mercator","d3_geo_orthographic","orthographic","d3_geo_stereographic","stereographic","transverseMercator","geom","vertices","flippedPoints","upper","lower","skipLeft","skipRight","d3_geom_polygonPrototype","grandpa","uncle","sibling","voronoi","polygons","d3_geom_voronoiClipExtent","triangles","s0","delaunay","quadtree","nx","ny","insertChild","nPoint","xs","ys","x1_","y1_","x2_","y2_","compat","visit","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolateArray","d3_ease_default","d3_ease","poly","cubic","elastic","back","bounce","d3_ease_mode","in","out","in-out","out-in","interpolateHcl","interpolateHsl","interpolateLab","interpolateRound","baseVal","consolidate","d3_transformIdentity","interpolateTransform","layout","bundle","paths","chord","relayout","groupSums","groupIndex","subgroupIndex","chords","sortGroups","sortSubgroups","di","dj","subindex","sortChords","resort","force","repulse","dw","dn","theta2","chargeDistance2","dragmove","resume","distances","strengths","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","d3_layout_forceChargeDistance2","gravity","weight","chargeDistance","theta","dimension","neighbors","candidates","stack","childs","revalue","partition","pie","arcs","d3_layout_pieSortByValue","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","inside-out","sums","bottom","tops","bottoms","default","silhouette","wiggle","s3","o0","expand","zero","histogram","bin","bins","valuer","binner","frequency","pack","root0","root1","wrapTree","firstWalk","secondWalk","nodeSize","sizeNode","tx","separation","node1","queue","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","cluster","previousNode","treemap","squarify","score","pad","remaining","mode","worst","stickify","rmax","rmin","ratio","stickies","sticky","padFunction","padConstant","µ","σ","logNormal","bates","irwinHall","ordinal","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","quantize","threshold","circleSegment","rp","ap","padRadius","d3_svg_arcAuto","h1","h0","cornerRadius","oc","kc","lc","rc1","t30","t12","rc0","t03","t21","linear-closed","step-before","step-after","basis","basis-open","basis-closed","cardinal","cardinal-open","cardinal-closed","monotone","radial","equals","curve","self","diagonal","p3","projection_","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","triangle-down","d3_svg_symbolSqrt3","triangle-up","symbolTypes","d3_transitionId","d3_transitionInherit","subnodes","nameNS","attrTween","attrTweenNS","styleString","styleTween","inheritId","id0","id1","axis","tickTransform","tickValues","tickArguments_","tickFormat_","tickEnter","tickExit","tickUpdate","tickSpacing","innerTickSize","tickPadding","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","orient","outerTickSize","d3_svg_axisDefaultOrient","d3_svg_axisOrients","tickSize","tickSubdivide","brush","brushstart","background","resize","resizes","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","xExtent","yExtent","keydown","keyCode","dragging","keyup","brushmove","altKey","resizingX","move1","resizingY","event_","yClamp","xClamp","yExtentDomain","xExtentDomain","brushend","eventTarget","resizing","ex","ey","d3_svg_brushResizes","extent1","extent0","yi","clear","nw","ne","se","sw","d3_time_formatUtc","d3_time_formatIso","iso","second","seconds","minute","minutes","hour","timezone","hours","month","d3_time_scaleLocalMethods","d3_time_scaleLocalFormat","d3_time_scaleUtcMethods","d3_time_scaleUtcFormat","json","responseXML","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/farbtastic.js.map b/static/maps/libs/farbtastic.js.map index 8d03a6245fa..76d68e434d6 100644 --- a/static/maps/libs/farbtastic.js.map +++ b/static/maps/libs/farbtastic.js.map @@ -1 +1 @@ -{"version":3,"file":"farbtastic.js","sources":["../../src/libs/farbtastic.js"],"names":["$","__debug","fn","farbtastic","options","this","container","_farbtastic","fb","linkTo","callback","unbind","updateValue","color","bind","value","setColor","unpack","rgb","hsl","RGBToHSL","updateDisplay","setHSL","HSLToRGB","pack","initWidget","dim","width","height","html","find","attr","css","end","navigator","userAgent","match","each","class","style","getAttribute","e","document","createElement","before","remove","G_vmlCanvasManager","initElement","radius","wheelWidth","square","Math","floor","mid","markerSize","solidFill","left","top","cnvMask","ctxMask","getContext","cnvOverlay","ctxOverlay","translate","drawCircle","drawMask","color1","d1","tm","Date","n","r","w","nudge","PI","m","angle1","save","lineWidth","scale","i","d2","angle2","x1","sin","y1","cos","x2","y2","am","tan","xm","ym","color2","corr","min","abs","grad","createLinearGradient","addColorStop","fillStyle","r1","r2","beginPath","moveTo","quadraticCurveTo","lineTo","fill","strokeStyle","stroke","restore","append","calculateMask","sizex","sizey","outputPixel","isx","isy","y","l","x","s","a","c","size","sq","getImageData","sz","buffer","ctx","frame","data","putImageData","drawImage","cache_last","cache","round","c_last","a_last","packDX","position","filter","appendTo","push","fillRect","drawMarkers","lw","ceil","angle","c1","invert","c2","circles","clearRect","arc","backgroundColor","call","widgetCoords","event","pageX","offset","pageY","mousedown","dragging","mousemove","mouseup","pos","circleDrag","max","hue","atan2","sat","lum","dec2hex","toString","g","b","parseInt","substring","length","m1","m2","h","hueToRGB","delta","extend","jQuery"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"farbtastic.js","sources":["../../src/libs/farbtastic.js"],"names":["$","__debug","fn","farbtastic","options","this","container","_farbtastic","fb","linkTo","callback","unbind","updateValue","color","bind","value","setColor","unpack","rgb","hsl","RGBToHSL","updateDisplay","setHSL","HSLToRGB","pack","initWidget","dim","width","height","html","find","attr","css","end","browser","msie","radius","wheelWidth","square","Math","floor","mid","markerSize","solidFill","left","top","cnvMask","ctxMask","getContext","cnvOverlay","ctxOverlay","translate","drawCircle","drawMask","color1","d1","tm","Date","n","r","w","nudge","PI","m","angle1","save","lineWidth","scale","i","d2","angle2","x1","sin","y1","cos","x2","y2","am","tan","xm","ym","color2","corr","min","abs","grad","createLinearGradient","addColorStop","fillStyle","r1","r2","beginPath","moveTo","quadraticCurveTo","lineTo","fill","strokeStyle","stroke","restore","append","calculateMask","sizex","sizey","outputPixel","isx","isy","y","l","x","s","a","c","size","sq","getImageData","sz","buffer","document","createElement","ctx","frame","data","putImageData","drawImage","cache_last","cache","round","c_last","a_last","packDX","position","filter","appendTo","push","fillRect","drawMarkers","lw","ceil","angle","c1","invert","c2","circles","clearRect","length","arc","backgroundColor","each","change","call","widgetCoords","event","pageX","offset","pageY","mousedown","dragging","mousemove","mouseup","pos","circleDrag","max","hue","atan2","sat","lum","dec2hex","toString","g","b","parseInt","substring","m1","m2","h","hueToRGB","delta","extend","jQuery"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/jquery.sparklines.js.map b/static/maps/libs/jquery.sparklines.js.map new file mode 100644 index 00000000000..54f300148cb --- /dev/null +++ b/static/maps/libs/jquery.sparklines.js.map @@ -0,0 +1 @@ +{"version":3,"file":"jquery.sparklines.js","sources":["../../src/libs/jquery.sparklines.js"],"names":["document","Math","undefined","factory","define","amd","jQuery","fn","sparkline","$","getDefaults","createClass","SPFormat","clipval","quartile","normalizeValue","normalizeValues","remove","isNumber","all","sum","addCSS","ensureArray","formatNumber","RangeMap","MouseHandler","Tooltip","barHighlightMixin","line","bar","tristate","discrete","bullet","pie","box","defaultStyles","initStyles","VShape","VCanvas_base","VCanvas_canvas","VCanvas_vml","pending","UNSET_OPTION","shapeCount","common","type","lineColor","fillColor","defaultPixelsPerValue","width","height","composite","tagValuesAttribute","tagOptionsPrefix","enableTagOptions","enableHighlight","highlightLighten","tooltipSkipNull","tooltipPrefix","tooltipSuffix","disableHiddenCheck","numberFormatter","numberDigitGroupCount","numberDigitGroupSep","numberDecimalMark","disableTooltips","disableInteraction","spotColor","highlightSpotColor","highlightLineColor","spotRadius","minSpotColor","maxSpotColor","lineWidth","normalRangeMin","normalRangeMax","normalRangeColor","drawNormalOnTop","chartRangeMin","chartRangeMax","chartRangeMinX","chartRangeMaxX","tooltipFormat","barColor","negBarColor","stackedBarColor","zeroColor","nullColor","zeroAxis","barWidth","barSpacing","chartRangeClip","colorMap","posBarColor","zeroBarColor","tooltipValueLookups","map","-1","0","1","lineHeight","thresholdColor","thresholdValue","targetColor","targetWidth","performanceColor","rangeColors","base","fields","r","p","t","offset","sliceColors","borderWidth","borderColor","raw","boxLineColor","boxFillColor","whiskerColor","outlierLineColor","outlierFillColor","medianColor","showOutliers","outlierIQR","target","tooltipFormatFieldlistKey","lq","med","uq","lo","ro","lw","rw","Class","args","this","init","apply","arguments","length","prototype","extend","_super","Array","slice","call","unshift","cls","SPFormatClass","fre","precre","format","fclass","render","fieldset","lookups","options","match","token","lookupkey","fieldvalue","prec","self","replace","lookup","exec","get","spformat","val","min","max","values","q","vl","floor","nf","parseFloat","vals","i","result","filter","push","num","isNaN","isFinite","groupsize","groupsep","decsep","toString","toFixed","split","inArray","splice","join","arr","ignoreNull","total","isArray","css","tag","createStyleSheet","cssText","createElement","getElementsByTagName","appendChild","body","style","WebkitAppearance","simpledraw","useExisting","interact","mhandler","data","canvas","el","getContext","namespaces","v","add","innerWidth","innerHeight","registerCanvas","cleardraw","reset","RangeMapClass","key","range","rangelist","hasOwnProperty","indexOf","value","range_map","$el","currentPageX","currentPageY","splist","tooltip","over","displayTooltips","highlightEnabled","registerSparkline","sp","updateDisplay","$canvas","mouseenter","proxy","mouseleave","click","mouseclick","removeTooltip","e","clickEvent","Event","originalEvent","sparklines","trigger","unbind","bind","mousemove","pageX","pageY","currentEl","updatePosition","spcount","needsRefresh","clearRegionHighlight","tooltiphtml","changeEvent","localX","left","localY","top","setRegionHighlight","getCurrentRegionTooltip","setContent","disableHighlight","sizeStyle","tooltipClassname","sizetipStyle","container","tooltipOffsetX","tooltipOffsetY","sizetip","id","class","appendTo","offsetLeft","offsetTop","hidden","window","updateWindowDims","scrollTop","scrollLeft","scrollRight","getSize","content","html","visibility","x","y","mousex","mousey","userValues","userOptions","each","$this","tmp","getAttribute","innerHTML","alert","is","parents","defaults","sparkline_display_visible","pl","done","closest","extendedOptions","tagOptionType","tagValCache","getTagSetting","mergedOptions","pairs","keyval","prefix","substr","defaultval","tagOption","_base","disabled","currentRegion","initTarget","interactive","canvasWidth","pixelWidth","canvasHeight","pixelHeight","getRegion","newRegion","removeHighlight","renderHighlight","changeHighlight","formats","formatlen","text","showFields","showFieldsKey","newFields","fv","formatter","fieldlen","j","header","entries","getCurrentRegionFields","isNull","suffix","calcHighlightColor","color","parse","mult","rgbnew","highlightColor","lighten","round","parseInt","highlight","newShapes","shapeids","regionShapes","renderRegion","replaceWithShapes","newShape","replaceWithShape","shapes","ids","append","vertices","regionMap","xvalues","yvalues","yminmax","hightlightSpotId","lastShapeId","highlightSpot","highlightLine","vertex","drawCircle","highlightSpotId","insertAfterShape","drawLine","canvasTop","highlightLineId","removeShapeId","scanValues","isStr","valcount","Number","maxy","maxyorg","miny","minyorg","maxx","minx","processRangeOptions","drawNormalRange","canvasLeft","rangey","ytop","drawRect","rangex","yvallast","path","paths","xnext","xpos","xposnext","last","next","yvalcount","lineShapes","fillShapes","plen","valueSpots","hlSpotsEnabled","ceil","pop","drawShape","getLastShapeId","isStackString","groupMin","groupMax","stackRanges","numValues","vlen","xaxisOffset","clipMin","clipMax","stacked","vlist","slen","svals","yoffset","yMaxCalc","stackMin","stackMax","totalBarWidth","stackTotals","stackRangesNeg","abs","canvasHeightEf","colorMapByIndex","colorMapByValue","calcColor","stacknum","valuenum","newColor","yoffsetNeg","minPlotted","allMin","halfHeight","interval","itemWidth","pheight","valueShapes","regiondata","shapeid","getShapeAt","fieldkey","region","shape","renderRange","renderPerformance","renderTarget","rn","rangeval","rangewidth","perfval","perfwidth","targetval","targettop","targetheight","p1","t0","radius","percent","newslice","renderSlice","start","end","circle","PI","drawPieSlice","field","quartiles","loutlier","routlier","lwhisker","rwhisker","iqr","q1","q2","q3","size","unitSize","minValue","maxValue","sort","a","b","appendShape","_pxregex","x1","y1","x2","y2","_genShape","startAngle","endAngle","getElement","_insert","_calculatePixelDims","shapetype","shapeargs","display","verticalAlign","shapeseq","currentTargetShapeId","_getContext","context","strokeStyle","fillStyle","clearRect","_drawShape","beginPath","moveTo","lineTo","stroke","fill","targetX","targetY","isPointInPath","_drawCircle","arc","_drawPieSlice","closePath","_drawRect","sid","first","shapemap","groupel","position","overflow","margin","padding","insertAdjacentHTML","group","children","rendered","prerender","initial","closed","vel","vpath","startx","starty","endx","endy","cos","sin","existing","outerHTML","removeChild"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/jquery/jqtouch.js.map b/static/maps/libs/jquery/jqtouch.js.map index e2d0f1f3323..6f082882971 100644 --- a/static/maps/libs/jquery/jqtouch.js.map +++ b/static/maps/libs/jquery/jqtouch.js.map @@ -1 +1 @@ -{"version":3,"file":"jqtouch.js","sources":["../../../src/libs/jquery/jqtouch.js"],"names":["$","checkTimer","currentPage","currentDialog","currentHash","location","hash","hashPrefix","currentWidth","pageHistory","pageHistoryInfo","newPageCount","fn","jQTouch","options","defaults","fullScreen","slideInSelector","backSelector","flipSelector","slideUpSelector","statusBar","icon","iconIsGlossy","fixedViewport","settings","extend","head","live","history","back","precomposed","append","liveSelectors","push","length","join","jelem","this","attr","transition","is","showPage","setTimeout","unselect","showPageByHref","err","console","log","page","getSelectedPage","startCheck","ianimate","css","speed","window","s","i","webkitTransitionProperty","webkitTransitionDuration","webkitTransitionTimingFunction","x","y","checkOrientAndLocation","innerWidth","currentHeight","innerHeight","orient","document","body","setAttribute","scrollTo","showPageById","slice","backwards","fromPage","animatePages","updatePage","currentIndex","indexOf","index","splice","insertPages","nodes","targetPage","each","appendTo","hasClass","href","data","method","replace","cb","ajax","url","type","success","replaceWith","error","submitForm","serialize","showForm","submit","toPage","clearInterval","flip","slideUpDown","slideInOut","setInterval","obj","preloadImages","imgs","Image","src","direction","dir","parent","webkitPerspective","-webkit-backface-visibility","-webkit-transform","find","opacity","jQuery"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"jqtouch.js","sources":["../../../src/libs/jquery/jqtouch.js"],"names":["$","jQTouch","options","warn","message","undefined","window","console","jQTSettings","debug","addAnimation","animation","animations","push","addTapHandler","tapHandler","tapHandlers","addPageToHistory","page","history","unshift","hash","attr","id","clickHandler","e","$el","target","is","touchSelectors","join","closest","isExternalLink","preventDefault","support","touch","trigger","doNavigation","fromPage","toPage","goingBack","navigationEndHandler","bufferTime","tapBuffer","animationEvents","useAnimations","unbind","removeClass","finalAnimationName","$body","trackScrollPositions","css","data","setTimeout","scroll","each","this","scrollTop","unselect","direction","back","length","fn","hasClass","transform3d","is3d","defaultAnimation","name","replace","reverseAnimation","bind","addClass","lastScroll","pageYOffset","$currentPage","shift","setHash","opposites","up","down","left","right","in","out","getOrientation","orientation","goBack","go","from","to","publicObj","goTo","i","max","nextPage","showPageByHref","hashChangeHandler","location","initHairExtensions","preloadImages","Image","src","precomposed","icon","hairExtensions","icon4","startupScreen","fixedViewport","fullScreen","statusBar","$head","prepend","initFXExtensions","makeActive","obj","getAnimation","el","selector","insertPages","nodes","targetPage","div","document","createElement","innerHTML","children","$node","newPageCount","remove","append","orientationChangeHandler","scrollTo","Math","abs","updateHash","start","WebKitAnimationEvent","TouchEvent","navigator","userAgent","indexOf","useFastTouch","supportForTransform3d","ios5","supportIOS5","extensions","isFunction","extend","j","maxTapHandlers","extTapHandlers","addDefaultTapHandlers","k","maxAnimations","defaults","touchSelector","backSelector","submitSelector","anatomyLessons","body","useTouchScroll","fullScreenClass","standalone","submitHandler","touchStartHandler","startHash","href","method","callback","$referrer","settings","ajax","url","type","success","firstPage","cacheGetRequests","error","$form","eq","formSelector","serialize","submitParentForm","head","style","result","getElementsByTagName","textContent","appendChild","offsetHeight","parentNode","removeChild","REGEX_IOS_VERSION","agentString","test","exec","selectors","on","isDefaultPrevented","prop","params","len","handler","supported","isSupported","flag","prototype","addGlossToIcon","starter","ready","submitForm","addExtension","extension"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/raven.js.map b/static/maps/libs/raven.js.map index 55f81382e09..47afdcf0564 100644 --- a/static/maps/libs/raven.js.map +++ b/static/maps/libs/raven.js.map @@ -1 +1 @@ -{"version":3,"file":"raven.js","sources":["../../src/libs/raven.js"],"names":["window","undefined","triggerEvent","eventType","options","event","key","substr","toUpperCase","document","createEvent","initEvent","createEventObject","hasKey","dispatchEvent","fireEvent","toLowerCase","e","RavenConfigError","message","this","name","parseDSN","str","m","dsnPattern","exec","dsn","i","dsnKeys","pass","isUndefined","what","isFunction","isString","isObject","isEmptyObject","k","isError","objectPrototype","toString","call","Error","object","hasOwnProperty","each","obj","callback","j","length","setAuthQueryString","authQueryString","Raven","VERSION","globalKey","handleStackInfo","stackInfo","frames","stack","frame","normalizeFrame","push","processException","url","lineno","normalized","filename","line","colno","column","function","func","context","extractContextFromFrame","keys","in_app","globalOptions","includePaths","test","fetchContext","pivot","isMinified","slice","type","fileurl","stacktrace","label","ignoreErrors","reverse","truncate","maxMessageLength","ignoreUrls","whitelistUrls","send","objectMerge","exception","value","culprit","obj1","obj2","max","now","Date","getHttpData","http","location","href","headers","User-Agent","navigator","userAgent","referrer","Referer","data","isSetup","project","globalProject","logger","platform","request","tags","extra","session:duration","startTime","globalUser","user","release","dataCallback","shouldSendCallback","lastEventId","event_id","uuid4","makeRequest","img","Image","src","globalServer","encodeURIComponent","JSON","stringify","crossOrigin","onload","onerror","onabort","hasJSON","logDebug","joinRegExp","patterns","pattern","sources","len","replace","source","RegExp","join","c","r","Math","random","v","level","console","debug","afterLoad","RavenConfig","config","install","TraceKit","remoteFetching","collectWindowErrors","linesOfContext","_slice","UNKNOWN_FUNCTION","wrap","wrapped","apply","arguments","report","subscribe","handler","installGlobalHandler","handlers","unsubscribe","splice","unsubscribeAll","uninstallGlobalHandler","notifyHandlers","isWindowError","concat","inner","traceKitWindowOnError","lineNo","colNo","ex","lastExceptionStack","computeStackTrace","augmentStackTraceWithInitialElement","processLastException","guessFunctionName","gatherContext","_oldOnerrorHandler","_onErrorHandlerInstalled","_lastExceptionStack","_lastArgs","lastArgs","lastException","rethrow","args","setTimeout","incomplete","uninstall","loadSource","getXHR","XMLHttpRequest","ActiveXObject","open","responseText","getSource","sourceCache","indexOf","domain","split","reFunctionArgNames","reGuessFunction","maxLines","linesBefore","floor","linesAfter","start","end","min","escapeRegExp","text","escapeCodeAsRegExpForMatchingInsideHTML","body","findSourceInUrls","re","urls","substring","index","lastIndexOf","findSourceInLine","fragment","findSourceByFunctionBody","parts","result","scripts","getElementsByTagName","code","codeRE","eventRE","script","computeStackTraceFromStackProp","element","chrome","gecko","lines","reference","columnNumber","computeStackTraceFromStacktraceProp","testRE","exc","computeStackTraceFromOperaMultiLineMessage","lineRE1","lineRE2","lineRE3","inlineScriptBlocks","item","relativeLine","pos","innerText","midline","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","functionName","funcs","recursion","curr","caller","description","sourceURL","fileName","lineNumber","lastCapturedException","_Raven","isRavenInstalled","Object","prototype","noConflict","uri","lastSlash","path","host","port","protocol","deep","captureException","__raven__","property","__inner__","captureMessage","ex1","msg","setUserContext","setExtraContext","setTagsContext","setReleaseContext","setUser","constructor","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"raven.js","sources":["../../src/libs/raven.js"],"names":["window","undefined","triggerEvent","eventType","options","event","key","substr","toUpperCase","document","createEvent","initEvent","createEventObject","hasKey","dispatchEvent","fireEvent","toLowerCase","e","RavenConfigError","message","this","name","parseDSN","str","m","dsnPattern","exec","dsn","i","dsnKeys","pass","isUndefined","what","isFunction","isString","objectPrototype","toString","call","isObject","isEmptyObject","k","isError","Error","object","hasOwnProperty","each","obj","callback","j","length","setAuthQueryString","authQueryString","Raven","VERSION","globalKey","handleStackInfo","stackInfo","frames","stack","frame","normalizeFrame","push","processException","url","lineno","normalized","filename","line","colno","column","function","func","context","extractContextFromFrame","keys","in_app","globalOptions","includePaths","test","fetchContext","pivot","isMinified","slice","type","fileurl","stacktrace","label","ignoreErrors","reverse","truncate","maxMessageLength","ignoreUrls","whitelistUrls","send","objectMerge","exception","value","culprit","obj1","obj2","max","now","Date","getHttpData","http","location","href","headers","User-Agent","navigator","userAgent","referrer","Referer","data","isSetup","project","globalProject","logger","platform","request","tags","extra","session:duration","startTime","globalUser","user","release","dataCallback","shouldSendCallback","lastEventId","event_id","uuid4","makeRequest","img","newImage","src","globalServer","encodeURIComponent","JSON","stringify","crossOrigin","onload","onerror","onabort","createElement","hasJSON","logDebug","joinRegExp","patterns","pattern","sources","len","replace","source","RegExp","join","c","r","Math","random","v","level","console","debug","afterLoad","RavenConfig","config","install","TraceKit","remoteFetching","collectWindowErrors","linesOfContext","_slice","UNKNOWN_FUNCTION","wrap","wrapped","apply","arguments","report","subscribe","handler","installGlobalHandler","handlers","unsubscribe","splice","unsubscribeAll","uninstallGlobalHandler","notifyHandlers","isWindowError","concat","inner","traceKitWindowOnError","lineNo","colNo","ex","lastExceptionStack","computeStackTrace","augmentStackTraceWithInitialElement","processLastException","guessFunctionName","gatherContext","_oldOnerrorHandler","_onErrorHandlerInstalled","_lastExceptionStack","_lastArgs","lastArgs","lastException","rethrow","args","setTimeout","incomplete","uninstall","loadSource","getXHR","XMLHttpRequest","ActiveXObject","open","responseText","getSource","sourceCache","indexOf","domain","split","reFunctionArgNames","reGuessFunction","maxLines","linesBefore","floor","linesAfter","start","end","min","escapeRegExp","text","escapeCodeAsRegExpForMatchingInsideHTML","body","findSourceInUrls","re","urls","substring","index","lastIndexOf","findSourceInLine","fragment","findSourceByFunctionBody","parts","result","scripts","getElementsByTagName","code","codeRE","eventRE","script","computeStackTraceFromStackProp","element","chrome","gecko","lines","reference","columnNumber","computeStackTraceFromStacktraceProp","testRE","exc","computeStackTraceFromOperaMultiLineMessage","lineRE1","lineRE2","lineRE3","inlineScriptBlocks","item","relativeLine","pos","innerText","midline","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","functionName","funcs","recursion","curr","caller","description","sourceURL","fileName","lineNumber","lastCapturedException","_Raven","isRavenInstalled","Object","prototype","noConflict","uri","lastSlash","path","host","port","protocol","deep","captureException","__raven__","property","__inner__","captureMessage","ex1","msg","setUserContext","setExtraContext","setTagsContext","setReleaseContext","setDataCallback","setShouldSendCallback","setUser","constructor","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/require.js.map b/static/maps/libs/require.js.map index 9df7b9eae12..8dd4949fad9 100644 --- a/static/maps/libs/require.js.map +++ b/static/maps/libs/require.js.map @@ -1 +1 @@ -{"version":3,"file":"require.js","sources":["../../src/libs/require.js"],"names":["requirejs","require","define","global","isFunction","it","ostring","call","isArray","each","ary","func","i","length","eachReverse","hasProp","obj","prop","hasOwn","getOwn","eachProp","mixin","target","source","force","deepStringMixin","value","RegExp","bind","fn","apply","arguments","scripts","document","getElementsByTagName","defaultOnError","err","getGlobal","g","split","part","makeError","id","msg","requireModules","e","Error","requireType","originalError","newContext","contextName","trimDots","splice","normalize","name","baseName","applyMap","pkgMain","mapValue","nameParts","j","nameSegment","lastIndex","foundMap","foundI","foundStarMap","starI","normalizedBaseParts","baseParts","map","config","starMap","nodeIdCompat","jsSuffixRegExp","test","replace","charAt","slice","concat","join","outerLoop","pkgs","removeScript","isBrowser","scriptNode","getAttribute","context","parentNode","removeChild","hasPathFallback","pathConfig","paths","shift","undef","makeRequire","skipMap","splitPrefix","prefix","index","indexOf","substring","makeModuleMap","parentModuleMap","isNormalized","url","pluginModule","suffix","parentName","originalName","isDefine","normalizedName","requireCounter","defined","nameToUrl","unnormalizedCounter","parentMap","unnormalized","getModule","depMap","mod","registry","Module","on","defineEmitComplete","error","onError","errback","ids","notified","events","emit","req","takeGlobalQueue","globalDefQueue","apsp","defQueue","cleanRegistry","enabledRegistry","breakCycle","traced","processed","depMaps","depId","dep","depMatched","defineDep","check","checkLoaded","usingPathFallback","waitInterval","waitSeconds","expired","startTime","Date","getTime","noLoads","reqCalls","stillLoading","needCycleCheck","inCheckLoaded","modId","enabled","push","inited","fetched","isWebWorker","checkLoadedTimeoutId","setTimeout","callGetModule","args","init","removeListener","node","ieName","detachEvent","isOpera","removeEventListener","getScriptData","evt","currentTarget","srcElement","onScriptLoad","onScriptError","intakeDefines","handlers","baseUrl","bundles","shim","undefEvents","urlFetched","bundlesMap","exports","usingExports","module","uri","this","depExports","pluginMaps","depCount","prototype","factory","options","ignore","enable","fetch","enableBuildCallback","deps","callPlugin","load","enabling","cjsModule","defining","execCb","undefined","requireMap","onResourceLoad","defineEmitted","pluginMap","plugin","normalizedMap","normalizedMod","bundleId","localRequire","fromText","text","textAlt","moduleName","moduleMap","hasInteractive","useInteractive","exec","completeLoad","handler","cb","cbs","nextTick","configure","cfg","objs","v","exportsFn","makeShimExports","packages","pkgObj","location","main","currDirRegExp","callback","ret","relMap","requireMod","__requireJsBuild","get","toUrl","moduleNamePlusExt","ext","lastIndexOf","segment","isRelative","specified","found","shExports","enforceDefine","skipExt","syms","parentModule","parentPath","jsExtRegExp","match","urlArgs","type","readyRegExp","readyState","interactiveScript","data","getInteractiveScript","script","s","head","baseElement","dataMain","src","currentlyAddingScript","mainScript","subPath","version","commentRegExp","cjsRequireRegExp","op","Object","toString","hasOwnProperty","ap","Array","window","navigator","importScripts","platform","defContextName","opera","contexts","optional","ctx","createNode","xhtml","createElementNS","createElement","scriptType","charset","async","setAttribute","attachEvent","addEventListener","insertBefore","appendChild","skipDataMain","pop","amd","jQuery","eval"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"require.js","sources":["../../src/libs/require.js"],"names":["requirejs","require","define","global","isFunction","it","ostring","call","isArray","each","ary","func","i","length","eachReverse","hasProp","obj","prop","hasOwn","getOwn","eachProp","mixin","target","source","force","deepStringMixin","value","RegExp","bind","fn","apply","arguments","scripts","document","getElementsByTagName","defaultOnError","err","getGlobal","g","split","part","makeError","id","msg","requireModules","e","Error","requireType","originalError","newContext","contextName","trimDots","splice","normalize","name","baseName","applyMap","pkgMain","mapValue","nameParts","j","nameSegment","lastIndex","foundMap","foundI","foundStarMap","starI","normalizedBaseParts","baseParts","map","config","starMap","nodeIdCompat","jsSuffixRegExp","test","replace","charAt","slice","concat","join","outerLoop","pkgs","removeScript","isBrowser","scriptNode","getAttribute","context","parentNode","removeChild","hasPathFallback","pathConfig","paths","shift","undef","makeRequire","skipMap","splitPrefix","prefix","index","indexOf","substring","makeModuleMap","parentModuleMap","isNormalized","url","pluginModule","suffix","parentName","originalName","isDefine","normalizedName","requireCounter","defined","nameToUrl","unnormalizedCounter","parentMap","unnormalized","getModule","depMap","mod","registry","Module","on","defineEmitComplete","error","onError","errback","ids","notified","events","emit","req","takeGlobalQueue","globalDefQueue","queueItem","defQueueMap","defQueue","push","cleanRegistry","enabledRegistry","breakCycle","traced","processed","depMaps","depId","dep","depMatched","defineDep","check","checkLoaded","usingPathFallback","waitInterval","waitSeconds","expired","startTime","Date","getTime","noLoads","reqCalls","stillLoading","needCycleCheck","inCheckLoaded","modId","enabled","inited","fetched","isWebWorker","checkLoadedTimeoutId","setTimeout","callGetModule","args","init","removeListener","node","ieName","detachEvent","isOpera","removeEventListener","getScriptData","evt","currentTarget","srcElement","onScriptLoad","onScriptError","intakeDefines","handlers","baseUrl","bundles","shim","undefEvents","urlFetched","bundlesMap","exports","usingExports","module","uri","this","depExports","pluginMaps","depCount","prototype","factory","options","ignore","enable","fetch","enableBuildCallback","deps","callPlugin","load","enabling","cjsModule","defining","execCb","undefined","requireMap","onResourceLoad","defineEmitted","pluginMap","plugin","normalizedMap","normalizedMod","bundleId","localRequire","fromText","text","textAlt","moduleName","moduleMap","hasInteractive","useInteractive","exec","completeLoad","handler","undefed","cb","cbs","nextTick","configure","cfg","objs","v","exportsFn","makeShimExports","packages","pkgObj","location","main","currDirRegExp","callback","ret","relMap","requireMod","__requireJsBuild","get","toUrl","moduleNamePlusExt","ext","lastIndexOf","segment","isRelative","specified","found","shExports","enforceDefine","skipExt","syms","parentModule","parentPath","jsExtRegExp","match","urlArgs","type","readyRegExp","readyState","interactiveScript","data","getInteractiveScript","script","s","head","baseElement","dataMain","src","currentlyAddingScript","mainScript","subPath","version","commentRegExp","cjsRequireRegExp","op","Object","toString","hasOwnProperty","ap","Array","window","navigator","importScripts","platform","defContextName","opera","contexts","optional","ctx","createNode","xhtml","createElementNS","createElement","scriptType","charset","async","onNodeCreated","setAttribute","attachEvent","addEventListener","insertBefore","appendChild","skipDataMain","pop","amd","jQuery","eval"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/tracekit.js.map b/static/maps/libs/tracekit.js.map index 2c1fe9d8149..63cf7315bb4 100644 --- a/static/maps/libs/tracekit.js.map +++ b/static/maps/libs/tracekit.js.map @@ -1 +1 @@ -{"version":3,"file":"tracekit.js","sources":["../../src/libs/tracekit.js"],"names":["window","_has","object","key","Object","prototype","hasOwnProperty","call","_isUndefined","what","TraceKit","_oldTraceKit","_slice","slice","UNKNOWN_FUNCTION","noConflict","wrap","func","wrapped","apply","this","arguments","e","report","subscribe","handler","installGlobalHandler","handlers","push","unsubscribe","i","length","splice","notifyHandlers","stack","windowError","exception","collectWindowErrors","concat","inner","traceKitWindowOnError","message","url","lineNo","lastExceptionStack","computeStackTrace","augmentStackTraceWithInitialElement","lastException","location","line","guessFunctionName","context","gatherContext","mode","document","href","useragent","navigator","userAgent","_oldOnerrorHandler","_onErrorHandlerInstalled","onerror","ex","args","s","setTimeout","incomplete","loadSource","remoteFetching","getXHR","XMLHttpRequest","ActiveXObject","request","open","send","responseText","getSource","sourceCache","source","indexOf","domain","split","m","reFunctionArgNames","reGuessFunction","maxLines","exec","linesBefore","Math","floor","linesOfContext","linesAfter","start","max","end","min","escapeRegExp","text","replace","escapeCodeAsRegExpForMatchingInsideHTML","body","findSourceInUrls","re","urls","j","join","substring","index","column","lastIndexOf","findSourceInLine","fragment","RegExp","findSourceByFunctionBody","parts","result","scripts","getElementsByTagName","code","codeRE","eventRE","script","src","name","event","computeStackTraceFromStackProp","element","chrome","gecko","lines","reference","computeStackTraceFromStacktraceProp","stacktrace","testRE","exc","computeStackTraceFromOperaMultiLineMessage","len","lineRE1","lineRE2","lineRE3","inlineScriptBlocks","item","relativeLine","pos","innerText","midline","stackInfo","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","functionName","funcs","recursion","curr","caller","toString","description","sourceURL","fileName","lineNumber","debug","computeStackTraceOfCaller","Error","ofCaller","_helper","fnName","originalFn","originalCallback"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tracekit.js","sources":["../../src/libs/tracekit.js"],"names":["window","_has","object","key","Object","prototype","hasOwnProperty","call","_isUndefined","what","TraceKit","_oldTraceKit","_slice","slice","UNKNOWN_FUNCTION","noConflict","wrap","func","wrapped","apply","this","arguments","e","report","subscribe","handler","installGlobalHandler","handlers","push","unsubscribe","i","length","splice","notifyHandlers","stack","isWindowError","exception","collectWindowErrors","concat","inner","traceKitWindowOnError","message","url","lineNo","columnNo","errorObj","computeStackTrace","lastExceptionStack","augmentStackTraceWithInitialElement","lastException","location","line","column","guessFunctionName","context","gatherContext","mode","document","href","useragent","navigator","userAgent","_oldOnerrorHandler","_onErrorHandlerInstalled","onerror","ex","args","s","setTimeout","incomplete","loadSource","remoteFetching","getXHR","XMLHttpRequest","ActiveXObject","request","open","send","responseText","getSource","sourceCache","source","indexOf","domain","split","m","reFunctionArgNames","reGuessFunction","maxLines","exec","linesBefore","Math","floor","linesOfContext","linesAfter","start","max","end","min","escapeRegExp","text","replace","escapeCodeAsRegExpForMatchingInsideHTML","body","findSourceInUrls","re","urls","j","join","substring","index","lastIndexOf","findSourceInLine","fragment","RegExp","findSourceByFunctionBody","parts","result","scripts","getElementsByTagName","code","codeRE","eventRE","script","src","name","event","computeStackTraceFromStackProp","element","chrome","gecko","winjs","lines","reference","columnNumber","computeStackTraceFromStacktraceProp","stacktrace","testRE","exc","computeStackTraceFromOperaMultiLineMessage","len","lineRE1","lineRE2","lineRE3","inlineScriptBlocks","item","relativeLine","pos","innerText","midline","stackInfo","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","functionName","funcs","recursion","curr","caller","toString","input","description","sourceURL","fileName","lineNumber","debug","computeStackTraceOfCaller","Error","ofCaller","extendToAsynchronousCallbacks","_helper","fnName","originalFn","originalCallback","global"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/form/form-select-content.js.map b/static/maps/mvc/form/form-select-content.js.map index f24e5f85588..5f84d12f797 100644 --- a/static/maps/mvc/form/form-select-content.js.map +++ b/static/maps/mvc/form/form-select-content.js.map @@ -1 +1 @@ -{"version":3,"file":"form-select-content.js","sources":["../../../src/mvc/form/form-select-content.js"],"names":["define","Utils","Ui","history","View","Backbone","extend","initialize","app","options","this","self","setElement","list","radio_buttons","mode","type","multiple","current","extensions","textify","hda_error","hdca_error","push","icon","value","tooltip","select_single","Select","optional","error_text","onchange","trigger","field","select_multiple","searchable","select_collection","button_type","RadioButton","data","refresh","$batch","$","template_batch","n_buttons","_","size","button_width","$el","append","Math","max","i","css","margin-left","update","undefined","on","wait","unwait","_update","select_options","item","label","hid","name","id","src","hda","hdca","new_value","values","length","err","console","debug","id_list","_select","Array","result","batch","_batch","details","sort","a","b","show","hide","map_over_type"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"form-select-content.js","sources":["../../../src/mvc/form/form-select-content.js"],"names":["define","Utils","Ui","View","Backbone","extend","initialize","app","options","this","history","self","setElement","list","radio_buttons","mode","type","multiple","current","extensions","textify","hda_error","hdca_error","push","icon","value","tooltip","select_single","Select","optional","error_text","onchange","trigger","field","select_multiple","searchable","select_collection","button_type","RadioButton","data","refresh","$batch","$","template_batch","n_buttons","_","size","button_width","$el","append","Math","max","i","css","margin-left","update","undefined","on","wait","unwait","_update","select_options","item","label","hid","name","id","src","hda","hdca","new_value","values","length","err","console","debug","id_list","_select","Array","result","batch","_batch","details","sort","a","b","show","hide","map_over_type"],"mappings":"AACAA,QAAQ,cAAe,iBAAkB,iBAAkB,4BACnD,SAASC,EAAOC,GAGxB,GAAIC,GAAOC,SAASD,KAAKE,QAErBC,WAAa,SAASC,EAAKC,GAEvBC,KAAKF,IAAMA,EACXE,KAAKD,QAAUA,EAGfC,KAAKC,UAIL,IAAIC,GAAOF,IAGXA,MAAKG,WAAW,oCAGhBH,KAAKI,OAGL,IAAIC,KAIAL,MAAKM,KADW,mBAAhBP,EAAQQ,KACI,aAERR,EAAQS,SACI,WAEA,SAKpBR,KAAKS,QAAUT,KAAKM,KACpBN,KAAKI,OAGL,IAAIM,GAAalB,EAAMmB,QAAQZ,EAAQW,YACnCE,EAAY,uBACZF,KACAE,EAAY,MAAQF,EAAa,sBAErC,IAAIG,GAAa,4BACbH,KACAG,EAAa,MAAQH,EAAa,kCAIrB,UAAbV,KAAKM,OACLD,EAAcS,MACVC,KAAU,YACVC,MAAU,SACVC,QAAU,mBAEdjB,KAAKkB,cAAgB,GAAIzB,GAAG0B,OAAOzB,MAC/B0B,SAAcrB,EAAQqB,SACtBC,WAAcT,EACdU,SAAc,WACVpB,EAAKqB,QAAQ,aAGrBvB,KAAKI,KAAa,QACdoB,MAAOxB,KAAKkB,cACZX,KAAO,SAKE,UAAbP,KAAKM,MAAiC,YAAbN,KAAKM,QAC9BD,EAAcS,MACVC,KAAU,aACVC,MAAU,WACVC,QAAU,sBAEdjB,KAAKyB,gBAAkB,GAAIhC,GAAG0B,OAAOzB,MACjCc,UAAc,EACdkB,YAAc,EACdN,SAAcrB,EAAQqB,SACtBC,WAAcT,EACdU,SAAc,WACVpB,EAAKqB,QAAQ,aAGrBvB,KAAKI,KAAe,UAChBoB,MAAOxB,KAAKyB,gBACZlB,KAAO,SAKE,UAAbP,KAAKM,MAAiC,YAAbN,KAAKM,MAAmC,cAAbN,KAAKM,QACzDD,EAAcS,MACVC,KAAU,cACVC,MAAU,aACVC,QAAU,uBAEdjB,KAAK2B,kBAAoB,GAAIlC,GAAG0B,OAAOzB,MACnC2B,WAAcR,EACdO,SAAcrB,EAAQqB,SACtBE,SAAc,WACVpB,EAAKqB,QAAQ,aAGrBvB,KAAKI,KAAiB,YAClBoB,MAAOxB,KAAK2B,kBACZpB,KAAO,SAKfP,KAAK4B,YAAc,GAAInC,GAAGoC,YAAYnC,MAClCsB,MAAUhB,KAAKS,QACfqB,KAAUzB,EACViB,SAAU,SAASN,GACfd,EAAKO,QAAUO,EACfd,EAAK6B,UACL7B,EAAKqB,QAAQ,aAKrBvB,KAAKgC,OAASC,EAAEjC,KAAKkC,iBAGrB,IAAIC,GAAYC,EAAEC,KAAKrC,KAAKI,MAGxBkC,EAAe,CACfH,GAAY,IACZnC,KAAKuC,IAAIC,OAAOxC,KAAK4B,YAAYW,KACjCD,EAAeG,KAAKC,IAAI,EAAuB,GAApBN,EAAEC,KAAKrC,KAAKI,OAAc,KAIzD,KAAK,GAAIuC,KAAK3C,MAAKI,KACfJ,KAAKuC,IAAIC,OAAOxC,KAAKI,KAAKuC,GAAGnB,MAAMe,IAAIK,KACnCC,cAAeP,IAKvBtC,MAAKuC,IAAIC,OAAOxC,KAAKgC,OAAOY,KACxBC,cAAeP,KAInBtC,KAAK8C,OAAO/C,EAAQ+B,MAGOiB,SAAvB/C,KAAKD,QAAQiB,OACbhB,KAAKgB,MAAMhB,KAAKD,QAAQiB,OAI5BhB,KAAK+B,UAGL/B,KAAKgD,GAAG,SAAU,WACVjD,EAAQuB,UACRvB,EAAQuB,SAASpB,EAAKc,YAMlCiC,KAAM,WACF,IAAK,GAAIN,KAAK3C,MAAKI,KACfJ,KAAKI,KAAKuC,GAAGnB,MAAMyB,QAK3BC,OAAQ,WACJ,IAAK,GAAIP,KAAK3C,MAAKI,KACfJ,KAAKI,KAAKuC,GAAGnB,MAAM0B,UAK3BJ,OAAQ,SAAS/C,GAGb,QAASoD,GAAQ3B,EAAOzB,GACpB,GAAIyB,EAAO,CAEP,GAAI4B,KACJ,KAAK,GAAIT,KAAK5C,GAAS,CACnB,GAAIsD,GAAOtD,EAAQ4C,EACnBS,GAAetC,MACXwC,MAAOD,EAAKE,IAAM,KAAOF,EAAKG,KAC9BxC,MAAOqC,EAAKI,KAGhBvD,EAAKD,QAAQoD,EAAKI,GAAK,IAAMJ,EAAKK,KAAOL,EAG7C7B,EAAMsB,OAAOM,IAfrB,GAAIlD,GAAOF,IAoBXmD,GAAQnD,KAAKkB,cAAenB,EAAQ4D,KACpCR,EAAQnD,KAAKyB,gBAAiB1B,EAAQ4D,KACtCR,EAAQnD,KAAK2B,kBAAmB5B,EAAQ6D,OAI5C5C,MAAQ,SAAU6C,GAEd,GAAkBd,SAAdc,EACA,GAAIA,GAAaA,EAAUC,OACvB,IAEI,GAAI1D,KACJ,KAAK,GAAIuC,KAAKkB,GAAUC,OACpB1D,EAAKU,KAAK+C,EAAUC,OAAOnB,GAAGc,GAI9BI,IAAaA,EAAUC,OAAOC,OAAS,GAAgC,QAA3BF,EAAUC,OAAO,GAAGJ,KAChE1D,KAAKS,QAAU,aACfT,KAAK2B,kBAAkBX,MAAMZ,EAAK,KAEjB,YAAbJ,KAAKM,MACLN,KAAKS,QAAU,WACfT,KAAKyB,gBAAgBT,MAAMZ,KAE3BJ,KAAKS,QAAU,SACfT,KAAKkB,cAAcF,MAAMZ,EAAK,KAGxC,MAAO4D,GACLC,QAAQC,MAAM,gDAGlB,KAAK,GAAIvB,KAAK3C,MAAKI,KACfJ,KAAKI,KAAKuC,GAAGnB,MAAMR,MAAM,KAMrChB,MAAK+B,SAGL,IAAIoC,GAAUnE,KAAKoE,UAAUpD,OAC7B,IAAgB,OAAZmD,EACA,MAAO,KASX,IALMA,YAAmBE,SACrBF,GAAWA,IAIQ,IAAnBA,EAAQJ,OACR,MAAO,KAIX,IAAIO,IACAC,MAAUvE,KAAKwE,SACfV,UAIJ,KAAK,GAAInB,KAAKwB,GAAS,CACnB,GAAIM,GAAUzE,KAAKC,QAAQkE,EAAQxB,GAAK,IAAM3C,KAAKI,KAAKJ,KAAKS,SAASF,KACtE,KAAIkE,EAGA,MAAO,KAFPH,GAAOR,OAAOhD,KAAK2D,GAY3B,MALAH,GAAOR,OAAOY,KAAK,SAASC,EAAGC,GAC3B,MAAOD,GAAEpB,IAAMqB,EAAErB,MAIde,GAIXvC,QAAS,WACL/B,KAAK4B,YAAYZ,MAAMhB,KAAKS,QAC5B,KAAK,GAAIkC,KAAK3C,MAAKI,KAAM,CACrB,GAAImC,GAAMvC,KAAKI,KAAKuC,GAAGnB,MAAMe,GACzBvC,MAAKS,SAAWkC,EAChBJ,EAAIsC,OAEJtC,EAAIuC,OAGR9E,KAAKwE,SACLxE,KAAKgC,OAAO6C,OAEZ7E,KAAKgC,OAAO8C,QAKpBV,QAAS,WACL,MAAOpE,MAAKI,KAAKJ,KAAKS,SAASe,OAInCgD,OAAQ,WACJ,GAAoB,cAAhBxE,KAAKS,QAAyB,CAC9B,GAAImD,GAAO5D,KAAKC,QAAQD,KAAKoE,UAAUpD,QAAU,QACjD,IAAI4C,GAAQA,EAAKmB,cACb,OAAO,EAGf,MAAoB,UAAhB/E,KAAKS,SACY,UAAbT,KAAKM,MACE,GAGR,GAIX4B,eAAgB,WACZ,MAAQ,qMAOhB,QACIxC,KAAMA"} \ No newline at end of file diff --git a/static/maps/mvc/history/history-model.js.map b/static/maps/mvc/history/history-model.js.map index 1faf46eae67..90d6e40cf7b 100644 --- a/static/maps/mvc/history/history-model.js.map +++ b/static/maps/mvc/history/history-model.js.map @@ -1 +1 @@ -{"version":3,"file":"history-model.js","sources":["../../../src/mvc/history/history-model.js"],"names":["define","HISTORY_CONTENTS","BASE_MVC","History","Backbone","Model","extend","LoggableMixin","mixin","SearchableModelMixin","defaults","model_class","id","name","state","diskSize","deleted","urlRoot","galaxy_config","root","initialize","historyJSON","contentsJSON","options","this","logger","log","contents","HistoryContents","historyId","get","_setUpListeners","updateTimeoutId","on","model","xhr","msg","details","errorHandler","listenTo","trigger","apply","concat","jQuery","makeArray","arguments","newId","clearUpdateTimeout","ownedByCurrUser","Galaxy","currUser","isAnonymous","contentsCount","_","reduce","values","memo","num","searchAttributes","searchAliases","title","tag","checkForUpdates","onReadyCallback","running","length","setUpdateTimeout","isFunction","call","delay","UPDATE_DELAY","history","setTimeout","refresh","clearTimeout","detailIds","data","join","fetch","done","_delete","when","save","purge","purged","undelete","copy","current","undefined","Error","postData","history_id","post","then","response","newHistory","setAsCurrent","getJSON","toString","getHistoryData","getHistory","ajax","isEmpty","historyData","empty","getContents","detailIdsFn","hdcaDetailIds","dataset_details","dataset_collection_details","df","Deferred","historyFn","contentsFn","historyXHR","json","notify","status","fail","reject","contentsXHR","resolve","HistoryCollection","Collection","window","models","includeDeleted","setUpListeners","collection","debug","remove","original","newData","unshift","create","hdas","historyOptions"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"history-model.js","sources":["../../../src/mvc/history/history-model.js"],"names":["define","HISTORY_CONTENTS","UTILS","BASE_MVC","History","Backbone","Model","extend","LoggableMixin","mixin","SearchableModelMixin","defaults","model_class","id","name","state","diskSize","deleted","urlRoot","galaxy_config","root","initialize","historyJSON","contentsJSON","options","this","logger","log","contents","HistoryContents","historyId","get","_setUpListeners","updateTimeoutId","on","model","xhr","msg","details","errorHandler","listenTo","trigger","apply","concat","jQuery","makeArray","arguments","newId","clearUpdateTimeout","nice_size","bytesToString","toJSON","_","prototype","call","key","ownedByCurrUser","Galaxy","currUser","isAnonymous","contentsCount","reduce","values","memo","num","searchAttributes","searchAliases","title","tag","checkForUpdates","onReadyCallback","running","length","setUpdateTimeout","isFunction","delay","UPDATE_DELAY","history","setTimeout","refresh","clearTimeout","detailIds","data","join","fetch","done","_delete","when","save","purge","purged","undelete","copy","current","undefined","Error","postData","history_id","post","then","response","newHistory","setAsCurrent","getJSON","toString","getHistoryData","getHistory","ajax","isEmpty","historyData","empty","getContents","detailIdsFn","hdcaDetailIds","dataset_details","dataset_collection_details","df","Deferred","historyFn","contentsFn","historyXHR","json","notify","status","fail","reject","contentsXHR","resolve","HistoryCollection","Collection","window","models","includeDeleted","setUpListeners","collection","debug","remove","original","newData","unshift","create","hdas","historyOptions"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/history/history-panel-edit.js.map b/static/maps/mvc/history/history-panel-edit.js.map index f41be6bf8e2..a5f518c9209 100644 --- a/static/maps/mvc/history/history-panel-edit.js.map +++ b/static/maps/mvc/history/history-panel-edit.js.map @@ -1 +1 @@ -{"version":3,"file":"history-panel-edit.js","sources":["../../../src/mvc/history/history-panel-edit.js"],"names":["define","HPANEL","HISTORY_CONTENTS","STATES","HDA_MODEL","HDA_LI_EDIT","HDCA_LI_EDIT","TAGS","ANNOTATIONS","LIST_COLLECTION_CREATOR","PAIR_COLLECTION_CREATOR","LIST_OF_PAIRS_COLLECTION_CREATOR","faIconButton","PopupMenu","_l","_super","HistoryPanel","HistoryPanelEdit","extend","HDAViewClass","HDAListItemEdit","HDCAViewClass","HDCAListItemEdit","initialize","attributes","prototype","call","this","tagsEditor","annotationEditor","purgeAllowed","annotationEditorShown","tagsEditorShown","_setUpListeners","panel","on","ev","data","dataDropped","dropTargetOff","_renderCounts","_setUpCollectionListeners","collection","_handleHdaDeletionChange","_handleHdaVisibleChange","model","fetch","_setUpModelListeners","updateHistoryDiskSize","_buildNewRender","$newRender","Galaxy","currUser","id","get","_renderTags","_renderAnnotation","renderItems","$whereTo","views","toggleLink","_class","text","join","$el","deleted","where","hidden","visible","msgs","length","push","showDeleted","showHidden","find","html","$where","TagsEditor","el","onshowFirstTime","render","onshow","toggleHDATagEditors","fxSpeed","onhide","$activator","title","classes","faIcon","appendTo","AnnotationEditor","toggleHDAAnnotationEditors","_setUpBehaviors","isAnonymous","nameSelector","attr","tooltip","placement","make_text_editable","on_finish","newName","previousName","save","name","fail","previous","multiselectActions","actions","func","action","HistoryDatasetAssociation","hide","getSelectedModels","ajaxQueue","unhide","undelete","confirm","purge","concat","_collectionActions","createListCollection","done","refresh","createPairCollection","createListOfPairsCollection","_attachItems","$list","append","reverse","map","view","_attachView","unshift","prepend","trigger","slideDown","_getItemViewOptions","options","_","itemModel","removeItemView","args","Array","slice","arguments","each","toggle","apply","events","clone","click .show-selectors-btn","click .toggle-deleted-link","toggleShowDeleted","click .toggle-hidden-link","toggleShowHidden","dropTargetOn","dropTarget","dropHandlers","dragenter","bind","dragover","dragleave","drop","$dropTarget","_renderDropTarget","before","_renderDropTargetHelp","evName","hasOwnProperty","$","remove","addClass","css","height","margin","border","border-radius","color","font-size","font-style","_dropHandlers","off","dropTargetToggle","preventDefault","stopPropagation","dataTransfer","dropEffect","getData","JSON","parse","err","warn","isObject","model_class","contents","copy","jQuery","when","toString"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"history-panel-edit.js","sources":["../../../src/mvc/history/history-panel-edit.js"],"names":["define","HPANEL","HISTORY_CONTENTS","STATES","HDA_MODEL","HDA_LI_EDIT","HDCA_LI_EDIT","TAGS","ANNOTATIONS","LIST_COLLECTION_CREATOR","PAIR_COLLECTION_CREATOR","LIST_OF_PAIRS_COLLECTION_CREATOR","faIconButton","PopupMenu","_l","_super","HistoryPanel","HistoryPanelEdit","extend","HDAViewClass","HDAListItemEdit","HDCAViewClass","HDCAListItemEdit","initialize","attributes","prototype","call","this","tagsEditor","annotationEditor","purgeAllowed","annotationEditorShown","tagsEditorShown","_setUpListeners","panel","on","ev","data","dataDropped","dropTargetOff","_renderCounts","_setUpCollectionListeners","collection","_handleHdaDeletionChange","_handleHdaVisibleChange","model","fetch","_setUpModelListeners","updateHistoryDiskSize","_buildNewRender","$newRender","Galaxy","currUser","id","get","_renderTags","_renderAnnotation","renderItems","$whereTo","views","toggleLink","_class","text","join","$el","deleted","where","hidden","visible","msgs","length","push","showDeleted","showHidden","find","html","$where","TagsEditor","el","onshowFirstTime","render","onshow","toggleHDATagEditors","fxSpeed","onhide","$activator","title","classes","faIcon","appendTo","AnnotationEditor","toggleHDAAnnotationEditors","_setUpBehaviors","isAnonymous","nameSelector","attr","tooltip","placement","make_text_editable","on_finish","newName","previousName","save","name","fail","previous","multiselectActions","actions","func","action","HistoryDatasetAssociation","hide","getSelectedModels","ajaxQueue","unhide","undelete","confirm","purge","concat","_collectionActions","createListCollection","done","refresh","createPairCollection","createListOfPairsCollection","_attachItems","$list","append","reverse","map","view","_attachView","unshift","prepend","trigger","slideDown","_getItemViewOptions","options","_","itemModel","removeItemView","args","Array","slice","arguments","each","toggle","apply","events","clone","click .show-selectors-btn","click .toggle-deleted-link","toggleShowDeleted","click .toggle-hidden-link","toggleShowHidden","dropTargetOn","dropTarget","dropHandlers","dragenter","bind","dragover","dragleave","drop","$dropTarget","_renderDropTarget","before","_renderDropTargetHelp","evName","hasOwnProperty","$","remove","addClass","css","height","margin","border","border-radius","color","font-size","font-style","_dropHandlers","off","dropTargetToggle","preventDefault","stopPropagation","dataTransfer","dropEffect","getData","JSON","parse","err","warn","isObject","model_class","contents","copy","jQuery","when","toString"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/ui/ui-select-library.js.map b/static/maps/mvc/ui/ui-select-library.js.map index fa57eb3ba80..8285d283879 100644 --- a/static/maps/mvc/ui/ui-select-library.js.map +++ b/static/maps/mvc/ui/ui-select-library.js.map @@ -1 +1 @@ -{"version":3,"file":"ui-select-library.js","sources":["../../../src/mvc/ui/ui-select-library.js"],"names":["define","Utils","Ui","Table","List","Libraries","Backbone","Collection","extend","url","galaxy_config","root","LibraryDatasets","initialize","self","this","config","Model","library_id","on","fetch","reset","get","View","options","libraries","datasets","library_select","Select","onchange","value","set","dataset_list","name","optional","multiple","trigger","data","each","model","push","id","label","update","library_current","text","setElement","_template","$","append","$el","success","undefined","val"],"mappings":"AACAA,QAAQ,cAAe,iBAAkB,kBAAmB,kBACpD,SAASC,EAAOC,EAAIC,EAAOC,GAGnC,GAAIC,GAAYC,SAASC,WAAWC,QAChCC,IAAKC,cAAcC,KAAO,kBAI1BC,EAAkBN,SAASC,WAAWC,QACtCK,WAAY,WACR,GAAIC,GAAOC,IACXA,MAAKC,OAAS,GAAIV,UAASW,OAAQC,WAAY,OAC/CH,KAAKC,OAAOG,GAAG,SAAU,WACrBL,EAAKM,OAAQC,OAAO,OAG5BZ,IAAK,WACD,MAAOC,eAAcC,KAAO,iBAAmBI,KAAKC,OAAOM,IAAI,cAAgB,eAKnFC,EAAOjB,SAASiB,KAAKf,QAErBK,WAAa,SAASW,GAElB,GAAIV,GAAOC,IAGXA,MAAKU,UAAa,GAAIpB,GACtBU,KAAKW,SAAa,GAAId,GAGtBG,KAAKS,QAAUA,EAIfT,KAAKY,eAAiB,GAAIzB,GAAG0B,OAAOL,MAChCM,SAAc,SAASC,GACnBhB,EAAKY,SAASV,OAAOe,IAAI,aAAcD,MAK/Cf,KAAKiB,aAAe,GAAI5B,GAAKmB,MACzBU,KAAc,UACdC,SAAcV,EAAQU,SACtBC,SAAcX,EAAQW,SACtBN,SAAc,WACVf,EAAKsB,QAAQ,aAKrBrB,KAAKU,UAAUN,GAAG,QAAS,WACvB,GAAIkB,KACJvB,GAAKW,UAAUa,KAAK,SAASC,GACzBF,EAAKG,MACDV,MAAUS,EAAME,GAChBC,MAAUH,EAAMjB,IAAI,YAG5BR,EAAKa,eAAegB,OAAON,KAI/BtB,KAAKW,SAASP,GAAG,QAAS,WACtB,GAAIkB,MACAO,EAAkB9B,EAAKa,eAAekB,MAClB,QAApBD,GACA9B,EAAKY,SAASY,KAAK,SAASC,GACE,SAAtBA,EAAMjB,IAAI,SACVe,EAAKG,MACDV,MAAUS,EAAME,GAChBC,MAAUH,EAAMjB,IAAI,YAKpCR,EAAKkB,aAAaW,OAAON,KAI7BtB,KAAKI,GAAG,SAAU,WACdK,EAAQK,UAAYL,EAAQK,SAASf,EAAKgB,WAI9Cf,KAAK+B,WAAW/B,KAAKgC,aACrBhC,KAAKiC,EAAE,mBAAmBC,OAAOlC,KAAKY,eAAeuB,KACrDnC,KAAKmC,IAAID,OAAOlC,KAAKiB,aAAakB,KAGlCnC,KAAKU,UAAUL,OACXC,OAAO,EACP8B,QAAS,WACLrC,EAAKa,eAAeS,QAAQ,UACDgB,SAAvBtC,EAAKU,QAAQM,OACbhB,EAAKgB,MAAMhB,EAAKU,QAAQM,WAOxCA,MAAO,SAASuB,GACZ,MAAOtC,MAAKiB,aAAaF,MAAMuB,IAInCN,UAAW,WACP,MAAQ,qKAShB,QACIxB,KAAMA"} \ No newline at end of file +{"version":3,"file":"ui-select-library.js","sources":["../../../src/mvc/ui/ui-select-library.js"],"names":["define","Utils","Ui","Table","List","Libraries","Backbone","Collection","extend","url","galaxy_config","root","LibraryDatasets","initialize","self","this","config","Model","library_id","on","fetch","reset","get","View","options","libraries","datasets","library_select","Select","onchange","value","set","dataset_list","name","optional","multiple","trigger","data","each","model","push","id","label","update","library_current","text","setElement","_template","$","append","$el","success","undefined","val"],"mappings":"AACAA,QAAQ,cAAe,iBAAkB,kBAAmB,kBACpD,SAASC,EAAOC,EAAIC,EAAOC,GAGnC,GAAIC,GAAYC,SAASC,WAAWC,QAChCC,IAAKC,cAAcC,KAAO,gCAI1BC,EAAkBN,SAASC,WAAWC,QACtCK,WAAY,WACR,GAAIC,GAAOC,IACXA,MAAKC,OAAS,GAAIV,UAASW,OAAQC,WAAY,OAC/CH,KAAKC,OAAOG,GAAG,SAAU,WACrBL,EAAKM,OAAQC,OAAO,OAG5BZ,IAAK,WACD,MAAOC,eAAcC,KAAO,iBAAmBI,KAAKC,OAAOM,IAAI,cAAgB,eAKnFC,EAAOjB,SAASiB,KAAKf,QAErBK,WAAa,SAASW,GAElB,GAAIV,GAAOC,IAGXA,MAAKU,UAAa,GAAIpB,GACtBU,KAAKW,SAAa,GAAId,GAGtBG,KAAKS,QAAUA,EAIfT,KAAKY,eAAiB,GAAIzB,GAAG0B,OAAOL,MAChCM,SAAc,SAASC,GACnBhB,EAAKY,SAASV,OAAOe,IAAI,aAAcD,MAK/Cf,KAAKiB,aAAe,GAAI5B,GAAKmB,MACzBU,KAAc,UACdC,SAAcV,EAAQU,SACtBC,SAAcX,EAAQW,SACtBN,SAAc,WACVf,EAAKsB,QAAQ,aAKrBrB,KAAKU,UAAUN,GAAG,QAAS,WACvB,GAAIkB,KACJvB,GAAKW,UAAUa,KAAK,SAASC,GACzBF,EAAKG,MACDV,MAAUS,EAAME,GAChBC,MAAUH,EAAMjB,IAAI,YAG5BR,EAAKa,eAAegB,OAAON,KAI/BtB,KAAKW,SAASP,GAAG,QAAS,WACtB,GAAIkB,MACAO,EAAkB9B,EAAKa,eAAekB,MAClB,QAApBD,GACA9B,EAAKY,SAASY,KAAK,SAASC,GACE,SAAtBA,EAAMjB,IAAI,SACVe,EAAKG,MACDV,MAAUS,EAAME,GAChBC,MAAUH,EAAMjB,IAAI,YAKpCR,EAAKkB,aAAaW,OAAON,KAI7BtB,KAAKI,GAAG,SAAU,WACdK,EAAQK,UAAYL,EAAQK,SAASf,EAAKgB,WAI9Cf,KAAK+B,WAAW/B,KAAKgC,aACrBhC,KAAKiC,EAAE,mBAAmBC,OAAOlC,KAAKY,eAAeuB,KACrDnC,KAAKmC,IAAID,OAAOlC,KAAKiB,aAAakB,KAGlCnC,KAAKU,UAAUL,OACXC,OAAO,EACP8B,QAAS,WACLrC,EAAKa,eAAeS,QAAQ,UACDgB,SAAvBtC,EAAKU,QAAQM,OACbhB,EAAKgB,MAAMhB,EAAKU,QAAQM,WAOxCA,MAAO,SAASuB,GACZ,MAAOtC,MAAKiB,aAAaF,MAAMuB,IAInCN,UAAW,WACP,MAAQ,qKAShB,QACIxB,KAAMA"} \ No newline at end of file diff --git a/static/maps/utils/query-string-parsing.js.map b/static/maps/utils/query-string-parsing.js.map new file mode 100644 index 00000000000..d094099a2ac --- /dev/null +++ b/static/maps/utils/query-string-parsing.js.map @@ -0,0 +1 @@ +{"version":3,"file":"query-string-parsing.js","sources":["../../src/utils/query-string-parsing.js"],"names":["define","get","key","queryString","window","location","search","substr","keyRegex","RegExp","matches","match","length","splice","undefined"],"mappings":"AAAAA,UAAW,WAEX,QAASC,GAAKC,EAAKC,GACfA,EAAcA,GAAeC,OAAOC,SAASC,OAAOC,OAAQ,EAC5D,IAAIC,GAAW,GAAIC,QAAQP,EAAM,cAC7BQ,EAAUP,EAAYQ,MAAOH,EACjC,OAAKE,IAAYA,EAAQE,QAGzBF,EAAUA,EAAQG,OAAQ,GACH,IAAnBH,EAAQE,OACDF,EAAQ,GAEZA,GANII,OAUX,OACIb,IAAMA"} \ No newline at end of file diff --git a/static/maps/utils/utils.js.map b/static/maps/utils/utils.js.map index ccb4fb491c2..30dec8e1c2b 100644 --- a/static/maps/utils/utils.js.map +++ b/static/maps/utils/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sources":["../../src/utils/utils.js"],"names":["define","_","deepeach","dict","callback","i","d","isJSON","text","test","replace","sanitize","content","$","html","validate","value","Array","length","undefined","indexOf","textify","lst","toString","pos","lastIndexOf","substr","get","options","top","__utils__get__","cache","url","success","console","debug","request","data","response","error","ajaxConfig","contentType","type","param","dataType","JSON","stringify","ajax","done","jQuery","parseJSON","e","fail","response_text","responseText","cssGetAttribute","classname","name","el","appendTo","css","remove","cssLoadFile","galaxy_config","root","merge","optionsDefault","defaults","bytesToString","size","normal_font","unit","rounded","Math","round","uid","__utils__uid__","time","Date","hours","getHours","minutes","getMinutes","datetime","getDate","getMonth","getFullYear"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sources":["../../src/utils/utils.js"],"names":["define","_","deepeach","dict","callback","i","d","isJSON","text","test","replace","sanitize","content","$","html","validate","value","Array","length","undefined","indexOf","textify","lst","toString","pos","lastIndexOf","substr","get","options","top","__utils__get__","cache","url","success","console","debug","request","data","response","error","ajaxConfig","contentType","type","param","dataType","JSON","stringify","ajax","done","jQuery","parseJSON","e","fail","response_text","responseText","cssGetAttribute","classname","name","el","appendTo","css","remove","cssLoadFile","galaxy_config","root","merge","optionsDefault","defaults","roundToDecimalPlaces","number","numPlaces","placesMultiplier","Math","round","bytesToString","size","normal_font","numberPlaces","unit","tb","gb","mb","kb","rounded","uid","__utils__uid__","time","Date","hours","getHours","minutes","getMinutes","datetime","getDate","getMonth","getFullYear"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/viz/trackster.js.map b/static/maps/viz/trackster.js.map index 83d0ceaa2fe..99be99d004d 100644 --- a/static/maps/viz/trackster.js.map +++ b/static/maps/viz/trackster.js.map @@ -1 +1 @@ -{"version":3,"file":"trackster.js","sources":["../../src/viz/trackster.js"],"names":["ui","view","browser_router","require","mod_utils","cssLoadFile","define","_","base","tracks","visualization","mod_icon_btn","TracksterUI","Base","extend","initialize","baseURL","this","save_viz","Galaxy","modal","show","title","body","bookmarks","$","each","push","position","children","text","annotation","overview_track_name","overview_drawable","config","get_value","viz_config","to_dict","viewport","chrom","start","low","end","high","overview","ajax","url","galaxy_config","root","type","dataType","data","id","vis_id","dbkey","vis_json","JSON","stringify","success","vis_info","hide","has_changes","window","history","pushState","location","hash","error","buttons","Cancel","createButtonMenu","self","menu","create_icon_buttons_menu","icon_class","on_click","select_datasets","f-dbkey","new_tracks","track","add_drawable","object_from_template","DrawableGroup","name","force_right_panel","css","handle_unsaved_changes","tooltip_config","placement","buttonMenu","add_bookmarks","alert","table_html","Insert","first","val","attr","hda_id","ldda_id","then","i","length","row","add_bookmark","editable","bookmarks_container","new_bookmark","addClass","appendTo","position_div","annotation_div","click","go_to","delete_icon_container","prependTo","slideUp","remove","make_text_editable","num_rows","use_textarea","help_text","create_visualization","view_config","viewport_config","drawables_config","bookmarks_config","TracksterView","header","editor","when","load_chroms_deferred","chrom_info","overview_drawable_name","undefined","change_chrom","drawables","set_overview","bookmark","set_up_router","options","TrackBrowserRouter","Backbone","init_keyboard_nav","document","keyup","e","srcElement","is","which","move_fraction","Math","round","viewport_container","height","scrollTop","Leave without Saving","off","Save","View","$el","append","resize_window","app","view_existing","view_new","container","init_editor","response","template_view_new","Create","create_browser","default_dbkey","focus","select2","html","trigger","gene_region","add_dataset","hda_ldda","data_type","track_data","on","GalaxyApp"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"trackster.js","sources":["../../src/viz/trackster.js"],"names":["ui","view","browser_router","require","mod_utils","cssLoadFile","define","_","base","tracks","visualization","mod_icon_btn","query_string","TracksterUI","Base","extend","initialize","baseURL","this","save_viz","Galaxy","modal","show","title","body","bookmarks","$","each","push","position","children","text","annotation","overview_track_name","overview_drawable","config","get_value","viz_config","to_dict","viewport","chrom","start","low","end","high","overview","ajax","url","galaxy_config","root","type","dataType","data","id","vis_id","dbkey","vis_json","JSON","stringify","success","vis_info","hide","has_changes","window","history","pushState","location","hash","error","buttons","Cancel","createButtonMenu","self","menu","create_icon_buttons_menu","icon_class","on_click","select_datasets","f-dbkey","new_tracks","track","add_drawable","object_from_template","DrawableGroup","name","force_right_panel","css","handle_unsaved_changes","tooltip_config","placement","buttonMenu","add_bookmarks","alert","table_html","Insert","first","val","attr","hda_id","ldda_id","then","i","length","row","add_bookmark","editable","bookmarks_container","new_bookmark","addClass","appendTo","position_div","annotation_div","click","go_to","delete_icon_container","prependTo","slideUp","remove","make_text_editable","num_rows","use_textarea","help_text","create_visualization","view_config","viewport_config","drawables_config","bookmarks_config","TracksterView","header","editor","when","load_chroms_deferred","chrom_info","overview_drawable_name","undefined","change_chrom","drawables","set_overview","bookmark","set_up_router","options","TrackBrowserRouter","Backbone","init_keyboard_nav","document","keyup","e","srcElement","is","which","move_fraction","Math","round","viewport_container","height","scrollTop","Leave without Saving","off","Save","View","$el","append","resize_window","app","view_existing","get","choose_existing_or_new","view_new","listTracksParams","dataset_params","dataset_id","hda_ldda","param","view_in_saved","show_choice","Add to visualization","parent","find","View in saved visualization","View in new visualization","console","debug","container","init_editor","response","template_view_new","Create","create_browser","dbkeys_in_genomes","map","r","default_dbkey","contains","focus","select2","html","trigger","gene_region","add_dataset","data_type","track_data","on","GalaxyApp"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/libs/d3.js b/static/scripts/libs/d3.js index 9d3c0d9e806..2511f81ba93 100755 --- a/static/scripts/libs/d3.js +++ b/static/scripts/libs/d3.js @@ -1,6 +1,6 @@ -!function(){function a(a){return a&&(a.ownerDocument||a.document||a).documentElement}function b(a){return a&&(a.ownerDocument&&a.ownerDocument.defaultView||a.document&&a||a.defaultView)}function c(a,b){return b>a?-1:a>b?1:a>=b?0:0/0}function d(a){return null===a?0/0:+a}function e(a){return!isNaN(a)}function f(a){return{left:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)<0?d=f+1:e=f}return d},right:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)>0?e=f:d=f+1}return d}}}function g(a){return a.length}function h(a){for(var b=1;a*b%1;)b*=10;return b}function i(a,b){for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}function j(){this._=Object.create(null)}function k(a){return(a+="")===og||a[0]===pg?pg+a:a}function l(a){return(a+="")[0]===pg?a.slice(1):a}function m(a){return k(a)in this._}function n(a){return(a=k(a))in this._&&delete this._[a]}function o(){var a=[];for(var b in this._)a.push(l(b));return a}function p(){var a=0;for(var b in this._)++a;return a}function q(){for(var a in this._)return!1;return!0}function r(){this._=Object.create(null)}function s(a){return a}function t(a,b,c){return function(){var d=c.apply(b,arguments);return d===b?a:d}}function u(a,b){if(b in a)return b;b=b.charAt(0).toUpperCase()+b.slice(1);for(var c=0,d=qg.length;d>c;++c){var e=qg[c]+b;if(e in a)return e}}function v(){}function w(){}function x(a){function b(){for(var b,d=c,e=-1,f=d.length;++ec;c++)for(var e,f=a[c],g=0,h=f.length;h>g;g++)(e=f[g])&&b(e,g,c);return a}function S(a){return sg(a,yg),a}function T(a){var b,c;return function(d,e,f){var g,h=a[f].update,i=h.length;for(f!=c&&(c=f,b=0),e>=b&&(b=e+1);!(g=h[b])&&++b0&&(a=a.slice(0,h));var j=zg.get(a);return j&&(a=j,i=W),h?b?e:d:b?v:f}function V(a,b){return function(c){var d=bg.event;bg.event=c,b[0]=this.__data__;try{a.apply(this,b)}finally{bg.event=d}}}function W(a,b){var c=V(a,b);return function(a){var b=this,d=a.relatedTarget;d&&(d===b||8&d.compareDocumentPosition(b))||c.call(b,a)}}function X(c){var d=".dragsuppress-"+ ++Bg,e="click"+d,f=bg.select(b(c)).on("touchmove"+d,y).on("dragstart"+d,y).on("selectstart"+d,y);if(null==Ag&&(Ag="onselectstart"in c?!1:u(c.style,"userSelect")),Ag){var g=a(c).style,h=g[Ag];g[Ag]="none"}return function(a){if(f.on(d,null),Ag&&(g[Ag]=h),a){var b=function(){f.on(e,null)};f.on(e,function(){y(),b()},!0),setTimeout(b,0)}}}function Y(a,c){c.changedTouches&&(c=c.changedTouches[0]);var d=a.ownerSVGElement||a;if(d.createSVGPoint){var e=d.createSVGPoint();if(0>Cg){var f=b(a);if(f.scrollX||f.scrollY){d=bg.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var g=d[0][0].getScreenCTM();Cg=!(g.f||g.e),d.remove()}}return Cg?(e.x=c.pageX,e.y=c.pageY):(e.x=c.clientX,e.y=c.clientY),e=e.matrixTransform(a.getScreenCTM().inverse()),[e.x,e.y]}var h=a.getBoundingClientRect();return[c.clientX-h.left-a.clientLeft,c.clientY-h.top-a.clientTop]}function Z(){return bg.event.changedTouches[0].identifier}function $(a){return a>0?1:0>a?-1:0}function _(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])}function aa(a){return a>1?0:-1>a?Fg:Math.acos(a)}function ba(a){return a>1?Ig:-1>a?-Ig:Math.asin(a)}function ca(a){return((a=Math.exp(a))-1/a)/2}function da(a){return((a=Math.exp(a))+1/a)/2}function ea(a){return((a=Math.exp(2*a))-1)/(a+1)}function fa(a){return(a=Math.sin(a/2))*a}function ga(){}function ha(a,b,c){return this instanceof ha?(this.h=+a,this.s=+b,void(this.l=+c)):arguments.length<2?a instanceof ha?new ha(a.h,a.s,a.l):va(""+a,wa,ha):new ha(a,b,c)}function ia(a,b,c){function d(a){return a>360?a-=360:0>a&&(a+=360),60>a?f+(g-f)*a/60:180>a?g:240>a?f+(g-f)*(240-a)/60:f}function e(a){return Math.round(255*d(a))}var f,g;return a=isNaN(a)?0:(a%=360)<0?a+360:a,b=isNaN(b)?0:0>b?0:b>1?1:b,c=0>c?0:c>1?1:c,g=.5>=c?c*(1+b):c+b-c*b,f=2*c-g,new ra(e(a+120),e(a),e(a-120))}function ja(a,b,c){return this instanceof ja?(this.h=+a,this.c=+b,void(this.l=+c)):arguments.length<2?a instanceof ja?new ja(a.h,a.c,a.l):a instanceof la?na(a.l,a.a,a.b):na((a=xa((a=bg.rgb(a)).r,a.g,a.b)).l,a.a,a.b):new ja(a,b,c)}function ka(a,b,c){return isNaN(a)&&(a=0),isNaN(b)&&(b=0),new la(c,Math.cos(a*=Jg)*b,Math.sin(a)*b)}function la(a,b,c){return this instanceof la?(this.l=+a,this.a=+b,void(this.b=+c)):arguments.length<2?a instanceof la?new la(a.l,a.a,a.b):a instanceof ja?ka(a.h,a.c,a.l):xa((a=ra(a)).r,a.g,a.b):new la(a,b,c)}function ma(a,b,c){var d=(a+16)/116,e=d+b/500,f=d-c/200;return e=oa(e)*Ug,d=oa(d)*Vg,f=oa(f)*Wg,new ra(qa(3.2404542*e-1.5371385*d-.4985314*f),qa(-.969266*e+1.8760108*d+.041556*f),qa(.0556434*e-.2040259*d+1.0572252*f))}function na(a,b,c){return a>0?new ja(Math.atan2(c,b)*Kg,Math.sqrt(b*b+c*c),a):new ja(0/0,0/0,a)}function oa(a){return a>.206893034?a*a*a:(a-4/29)/7.787037}function pa(a){return a>.008856?Math.pow(a,1/3):7.787037*a+4/29}function qa(a){return Math.round(255*(.00304>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055))}function ra(a,b,c){return this instanceof ra?(this.r=~~a,this.g=~~b,void(this.b=~~c)):arguments.length<2?a instanceof ra?new ra(a.r,a.g,a.b):va(""+a,ra,ia):new ra(a,b,c)}function sa(a){return new ra(a>>16,a>>8&255,255&a)}function ta(a){return sa(a)+""}function ua(a){return 16>a?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function va(a,b,c){var d,e,f,g=0,h=0,i=0;if(d=/([a-z]+)\((.*)\)/i.exec(a))switch(e=d[2].split(","),d[1]){case"hsl":return c(parseFloat(e[0]),parseFloat(e[1])/100,parseFloat(e[2])/100);case"rgb":return b(za(e[0]),za(e[1]),za(e[2]))}return(f=Zg.get(a.toLowerCase()))?b(f.r,f.g,f.b):(null==a||"#"!==a.charAt(0)||isNaN(f=parseInt(a.slice(1),16))||(4===a.length?(g=(3840&f)>>4,g=g>>4|g,h=240&f,h=h>>4|h,i=15&f,i=i<<4|i):7===a.length&&(g=(16711680&f)>>16,h=(65280&f)>>8,i=255&f)),b(g,h,i))}function wa(a,b,c){var d,e,f=Math.min(a/=255,b/=255,c/=255),g=Math.max(a,b,c),h=g-f,i=(g+f)/2;return h?(e=.5>i?h/(g+f):h/(2-g-f),d=a==g?(b-c)/h+(c>b?6:0):b==g?(c-a)/h+2:(a-b)/h+4,d*=60):(d=0/0,e=i>0&&1>i?0:d),new ha(d,e,i)}function xa(a,b,c){a=ya(a),b=ya(b),c=ya(c);var d=pa((.4124564*a+.3575761*b+.1804375*c)/Ug),e=pa((.2126729*a+.7151522*b+.072175*c)/Vg),f=pa((.0193339*a+.119192*b+.9503041*c)/Wg);return la(116*e-16,500*(d-e),200*(e-f))}function ya(a){return(a/=255)<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4)}function za(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function Aa(a){return"function"==typeof a?a:function(){return a}}function Ba(a){return function(b,c,d){return 2===arguments.length&&"function"==typeof c&&(d=c,c=null),Ca(b,c,a,d)}}function Ca(a,b,c,d){function e(){var a,b=i.status;if(!b&&Ea(i)||b>=200&&300>b||304===b){try{a=c.call(f,i)}catch(d){return void g.error.call(f,d)}g.load.call(f,a)}else g.error.call(f,i)}var f={},g=bg.dispatch("beforesend","progress","load","error"),h={},i=new XMLHttpRequest,j=null;return!this.XDomainRequest||"withCredentials"in i||!/^(http(s)?:)?\/\//.test(a)||(i=new XDomainRequest),"onload"in i?i.onload=i.onerror=e:i.onreadystatechange=function(){i.readyState>3&&e()},i.onprogress=function(a){var b=bg.event;bg.event=a;try{g.progress.call(f,i)}finally{bg.event=b}},f.header=function(a,b){return a=(a+"").toLowerCase(),arguments.length<2?h[a]:(null==b?delete h[a]:h[a]=b+"",f)},f.mimeType=function(a){return arguments.length?(b=null==a?null:a+"",f):b},f.responseType=function(a){return arguments.length?(j=a,f):j},f.response=function(a){return c=a,f},["get","post"].forEach(function(a){f[a]=function(){return f.send.apply(f,[a].concat(dg(arguments)))}}),f.send=function(c,d,e){if(2===arguments.length&&"function"==typeof d&&(e=d,d=null),i.open(c,a,!0),null==b||"accept"in h||(h.accept=b+",*/*"),i.setRequestHeader)for(var k in h)i.setRequestHeader(k,h[k]);return null!=b&&i.overrideMimeType&&i.overrideMimeType(b),null!=j&&(i.responseType=j),null!=e&&f.on("error",e).on("load",function(a){e(null,a)}),g.beforesend.call(f,i),i.send(null==d?null:d),f},f.abort=function(){return i.abort(),f},bg.rebind(f,g,"on"),null==d?f:f.get(Da(d))}function Da(a){return 1===a.length?function(b,c){a(null==b?c:null)}:a}function Ea(a){var b=a.responseType;return b&&"text"!==b?a.response:a.responseText}function Fa(){var a=Ga(),b=Ha()-a;b>24?(isFinite(b)&&(clearTimeout(bh),bh=setTimeout(Fa,b)),ah=0):(ah=1,dh(Fa))}function Ga(){var a=Date.now();for(ch=$g;ch;)a>=ch.t&&(ch.f=ch.c(a-ch.t)),ch=ch.n;return a}function Ha(){for(var a,b=$g,c=1/0;b;)b.f?b=a?a.n=b.n:$g=b.n:(b.t8?function(a){return a/c}:function(a){return a*c},symbol:a}}function Ka(a){var b=a.decimal,c=a.thousands,d=a.grouping,e=a.currency,f=d&&c?function(a,b){for(var e=a.length,f=[],g=0,h=d[0],i=0;e>0&&h>0&&(i+h+1>b&&(h=Math.max(1,b-i)),f.push(a.substring(e-=h,e+h)),!((i+=h+1)>b));)h=d[g=(g+1)%d.length];return f.reverse().join(c)}:s;return function(a){var c=fh.exec(a),d=c[1]||" ",g=c[2]||">",h=c[3]||"-",i=c[4]||"",j=c[5],k=+c[6],l=c[7],m=c[8],n=c[9],o=1,p="",q="",r=!1,s=!0;switch(m&&(m=+m.substring(1)),(j||"0"===d&&"="===g)&&(j=d="0",g="="),n){case"n":l=!0,n="g";break;case"%":o=100,q="%",n="f";break;case"p":o=100,q="%",n="r";break;case"b":case"o":case"x":case"X":"#"===i&&(p="0"+n.toLowerCase());case"c":s=!1;case"d":r=!0,m=0;break;case"s":o=-1,n="r"}"$"===i&&(p=e[0],q=e[1]),"r"!=n||m||(n="g"),null!=m&&("g"==n?m=Math.max(1,Math.min(21,m)):("e"==n||"f"==n)&&(m=Math.max(0,Math.min(20,m)))),n=gh.get(n)||La;var t=j&&l;return function(a){var c=q;if(r&&a%1)return"";var e=0>a||0===a&&0>1/a?(a=-a,"-"):"-"===h?"":h;if(0>o){var i=bg.formatPrefix(a,m);a=i.scale(a),c=i.symbol+q}else a*=o;a=n(a,m);var u,v,w=a.lastIndexOf(".");if(0>w){var x=s?a.lastIndexOf("e"):-1;0>x?(u=a,v=""):(u=a.substring(0,x),v=a.substring(x))}else u=a.substring(0,w),v=b+a.substring(w+1);!j&&l&&(u=f(u,1/0));var y=p.length+u.length+v.length+(t?0:e.length),z=k>y?new Array(y=k-y+1).join(d):"";return t&&(u=f(z+u,z.length?k-v.length:1/0)),e+=p,a=u+v,("<"===g?e+a+z:">"===g?z+e+a:"^"===g?z.substring(0,y>>=1)+e+a+z.substring(y):e+(t?a:z+a))+c}}}function La(a){return a+""}function Ma(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Na(a,b,c){function d(b){var c=a(b),d=f(c,1);return d-b>b-c?c:d}function e(c){return b(c=a(new ih(c-1)),1),c}function f(a,c){return b(a=new ih(+a),c),a}function g(a,d,f){var g=e(a),h=[];if(f>1)for(;d>g;)c(g)%f||h.push(new Date(+g)),b(g,1);else for(;d>g;)h.push(new Date(+g)),b(g,1);return h}function h(a,b,c){try{ih=Ma;var d=new Ma;return d._=a,g(d,b,c)}finally{ih=Date}}a.floor=a,a.round=d,a.ceil=e,a.offset=f,a.range=g;var i=a.utc=Oa(a);return i.floor=i,i.round=Oa(d),i.ceil=Oa(e),i.offset=Oa(f),i.range=h,a}function Oa(a){return function(b,c){try{ih=Ma;var d=new Ma;return d._=b,a(d,c)._}finally{ih=Date}}}function Pa(a){function b(a){function b(b){for(var c,e,f,g=[],h=-1,i=0;++hh;){if(d>=j)return-1;if(e=b.charCodeAt(h++),37===e){if(g=b.charAt(h++),f=D[g in kh?b.charAt(h++):g],!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function d(a,b,c){w.lastIndex=0;var d=w.exec(b.slice(c));return d?(a.w=x.get(d[0].toLowerCase()),c+d[0].length):-1}function e(a,b,c){u.lastIndex=0;var d=u.exec(b.slice(c));return d?(a.w=v.get(d[0].toLowerCase()),c+d[0].length):-1}function f(a,b,c){A.lastIndex=0;var d=A.exec(b.slice(c));return d?(a.m=B.get(d[0].toLowerCase()),c+d[0].length):-1}function g(a,b,c){y.lastIndex=0;var d=y.exec(b.slice(c));return d?(a.m=z.get(d[0].toLowerCase()),c+d[0].length):-1}function h(a,b,d){return c(a,C.c.toString(),b,d)}function i(a,b,d){return c(a,C.x.toString(),b,d)}function j(a,b,d){return c(a,C.X.toString(),b,d)}function k(a,b,c){var d=t.get(b.slice(c,c+=2).toLowerCase());return null==d?-1:(a.p=d,c)}var l=a.dateTime,m=a.date,n=a.time,o=a.periods,p=a.days,q=a.shortDays,r=a.months,s=a.shortMonths;b.utc=function(a){function c(a){try{ih=Ma;var b=new ih;return b._=a,d(b)}finally{ih=Date}}var d=b(a);return c.parse=function(a){try{ih=Ma;var b=d.parse(a);return b&&b._}finally{ih=Date}},c.toString=d.toString,c},b.multi=b.utc.multi=hb;var t=bg.map(),u=Ra(p),v=Sa(p),w=Ra(q),x=Sa(q),y=Ra(r),z=Sa(r),A=Ra(s),B=Sa(s);o.forEach(function(a,b){t.set(a.toLowerCase(),b)});var C={a:function(a){return q[a.getDay()]},A:function(a){return p[a.getDay()]},b:function(a){return s[a.getMonth()]},B:function(a){return r[a.getMonth()]},c:b(l),d:function(a,b){return Qa(a.getDate(),b,2)},e:function(a,b){return Qa(a.getDate(),b,2)},H:function(a,b){return Qa(a.getHours(),b,2)},I:function(a,b){return Qa(a.getHours()%12||12,b,2)},j:function(a,b){return Qa(1+hh.dayOfYear(a),b,3)},L:function(a,b){return Qa(a.getMilliseconds(),b,3)},m:function(a,b){return Qa(a.getMonth()+1,b,2)},M:function(a,b){return Qa(a.getMinutes(),b,2)},p:function(a){return o[+(a.getHours()>=12)]},S:function(a,b){return Qa(a.getSeconds(),b,2)},U:function(a,b){return Qa(hh.sundayOfYear(a),b,2)},w:function(a){return a.getDay()},W:function(a,b){return Qa(hh.mondayOfYear(a),b,2)},x:b(m),X:b(n),y:function(a,b){return Qa(a.getFullYear()%100,b,2)},Y:function(a,b){return Qa(a.getFullYear()%1e4,b,4)},Z:fb,"%":function(){return"%"}},D={a:d,A:e,b:f,B:g,c:h,d:_a,e:_a,H:bb,I:bb,j:ab,L:eb,m:$a,M:cb,p:k,S:db,U:Ua,w:Ta,W:Va,x:i,X:j,y:Xa,Y:Wa,Z:Ya,"%":gb};return b}function Qa(a,b,c){var d=0>a?"-":"",e=(d?-a:a)+"",f=e.length;return d+(c>f?new Array(c-f+1).join(b)+e:e)}function Ra(a){return new RegExp("^(?:"+a.map(bg.requote).join("|")+")","i")}function Sa(a){for(var b=new j,c=-1,d=a.length;++c68?1900:2e3)}function $a(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.m=d[0]-1,c+d[0].length):-1}function _a(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.d=+d[0],c+d[0].length):-1}function ab(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+3));return d?(a.j=+d[0],c+d[0].length):-1}function bb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.H=+d[0],c+d[0].length):-1}function cb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.M=+d[0],c+d[0].length):-1}function db(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.S=+d[0],c+d[0].length):-1}function eb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+3));return d?(a.L=+d[0],c+d[0].length):-1}function fb(a){var b=a.getTimezoneOffset(),c=b>0?"-":"+",d=ng(b)/60|0,e=ng(b)%60;return c+Qa(d,"0",2)+Qa(e,"0",2)}function gb(a,b,c){mh.lastIndex=0;var d=mh.exec(b.slice(c,c+1));return d?c+d[0].length:-1}function hb(a){for(var b=a.length,c=-1;++c=0?1:-1,h=g*c,i=Math.cos(b),j=Math.sin(b),k=f*j,l=e*i+k*Math.cos(h),m=k*g*Math.sin(h);sh.add(Math.atan2(m,l)),d=a,e=i,f=j}var b,c,d,e,f;th.point=function(g,h){th.point=a,d=(b=g)*Jg,e=Math.cos(h=(c=h)*Jg/2+Fg/4),f=Math.sin(h)},th.lineEnd=function(){a(b,c)}}function ob(a){var b=a[0],c=a[1],d=Math.cos(c);return[d*Math.cos(b),d*Math.sin(b),Math.sin(c)]}function pb(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function qb(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function rb(a,b){a[0]+=b[0],a[1]+=b[1],a[2]+=b[2]}function sb(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function tb(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);a[0]/=b,a[1]/=b,a[2]/=b}function ub(a){return[Math.atan2(a[1],a[0]),ba(a[2])]}function vb(a,b){return ng(a[0]-b[0])h;++h)e.point((c=a[h])[0],c[1]);return void e.lineEnd()}var i=new Fb(c,a,null,!0),j=new Fb(c,null,i,!1);i.o=j,f.push(i),g.push(j),i=new Fb(d,a,null,!1),j=new Fb(d,null,i,!0),i.o=j,f.push(i),g.push(j)}}),g.sort(b),Eb(f),Eb(g),f.length){for(var h=0,i=c,j=g.length;j>h;++h)g[h].e=i=!i;for(var k,l,m=f[0];;){for(var n=m,o=!0;n.v;)if((n=n.n)===m)return;k=n.z,e.lineStart();do{if(n.v=n.o.v=!0,n.e){if(o)for(var h=0,j=k.length;j>h;++h)e.point((l=k[h])[0],l[1]);else d(n.x,n.n.x,1,e);n=n.n}else{if(o){k=n.p.z;for(var h=k.length-1;h>=0;--h)e.point((l=k[h])[0],l[1])}else d(n.x,n.p.x,-1,e);n=n.p}n=n.o,k=n.z,o=!o}while(!n.v);e.lineEnd()}}}function Eb(a){if(b=a.length){for(var b,c,d=0,e=a[0];++d0){for(v||(f.polygonStart(),v=!0),f.lineStart();++g1&&2&b&&c.push(c.pop().concat(c.shift())),n.push(c.filter(Hb))}var n,o,p,q=b(f),r=e.invert(d[0],d[1]),s={point:g,lineStart:i,lineEnd:j,polygonStart:function(){s.point=k,s.lineStart=l,s.lineEnd=m,n=[],o=[]},polygonEnd:function(){s.point=g,s.lineStart=i,s.lineEnd=j,n=bg.merge(n);var a=Nb(r,o);n.length?(v||(f.polygonStart(),v=!0),Db(n,Jb,a,c,f)):a&&(v||(f.polygonStart(),v=!0),f.lineStart(),c(null,null,1,f),f.lineEnd()),v&&(f.polygonEnd(),v=!1),n=o=null},sphere:function(){f.polygonStart(),f.lineStart(),c(null,null,1,f),f.lineEnd(),f.polygonEnd()}},t=Ib(),u=b(t),v=!1;return s}}function Hb(a){return a.length>1}function Ib(){var a,b=[];return{lineStart:function(){b.push(a=[])},point:function(b,c){a.push([b,c])},lineEnd:v,buffer:function(){var c=b;return b=[],a=null,c},rejoin:function(){b.length>1&&b.push(b.pop().concat(b.shift()))}}}function Jb(a,b){return((a=a.x)[0]<0?a[1]-Ig-Dg:Ig-a[1])-((b=b.x)[0]<0?b[1]-Ig-Dg:Ig-b[1])}function Kb(a){var b,c=0/0,d=0/0,e=0/0;return{lineStart:function(){a.lineStart(),b=1},point:function(f,g){var h=f>0?Fg:-Fg,i=ng(f-c);ng(i-Fg)0?Ig:-Ig),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),a.point(f,d),b=0):e!==h&&i>=Fg&&(ng(c-e)Dg?Math.atan((Math.sin(b)*(f=Math.cos(d))*Math.sin(c)-Math.sin(d)*(e=Math.cos(b))*Math.sin(a))/(e*f*g)):(b+d)/2}function Mb(a,b,c,d){var e;if(null==a)e=c*Ig,d.point(-Fg,e),d.point(0,e),d.point(Fg,e),d.point(Fg,0),d.point(Fg,-e),d.point(0,-e),d.point(-Fg,-e),d.point(-Fg,0),d.point(-Fg,e);else if(ng(a[0]-b[0])>Dg){var f=a[0]h;++h){var j=b[h],k=j.length;if(k)for(var l=j[0],m=l[0],n=l[1]/2+Fg/4,o=Math.sin(n),p=Math.cos(n),q=1;;){q===k&&(q=0),a=j[q];var r=a[0],s=a[1]/2+Fg/4,t=Math.sin(s),u=Math.cos(s),v=r-m,w=v>=0?1:-1,x=w*v,y=x>Fg,z=o*t;if(sh.add(Math.atan2(z*w*Math.sin(x),p*u+z*Math.cos(x))),f+=y?v+w*Gg:v,y^m>=c^r>=c){var A=qb(ob(l),ob(a));tb(A);var B=qb(e,A);tb(B);var C=(y^v>=0?-1:1)*ba(B[2]);(d>C||d===C&&(A[0]||A[1]))&&(g+=y^v>=0?1:-1)}if(!q++)break;m=r,o=t,p=u,l=a}}return(-Dg>f||Dg>f&&0>sh)^1&g}function Ob(a){function b(a,b){return Math.cos(a)*Math.cos(b)>f}function c(a){var c,f,i,j,k;return{lineStart:function(){j=i=!1,k=1},point:function(l,m){var n,o=[l,m],p=b(l,m),q=g?p?0:e(l,m):p?e(l+(0>l?Fg:-Fg),m):0;if(!c&&(j=i=p)&&a.lineStart(),p!==i&&(n=d(c,o),(vb(c,n)||vb(o,n))&&(o[0]+=Dg,o[1]+=Dg,p=b(o[0],o[1]))),p!==i)k=0,p?(a.lineStart(),n=d(o,c),a.point(n[0],n[1])):(n=d(c,o),a.point(n[0],n[1]),a.lineEnd()),c=n;else if(h&&c&&g^p){var r;q&f||!(r=d(o,c,!0))||(k=0,g?(a.lineStart(),a.point(r[0][0],r[0][1]),a.point(r[1][0],r[1][1]),a.lineEnd()):(a.point(r[1][0],r[1][1]),a.lineEnd(),a.lineStart(),a.point(r[0][0],r[0][1])))}!p||c&&vb(c,o)||a.point(o[0],o[1]),c=o,i=p,f=q},lineEnd:function(){i&&a.lineEnd(),c=null},clean:function(){return k|(j&&i)<<1}}}function d(a,b,c){var d=ob(a),e=ob(b),g=[1,0,0],h=qb(d,e),i=pb(h,h),j=h[0],k=i-j*j;if(!k)return!c&&a;var l=f*i/k,m=-f*j/k,n=qb(g,h),o=sb(g,l),p=sb(h,m);rb(o,p);var q=n,r=pb(o,q),s=pb(q,q),t=r*r-s*(pb(o,o)-1);if(!(0>t)){var u=Math.sqrt(t),v=sb(q,(-r-u)/s);if(rb(v,o),v=ub(v),!c)return v;var w,x=a[0],y=b[0],z=a[1],A=b[1];x>y&&(w=x,x=y,y=w);var B=y-x,C=ng(B-Fg)B;if(!C&&z>A&&(w=z,z=A,A=w),D?C?z+A>0^v[1]<(ng(v[0]-x)Fg^(x<=v[0]&&v[0]<=y)){var E=sb(q,(-r+u)/s);return rb(E,o),[v,ub(E)]}}}function e(b,c){var d=g?a:Fg-a,e=0;return-d>b?e|=1:b>d&&(e|=2),-d>c?e|=4:c>d&&(e|=8),e}var f=Math.cos(a),g=f>0,h=ng(f)>Dg,i=nc(a,6*Jg);return Gb(b,c,i,g?[0,-a]:[-Fg,a-Fg])}function Pb(a,b,c,d){return function(e){var f,g=e.a,h=e.b,i=g.x,j=g.y,k=h.x,l=h.y,m=0,n=1,o=k-i,p=l-j;if(f=a-i,o||!(f>0)){if(f/=o,0>o){if(m>f)return;n>f&&(n=f)}else if(o>0){if(f>n)return;f>m&&(m=f)}if(f=c-i,o||!(0>f)){if(f/=o,0>o){if(f>n)return;f>m&&(m=f)}else if(o>0){if(m>f)return;n>f&&(n=f)}if(f=b-j,p||!(f>0)){if(f/=p,0>p){if(m>f)return;n>f&&(n=f)}else if(p>0){if(f>n)return;f>m&&(m=f)}if(f=d-j,p||!(0>f)){if(f/=p,0>p){if(f>n)return;f>m&&(m=f)}else if(p>0){if(m>f)return;n>f&&(n=f)}return m>0&&(e.a={x:i+m*o,y:j+m*p}),1>n&&(e.b={x:i+n*o,y:j+n*p}),e}}}}}}function Qb(a,b,c,d){function e(d,e){return ng(d[0]-a)0?0:3:ng(d[0]-c)0?2:1:ng(d[1]-b)0?1:0:e>0?3:2}function f(a,b){return g(a.x,b.x)}function g(a,b){var c=e(a,1),d=e(b,1);return c!==d?c-d:0===c?b[1]-a[1]:1===c?a[0]-b[0]:2===c?a[1]-b[1]:b[0]-a[0]}return function(h){function i(a){for(var b=0,c=q.length,d=a[1],e=0;c>e;++e)for(var f,g=1,h=q[e],i=h.length,j=h[0];i>g;++g)f=h[g],j[1]<=d?f[1]>d&&_(j,f,a)>0&&++b:f[1]<=d&&_(j,f,a)<0&&--b,j=f;return 0!==b}function j(f,h,i,j){var k=0,l=0;if(null==f||(k=e(f,i))!==(l=e(h,i))||g(f,h)<0^i>0){do j.point(0===k||3===k?a:c,k>1?d:b);while((k=(k+i+4)%4)!==l)}else j.point(h[0],h[1])}function k(e,f){return e>=a&&c>=e&&f>=b&&d>=f}function l(a,b){k(a,b)&&h.point(a,b)}function m(){D.point=o,q&&q.push(r=[]),y=!0,x=!1,v=w=0/0}function n(){p&&(o(s,t),u&&x&&B.rejoin(),p.push(B.buffer())),D.point=l,x&&h.lineEnd()}function o(a,b){a=Math.max(-Hh,Math.min(Hh,a)),b=Math.max(-Hh,Math.min(Hh,b));var c=k(a,b);if(q&&r.push([a,b]),y)s=a,t=b,u=c,y=!1,c&&(h.lineStart(),h.point(a,b));else if(c&&x)h.point(a,b);else{var d={a:{x:v,y:w},b:{x:a,y:b}};C(d)?(x||(h.lineStart(),h.point(d.a.x,d.a.y)),h.point(d.b.x,d.b.y),c||h.lineEnd(),z=!1):c&&(h.lineStart(),h.point(a,b),z=!1)}v=a,w=b,x=c}var p,q,r,s,t,u,v,w,x,y,z,A=h,B=Ib(),C=Pb(a,b,c,d),D={point:l,lineStart:m,lineEnd:n,polygonStart:function(){h=B,p=[],q=[],z=!0},polygonEnd:function(){h=A,p=bg.merge(p);var b=i([a,d]),c=z&&b,e=p.length;(c||e)&&(h.polygonStart(),c&&(h.lineStart(),j(null,null,1,h),h.lineEnd()),e&&Db(p,f,b,j,h),h.polygonEnd()),p=q=r=null}};return D}}function Rb(a){var b=0,c=Fg/3,d=fc(a),e=d(b,c);return e.parallels=function(a){return arguments.length?d(b=a[0]*Fg/180,c=a[1]*Fg/180):[b/Fg*180,c/Fg*180]},e}function Sb(a,b){function c(a,b){var c=Math.sqrt(f-2*e*Math.sin(b))/e;return[c*Math.sin(a*=e),g-c*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),g=Math.sqrt(f)/e;return c.invert=function(a,b){var c=g-b;return[Math.atan2(a,c)/e,ba((f-(a*a+c*c)*e*e)/(2*e))]},c}function Tb(){function a(a,b){Jh+=e*a-d*b,d=a,e=b}var b,c,d,e;Oh.point=function(f,g){Oh.point=a,b=d=f,c=e=g},Oh.lineEnd=function(){a(b,c)}}function Ub(a,b){Kh>a&&(Kh=a),a>Mh&&(Mh=a),Lh>b&&(Lh=b),b>Nh&&(Nh=b)}function Vb(){function a(a,b){g.push("M",a,",",b,f)}function b(a,b){g.push("M",a,",",b),h.point=c}function c(a,b){g.push("L",a,",",b)}function d(){h.point=a}function e(){g.push("Z")}var f=Wb(4.5),g=[],h={point:a,lineStart:function(){h.point=b},lineEnd:d,polygonStart:function(){h.lineEnd=e},polygonEnd:function(){h.lineEnd=d,h.point=a},pointRadius:function(a){return f=Wb(a),h},result:function(){if(g.length){var a=g.join("");return g=[],a}}};return h}function Wb(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function Xb(a,b){wh+=a,xh+=b,++yh}function Yb(){function a(a,d){var e=a-b,f=d-c,g=Math.sqrt(e*e+f*f);zh+=g*(b+a)/2,Ah+=g*(c+d)/2,Bh+=g,Xb(b=a,c=d)}var b,c;Qh.point=function(d,e){Qh.point=a,Xb(b=d,c=e)}}function Zb(){Qh.point=Xb}function $b(){function a(a,b){var c=a-d,f=b-e,g=Math.sqrt(c*c+f*f);zh+=g*(d+a)/2,Ah+=g*(e+b)/2,Bh+=g,g=e*a-d*b,Ch+=g*(d+a),Dh+=g*(e+b),Eh+=3*g,Xb(d=a,e=b)}var b,c,d,e;Qh.point=function(f,g){Qh.point=a,Xb(b=d=f,c=e=g)},Qh.lineEnd=function(){a(b,c)}}function _b(a){function b(b,c){a.moveTo(b+g,c),a.arc(b,c,g,0,Gg)}function c(b,c){a.moveTo(b,c),h.point=d}function d(b,c){a.lineTo(b,c)}function e(){h.point=b}function f(){a.closePath()}var g=4.5,h={point:b,lineStart:function(){h.point=c},lineEnd:e,polygonStart:function(){h.lineEnd=f},polygonEnd:function(){h.lineEnd=e,h.point=b},pointRadius:function(a){return g=a,h},result:v};return h}function ac(a){function b(a){return(h?d:c)(a)}function c(b){return dc(b,function(c,d){c=a(c,d),b.point(c[0],c[1])})}function d(b){function c(c,d){c=a(c,d),b.point(c[0],c[1])}function d(){t=0/0,y.point=f,b.lineStart()}function f(c,d){var f=ob([c,d]),g=a(c,d);e(t,u,s,v,w,x,t=g[0],u=g[1],s=c,v=f[0],w=f[1],x=f[2],h,b),b.point(t,u)}function g(){y.point=c,b.lineEnd()}function i(){d(),y.point=j,y.lineEnd=k}function j(a,b){f(l=a,m=b),n=t,o=u,p=v,q=w,r=x,y.point=f}function k(){e(t,u,s,v,w,x,n,o,l,p,q,r,h,b),y.lineEnd=g,g()}var l,m,n,o,p,q,r,s,t,u,v,w,x,y={point:c,lineStart:d,lineEnd:g,polygonStart:function(){ +!function(){function a(a){return a&&(a.ownerDocument||a.document||a).documentElement}function b(a){return a&&(a.ownerDocument&&a.ownerDocument.defaultView||a.document&&a||a.defaultView)}function c(a,b){return b>a?-1:a>b?1:a>=b?0:0/0}function d(a){return null===a?0/0:+a}function e(a){return!isNaN(a)}function f(a){return{left:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)<0?d=f+1:e=f}return d},right:function(b,c,d,e){for(arguments.length<3&&(d=0),arguments.length<4&&(e=b.length);e>d;){var f=d+e>>>1;a(b[f],c)>0?e=f:d=f+1}return d}}}function g(a){return a.length}function h(a){for(var b=1;a*b%1;)b*=10;return b}function i(a,b){for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}function j(){this._=Object.create(null)}function k(a){return(a+="")===og||a[0]===pg?pg+a:a}function l(a){return(a+="")[0]===pg?a.slice(1):a}function m(a){return k(a)in this._}function n(a){return(a=k(a))in this._&&delete this._[a]}function o(){var a=[];for(var b in this._)a.push(l(b));return a}function p(){var a=0;for(var b in this._)++a;return a}function q(){for(var a in this._)return!1;return!0}function r(){this._=Object.create(null)}function s(a){return a}function t(a,b,c){return function(){var d=c.apply(b,arguments);return d===b?a:d}}function u(a,b){if(b in a)return b;b=b.charAt(0).toUpperCase()+b.slice(1);for(var c=0,d=qg.length;d>c;++c){var e=qg[c]+b;if(e in a)return e}}function v(){}function w(){}function x(a){function b(){for(var b,d=c,e=-1,f=d.length;++ec;c++)for(var e,f=a[c],g=0,h=f.length;h>g;g++)(e=f[g])&&b(e,g,c);return a}function S(a){return sg(a,yg),a}function T(a){var b,c;return function(d,e,f){var g,h=a[f].update,i=h.length;for(f!=c&&(c=f,b=0),e>=b&&(b=e+1);!(g=h[b])&&++b0&&(a=a.slice(0,h));var j=zg.get(a);return j&&(a=j,i=W),h?b?e:d:b?v:f}function V(a,b){return function(c){var d=bg.event;bg.event=c,b[0]=this.__data__;try{a.apply(this,b)}finally{bg.event=d}}}function W(a,b){var c=V(a,b);return function(a){var b=this,d=a.relatedTarget;d&&(d===b||8&d.compareDocumentPosition(b))||c.call(b,a)}}function X(c){var d=".dragsuppress-"+ ++Bg,e="click"+d,f=bg.select(b(c)).on("touchmove"+d,y).on("dragstart"+d,y).on("selectstart"+d,y);if(null==Ag&&(Ag="onselectstart"in c?!1:u(c.style,"userSelect")),Ag){var g=a(c).style,h=g[Ag];g[Ag]="none"}return function(a){if(f.on(d,null),Ag&&(g[Ag]=h),a){var b=function(){f.on(e,null)};f.on(e,function(){y(),b()},!0),setTimeout(b,0)}}}function Y(a,c){c.changedTouches&&(c=c.changedTouches[0]);var d=a.ownerSVGElement||a;if(d.createSVGPoint){var e=d.createSVGPoint();if(0>Cg){var f=b(a);if(f.scrollX||f.scrollY){d=bg.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var g=d[0][0].getScreenCTM();Cg=!(g.f||g.e),d.remove()}}return Cg?(e.x=c.pageX,e.y=c.pageY):(e.x=c.clientX,e.y=c.clientY),e=e.matrixTransform(a.getScreenCTM().inverse()),[e.x,e.y]}var h=a.getBoundingClientRect();return[c.clientX-h.left-a.clientLeft,c.clientY-h.top-a.clientTop]}function Z(){return bg.event.changedTouches[0].identifier}function $(a){return a>0?1:0>a?-1:0}function _(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])}function aa(a){return a>1?0:-1>a?Fg:Math.acos(a)}function ba(a){return a>1?Ig:-1>a?-Ig:Math.asin(a)}function ca(a){return((a=Math.exp(a))-1/a)/2}function da(a){return((a=Math.exp(a))+1/a)/2}function ea(a){return((a=Math.exp(2*a))-1)/(a+1)}function fa(a){return(a=Math.sin(a/2))*a}function ga(){}function ha(a,b,c){return this instanceof ha?(this.h=+a,this.s=+b,void(this.l=+c)):arguments.length<2?a instanceof ha?new ha(a.h,a.s,a.l):va(""+a,wa,ha):new ha(a,b,c)}function ia(a,b,c){function d(a){return a>360?a-=360:0>a&&(a+=360),60>a?f+(g-f)*a/60:180>a?g:240>a?f+(g-f)*(240-a)/60:f}function e(a){return Math.round(255*d(a))}var f,g;return a=isNaN(a)?0:(a%=360)<0?a+360:a,b=isNaN(b)?0:0>b?0:b>1?1:b,c=0>c?0:c>1?1:c,g=.5>=c?c*(1+b):c+b-c*b,f=2*c-g,new ra(e(a+120),e(a),e(a-120))}function ja(a,b,c){return this instanceof ja?(this.h=+a,this.c=+b,void(this.l=+c)):arguments.length<2?a instanceof ja?new ja(a.h,a.c,a.l):a instanceof la?na(a.l,a.a,a.b):na((a=xa((a=bg.rgb(a)).r,a.g,a.b)).l,a.a,a.b):new ja(a,b,c)}function ka(a,b,c){return isNaN(a)&&(a=0),isNaN(b)&&(b=0),new la(c,Math.cos(a*=Jg)*b,Math.sin(a)*b)}function la(a,b,c){return this instanceof la?(this.l=+a,this.a=+b,void(this.b=+c)):arguments.length<2?a instanceof la?new la(a.l,a.a,a.b):a instanceof ja?ka(a.h,a.c,a.l):xa((a=ra(a)).r,a.g,a.b):new la(a,b,c)}function ma(a,b,c){var d=(a+16)/116,e=d+b/500,f=d-c/200;return e=oa(e)*Ug,d=oa(d)*Vg,f=oa(f)*Wg,new ra(qa(3.2404542*e-1.5371385*d-.4985314*f),qa(-.969266*e+1.8760108*d+.041556*f),qa(.0556434*e-.2040259*d+1.0572252*f))}function na(a,b,c){return a>0?new ja(Math.atan2(c,b)*Kg,Math.sqrt(b*b+c*c),a):new ja(0/0,0/0,a)}function oa(a){return a>.206893034?a*a*a:(a-4/29)/7.787037}function pa(a){return a>.008856?Math.pow(a,1/3):7.787037*a+4/29}function qa(a){return Math.round(255*(.00304>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055))}function ra(a,b,c){return this instanceof ra?(this.r=~~a,this.g=~~b,void(this.b=~~c)):arguments.length<2?a instanceof ra?new ra(a.r,a.g,a.b):va(""+a,ra,ia):new ra(a,b,c)}function sa(a){return new ra(a>>16,a>>8&255,255&a)}function ta(a){return sa(a)+""}function ua(a){return 16>a?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function va(a,b,c){a=a.toLowerCase();var d,e,f,g=0,h=0,i=0;if(d=/([a-z]+)\((.*)\)/.exec(a))switch(e=d[2].split(","),d[1]){case"hsl":return c(parseFloat(e[0]),parseFloat(e[1])/100,parseFloat(e[2])/100);case"rgb":return b(za(e[0]),za(e[1]),za(e[2]))}return(f=Zg.get(a))?b(f.r,f.g,f.b):(null==a||"#"!==a.charAt(0)||isNaN(f=parseInt(a.slice(1),16))||(4===a.length?(g=(3840&f)>>4,g=g>>4|g,h=240&f,h=h>>4|h,i=15&f,i=i<<4|i):7===a.length&&(g=(16711680&f)>>16,h=(65280&f)>>8,i=255&f)),b(g,h,i))}function wa(a,b,c){var d,e,f=Math.min(a/=255,b/=255,c/=255),g=Math.max(a,b,c),h=g-f,i=(g+f)/2;return h?(e=.5>i?h/(g+f):h/(2-g-f),d=a==g?(b-c)/h+(c>b?6:0):b==g?(c-a)/h+2:(a-b)/h+4,d*=60):(d=0/0,e=i>0&&1>i?0:d),new ha(d,e,i)}function xa(a,b,c){a=ya(a),b=ya(b),c=ya(c);var d=pa((.4124564*a+.3575761*b+.1804375*c)/Ug),e=pa((.2126729*a+.7151522*b+.072175*c)/Vg),f=pa((.0193339*a+.119192*b+.9503041*c)/Wg);return la(116*e-16,500*(d-e),200*(e-f))}function ya(a){return(a/=255)<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4)}function za(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function Aa(a){return"function"==typeof a?a:function(){return a}}function Ba(a){return function(b,c,d){return 2===arguments.length&&"function"==typeof c&&(d=c,c=null),Ca(b,c,a,d)}}function Ca(a,b,c,d){function e(){var a,b=i.status;if(!b&&Ea(i)||b>=200&&300>b||304===b){try{a=c.call(f,i)}catch(d){return void g.error.call(f,d)}g.load.call(f,a)}else g.error.call(f,i)}var f={},g=bg.dispatch("beforesend","progress","load","error"),h={},i=new XMLHttpRequest,j=null;return!this.XDomainRequest||"withCredentials"in i||!/^(http(s)?:)?\/\//.test(a)||(i=new XDomainRequest),"onload"in i?i.onload=i.onerror=e:i.onreadystatechange=function(){i.readyState>3&&e()},i.onprogress=function(a){var b=bg.event;bg.event=a;try{g.progress.call(f,i)}finally{bg.event=b}},f.header=function(a,b){return a=(a+"").toLowerCase(),arguments.length<2?h[a]:(null==b?delete h[a]:h[a]=b+"",f)},f.mimeType=function(a){return arguments.length?(b=null==a?null:a+"",f):b},f.responseType=function(a){return arguments.length?(j=a,f):j},f.response=function(a){return c=a,f},["get","post"].forEach(function(a){f[a]=function(){return f.send.apply(f,[a].concat(dg(arguments)))}}),f.send=function(c,d,e){if(2===arguments.length&&"function"==typeof d&&(e=d,d=null),i.open(c,a,!0),null==b||"accept"in h||(h.accept=b+",*/*"),i.setRequestHeader)for(var k in h)i.setRequestHeader(k,h[k]);return null!=b&&i.overrideMimeType&&i.overrideMimeType(b),null!=j&&(i.responseType=j),null!=e&&f.on("error",e).on("load",function(a){e(null,a)}),g.beforesend.call(f,i),i.send(null==d?null:d),f},f.abort=function(){return i.abort(),f},bg.rebind(f,g,"on"),null==d?f:f.get(Da(d))}function Da(a){return 1===a.length?function(b,c){a(null==b?c:null)}:a}function Ea(a){var b=a.responseType;return b&&"text"!==b?a.response:a.responseText}function Fa(){var a=Ga(),b=Ha()-a;b>24?(isFinite(b)&&(clearTimeout(bh),bh=setTimeout(Fa,b)),ah=0):(ah=1,dh(Fa))}function Ga(){var a=Date.now();for(ch=$g;ch;)a>=ch.t&&(ch.f=ch.c(a-ch.t)),ch=ch.n;return a}function Ha(){for(var a,b=$g,c=1/0;b;)b.f?b=a?a.n=b.n:$g=b.n:(b.t8?function(a){return a/c}:function(a){return a*c},symbol:a}}function Ka(a){var b=a.decimal,c=a.thousands,d=a.grouping,e=a.currency,f=d&&c?function(a,b){for(var e=a.length,f=[],g=0,h=d[0],i=0;e>0&&h>0&&(i+h+1>b&&(h=Math.max(1,b-i)),f.push(a.substring(e-=h,e+h)),!((i+=h+1)>b));)h=d[g=(g+1)%d.length];return f.reverse().join(c)}:s;return function(a){var c=fh.exec(a),d=c[1]||" ",g=c[2]||">",h=c[3]||"-",i=c[4]||"",j=c[5],k=+c[6],l=c[7],m=c[8],n=c[9],o=1,p="",q="",r=!1,s=!0;switch(m&&(m=+m.substring(1)),(j||"0"===d&&"="===g)&&(j=d="0",g="="),n){case"n":l=!0,n="g";break;case"%":o=100,q="%",n="f";break;case"p":o=100,q="%",n="r";break;case"b":case"o":case"x":case"X":"#"===i&&(p="0"+n.toLowerCase());case"c":s=!1;case"d":r=!0,m=0;break;case"s":o=-1,n="r"}"$"===i&&(p=e[0],q=e[1]),"r"!=n||m||(n="g"),null!=m&&("g"==n?m=Math.max(1,Math.min(21,m)):("e"==n||"f"==n)&&(m=Math.max(0,Math.min(20,m)))),n=gh.get(n)||La;var t=j&&l;return function(a){var c=q;if(r&&a%1)return"";var e=0>a||0===a&&0>1/a?(a=-a,"-"):"-"===h?"":h;if(0>o){var i=bg.formatPrefix(a,m);a=i.scale(a),c=i.symbol+q}else a*=o;a=n(a,m);var u,v,w=a.lastIndexOf(".");if(0>w){var x=s?a.lastIndexOf("e"):-1;0>x?(u=a,v=""):(u=a.substring(0,x),v=a.substring(x))}else u=a.substring(0,w),v=b+a.substring(w+1);!j&&l&&(u=f(u,1/0));var y=p.length+u.length+v.length+(t?0:e.length),z=k>y?new Array(y=k-y+1).join(d):"";return t&&(u=f(z+u,z.length?k-v.length:1/0)),e+=p,a=u+v,("<"===g?e+a+z:">"===g?z+e+a:"^"===g?z.substring(0,y>>=1)+e+a+z.substring(y):e+(t?a:z+a))+c}}}function La(a){return a+""}function Ma(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Na(a,b,c){function d(b){var c=a(b),d=f(c,1);return d-b>b-c?c:d}function e(c){return b(c=a(new ih(c-1)),1),c}function f(a,c){return b(a=new ih(+a),c),a}function g(a,d,f){var g=e(a),h=[];if(f>1)for(;d>g;)c(g)%f||h.push(new Date(+g)),b(g,1);else for(;d>g;)h.push(new Date(+g)),b(g,1);return h}function h(a,b,c){try{ih=Ma;var d=new Ma;return d._=a,g(d,b,c)}finally{ih=Date}}a.floor=a,a.round=d,a.ceil=e,a.offset=f,a.range=g;var i=a.utc=Oa(a);return i.floor=i,i.round=Oa(d),i.ceil=Oa(e),i.offset=Oa(f),i.range=h,a}function Oa(a){return function(b,c){try{ih=Ma;var d=new Ma;return d._=b,a(d,c)._}finally{ih=Date}}}function Pa(a){function b(a){function b(b){for(var c,e,f,g=[],h=-1,i=0;++hh;){if(d>=j)return-1;if(e=b.charCodeAt(h++),37===e){if(g=b.charAt(h++),f=D[g in kh?b.charAt(h++):g],!f||(d=f(a,c,d))<0)return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function d(a,b,c){w.lastIndex=0;var d=w.exec(b.slice(c));return d?(a.w=x.get(d[0].toLowerCase()),c+d[0].length):-1}function e(a,b,c){u.lastIndex=0;var d=u.exec(b.slice(c));return d?(a.w=v.get(d[0].toLowerCase()),c+d[0].length):-1}function f(a,b,c){A.lastIndex=0;var d=A.exec(b.slice(c));return d?(a.m=B.get(d[0].toLowerCase()),c+d[0].length):-1}function g(a,b,c){y.lastIndex=0;var d=y.exec(b.slice(c));return d?(a.m=z.get(d[0].toLowerCase()),c+d[0].length):-1}function h(a,b,d){return c(a,C.c.toString(),b,d)}function i(a,b,d){return c(a,C.x.toString(),b,d)}function j(a,b,d){return c(a,C.X.toString(),b,d)}function k(a,b,c){var d=t.get(b.slice(c,c+=2).toLowerCase());return null==d?-1:(a.p=d,c)}var l=a.dateTime,m=a.date,n=a.time,o=a.periods,p=a.days,q=a.shortDays,r=a.months,s=a.shortMonths;b.utc=function(a){function c(a){try{ih=Ma;var b=new ih;return b._=a,d(b)}finally{ih=Date}}var d=b(a);return c.parse=function(a){try{ih=Ma;var b=d.parse(a);return b&&b._}finally{ih=Date}},c.toString=d.toString,c},b.multi=b.utc.multi=hb;var t=bg.map(),u=Ra(p),v=Sa(p),w=Ra(q),x=Sa(q),y=Ra(r),z=Sa(r),A=Ra(s),B=Sa(s);o.forEach(function(a,b){t.set(a.toLowerCase(),b)});var C={a:function(a){return q[a.getDay()]},A:function(a){return p[a.getDay()]},b:function(a){return s[a.getMonth()]},B:function(a){return r[a.getMonth()]},c:b(l),d:function(a,b){return Qa(a.getDate(),b,2)},e:function(a,b){return Qa(a.getDate(),b,2)},H:function(a,b){return Qa(a.getHours(),b,2)},I:function(a,b){return Qa(a.getHours()%12||12,b,2)},j:function(a,b){return Qa(1+hh.dayOfYear(a),b,3)},L:function(a,b){return Qa(a.getMilliseconds(),b,3)},m:function(a,b){return Qa(a.getMonth()+1,b,2)},M:function(a,b){return Qa(a.getMinutes(),b,2)},p:function(a){return o[+(a.getHours()>=12)]},S:function(a,b){return Qa(a.getSeconds(),b,2)},U:function(a,b){return Qa(hh.sundayOfYear(a),b,2)},w:function(a){return a.getDay()},W:function(a,b){return Qa(hh.mondayOfYear(a),b,2)},x:b(m),X:b(n),y:function(a,b){return Qa(a.getFullYear()%100,b,2)},Y:function(a,b){return Qa(a.getFullYear()%1e4,b,4)},Z:fb,"%":function(){return"%"}},D={a:d,A:e,b:f,B:g,c:h,d:_a,e:_a,H:bb,I:bb,j:ab,L:eb,m:$a,M:cb,p:k,S:db,U:Ua,w:Ta,W:Va,x:i,X:j,y:Xa,Y:Wa,Z:Ya,"%":gb};return b}function Qa(a,b,c){var d=0>a?"-":"",e=(d?-a:a)+"",f=e.length;return d+(c>f?new Array(c-f+1).join(b)+e:e)}function Ra(a){return new RegExp("^(?:"+a.map(bg.requote).join("|")+")","i")}function Sa(a){for(var b=new j,c=-1,d=a.length;++c68?1900:2e3)}function $a(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.m=d[0]-1,c+d[0].length):-1}function _a(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.d=+d[0],c+d[0].length):-1}function ab(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+3));return d?(a.j=+d[0],c+d[0].length):-1}function bb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.H=+d[0],c+d[0].length):-1}function cb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.M=+d[0],c+d[0].length):-1}function db(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+2));return d?(a.S=+d[0],c+d[0].length):-1}function eb(a,b,c){lh.lastIndex=0;var d=lh.exec(b.slice(c,c+3));return d?(a.L=+d[0],c+d[0].length):-1}function fb(a){var b=a.getTimezoneOffset(),c=b>0?"-":"+",d=ng(b)/60|0,e=ng(b)%60;return c+Qa(d,"0",2)+Qa(e,"0",2)}function gb(a,b,c){mh.lastIndex=0;var d=mh.exec(b.slice(c,c+1));return d?c+d[0].length:-1}function hb(a){for(var b=a.length,c=-1;++c=0?1:-1,h=g*c,i=Math.cos(b),j=Math.sin(b),k=f*j,l=e*i+k*Math.cos(h),m=k*g*Math.sin(h);sh.add(Math.atan2(m,l)),d=a,e=i,f=j}var b,c,d,e,f;th.point=function(g,h){th.point=a,d=(b=g)*Jg,e=Math.cos(h=(c=h)*Jg/2+Fg/4),f=Math.sin(h)},th.lineEnd=function(){a(b,c)}}function ob(a){var b=a[0],c=a[1],d=Math.cos(c);return[d*Math.cos(b),d*Math.sin(b),Math.sin(c)]}function pb(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function qb(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function rb(a,b){a[0]+=b[0],a[1]+=b[1],a[2]+=b[2]}function sb(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function tb(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);a[0]/=b,a[1]/=b,a[2]/=b}function ub(a){return[Math.atan2(a[1],a[0]),ba(a[2])]}function vb(a,b){return ng(a[0]-b[0])h;++h)e.point((c=a[h])[0],c[1]);return void e.lineEnd()}var i=new Fb(c,a,null,!0),j=new Fb(c,null,i,!1);i.o=j,f.push(i),g.push(j),i=new Fb(d,a,null,!1),j=new Fb(d,null,i,!0),i.o=j,f.push(i),g.push(j)}}),g.sort(b),Eb(f),Eb(g),f.length){for(var h=0,i=c,j=g.length;j>h;++h)g[h].e=i=!i;for(var k,l,m=f[0];;){for(var n=m,o=!0;n.v;)if((n=n.n)===m)return;k=n.z,e.lineStart();do{if(n.v=n.o.v=!0,n.e){if(o)for(var h=0,j=k.length;j>h;++h)e.point((l=k[h])[0],l[1]);else d(n.x,n.n.x,1,e);n=n.n}else{if(o){k=n.p.z;for(var h=k.length-1;h>=0;--h)e.point((l=k[h])[0],l[1])}else d(n.x,n.p.x,-1,e);n=n.p}n=n.o,k=n.z,o=!o}while(!n.v);e.lineEnd()}}}function Eb(a){if(b=a.length){for(var b,c,d=0,e=a[0];++d0){for(v||(f.polygonStart(),v=!0),f.lineStart();++g1&&2&b&&c.push(c.pop().concat(c.shift())),n.push(c.filter(Hb))}var n,o,p,q=b(f),r=e.invert(d[0],d[1]),s={point:g,lineStart:i,lineEnd:j,polygonStart:function(){s.point=k,s.lineStart=l,s.lineEnd=m,n=[],o=[]},polygonEnd:function(){s.point=g,s.lineStart=i,s.lineEnd=j,n=bg.merge(n);var a=Nb(r,o);n.length?(v||(f.polygonStart(),v=!0),Db(n,Jb,a,c,f)):a&&(v||(f.polygonStart(),v=!0),f.lineStart(),c(null,null,1,f),f.lineEnd()),v&&(f.polygonEnd(),v=!1),n=o=null},sphere:function(){f.polygonStart(),f.lineStart(),c(null,null,1,f),f.lineEnd(),f.polygonEnd()}},t=Ib(),u=b(t),v=!1;return s}}function Hb(a){return a.length>1}function Ib(){var a,b=[];return{lineStart:function(){b.push(a=[])},point:function(b,c){a.push([b,c])},lineEnd:v,buffer:function(){var c=b;return b=[],a=null,c},rejoin:function(){b.length>1&&b.push(b.pop().concat(b.shift()))}}}function Jb(a,b){return((a=a.x)[0]<0?a[1]-Ig-Dg:Ig-a[1])-((b=b.x)[0]<0?b[1]-Ig-Dg:Ig-b[1])}function Kb(a){var b,c=0/0,d=0/0,e=0/0;return{lineStart:function(){a.lineStart(),b=1},point:function(f,g){var h=f>0?Fg:-Fg,i=ng(f-c);ng(i-Fg)0?Ig:-Ig),a.point(e,d),a.lineEnd(),a.lineStart(),a.point(h,d),a.point(f,d),b=0):e!==h&&i>=Fg&&(ng(c-e)Dg?Math.atan((Math.sin(b)*(f=Math.cos(d))*Math.sin(c)-Math.sin(d)*(e=Math.cos(b))*Math.sin(a))/(e*f*g)):(b+d)/2}function Mb(a,b,c,d){var e;if(null==a)e=c*Ig,d.point(-Fg,e),d.point(0,e),d.point(Fg,e),d.point(Fg,0),d.point(Fg,-e),d.point(0,-e),d.point(-Fg,-e),d.point(-Fg,0),d.point(-Fg,e);else if(ng(a[0]-b[0])>Dg){var f=a[0]h;++h){var j=b[h],k=j.length;if(k)for(var l=j[0],m=l[0],n=l[1]/2+Fg/4,o=Math.sin(n),p=Math.cos(n),q=1;;){q===k&&(q=0),a=j[q];var r=a[0],s=a[1]/2+Fg/4,t=Math.sin(s),u=Math.cos(s),v=r-m,w=v>=0?1:-1,x=w*v,y=x>Fg,z=o*t;if(sh.add(Math.atan2(z*w*Math.sin(x),p*u+z*Math.cos(x))),f+=y?v+w*Gg:v,y^m>=c^r>=c){var A=qb(ob(l),ob(a));tb(A);var B=qb(e,A);tb(B);var C=(y^v>=0?-1:1)*ba(B[2]);(d>C||d===C&&(A[0]||A[1]))&&(g+=y^v>=0?1:-1)}if(!q++)break;m=r,o=t,p=u,l=a}}return(-Dg>f||Dg>f&&0>sh)^1&g}function Ob(a){function b(a,b){return Math.cos(a)*Math.cos(b)>f}function c(a){var c,f,i,j,k;return{lineStart:function(){j=i=!1,k=1},point:function(l,m){var n,o=[l,m],p=b(l,m),q=g?p?0:e(l,m):p?e(l+(0>l?Fg:-Fg),m):0;if(!c&&(j=i=p)&&a.lineStart(),p!==i&&(n=d(c,o),(vb(c,n)||vb(o,n))&&(o[0]+=Dg,o[1]+=Dg,p=b(o[0],o[1]))),p!==i)k=0,p?(a.lineStart(),n=d(o,c),a.point(n[0],n[1])):(n=d(c,o),a.point(n[0],n[1]),a.lineEnd()),c=n;else if(h&&c&&g^p){var r;q&f||!(r=d(o,c,!0))||(k=0,g?(a.lineStart(),a.point(r[0][0],r[0][1]),a.point(r[1][0],r[1][1]),a.lineEnd()):(a.point(r[1][0],r[1][1]),a.lineEnd(),a.lineStart(),a.point(r[0][0],r[0][1])))}!p||c&&vb(c,o)||a.point(o[0],o[1]),c=o,i=p,f=q},lineEnd:function(){i&&a.lineEnd(),c=null},clean:function(){return k|(j&&i)<<1}}}function d(a,b,c){var d=ob(a),e=ob(b),g=[1,0,0],h=qb(d,e),i=pb(h,h),j=h[0],k=i-j*j;if(!k)return!c&&a;var l=f*i/k,m=-f*j/k,n=qb(g,h),o=sb(g,l),p=sb(h,m);rb(o,p);var q=n,r=pb(o,q),s=pb(q,q),t=r*r-s*(pb(o,o)-1);if(!(0>t)){var u=Math.sqrt(t),v=sb(q,(-r-u)/s);if(rb(v,o),v=ub(v),!c)return v;var w,x=a[0],y=b[0],z=a[1],A=b[1];x>y&&(w=x,x=y,y=w);var B=y-x,C=ng(B-Fg)B;if(!C&&z>A&&(w=z,z=A,A=w),D?C?z+A>0^v[1]<(ng(v[0]-x)Fg^(x<=v[0]&&v[0]<=y)){var E=sb(q,(-r+u)/s);return rb(E,o),[v,ub(E)]}}}function e(b,c){var d=g?a:Fg-a,e=0;return-d>b?e|=1:b>d&&(e|=2),-d>c?e|=4:c>d&&(e|=8),e}var f=Math.cos(a),g=f>0,h=ng(f)>Dg,i=nc(a,6*Jg);return Gb(b,c,i,g?[0,-a]:[-Fg,a-Fg])}function Pb(a,b,c,d){return function(e){var f,g=e.a,h=e.b,i=g.x,j=g.y,k=h.x,l=h.y,m=0,n=1,o=k-i,p=l-j;if(f=a-i,o||!(f>0)){if(f/=o,0>o){if(m>f)return;n>f&&(n=f)}else if(o>0){if(f>n)return;f>m&&(m=f)}if(f=c-i,o||!(0>f)){if(f/=o,0>o){if(f>n)return;f>m&&(m=f)}else if(o>0){if(m>f)return;n>f&&(n=f)}if(f=b-j,p||!(f>0)){if(f/=p,0>p){if(m>f)return;n>f&&(n=f)}else if(p>0){if(f>n)return;f>m&&(m=f)}if(f=d-j,p||!(0>f)){if(f/=p,0>p){if(f>n)return;f>m&&(m=f)}else if(p>0){if(m>f)return;n>f&&(n=f)}return m>0&&(e.a={x:i+m*o,y:j+m*p}),1>n&&(e.b={x:i+n*o,y:j+n*p}),e}}}}}}function Qb(a,b,c,d){function e(d,e){return ng(d[0]-a)0?0:3:ng(d[0]-c)0?2:1:ng(d[1]-b)0?1:0:e>0?3:2}function f(a,b){return g(a.x,b.x)}function g(a,b){var c=e(a,1),d=e(b,1);return c!==d?c-d:0===c?b[1]-a[1]:1===c?a[0]-b[0]:2===c?a[1]-b[1]:b[0]-a[0]}return function(h){function i(a){for(var b=0,c=q.length,d=a[1],e=0;c>e;++e)for(var f,g=1,h=q[e],i=h.length,j=h[0];i>g;++g)f=h[g],j[1]<=d?f[1]>d&&_(j,f,a)>0&&++b:f[1]<=d&&_(j,f,a)<0&&--b,j=f;return 0!==b}function j(f,h,i,j){var k=0,l=0;if(null==f||(k=e(f,i))!==(l=e(h,i))||g(f,h)<0^i>0){do j.point(0===k||3===k?a:c,k>1?d:b);while((k=(k+i+4)%4)!==l)}else j.point(h[0],h[1])}function k(e,f){return e>=a&&c>=e&&f>=b&&d>=f}function l(a,b){k(a,b)&&h.point(a,b)}function m(){D.point=o,q&&q.push(r=[]),y=!0,x=!1,v=w=0/0}function n(){p&&(o(s,t),u&&x&&B.rejoin(),p.push(B.buffer())),D.point=l,x&&h.lineEnd()}function o(a,b){a=Math.max(-Hh,Math.min(Hh,a)),b=Math.max(-Hh,Math.min(Hh,b));var c=k(a,b);if(q&&r.push([a,b]),y)s=a,t=b,u=c,y=!1,c&&(h.lineStart(),h.point(a,b));else if(c&&x)h.point(a,b);else{var d={a:{x:v,y:w},b:{x:a,y:b}};C(d)?(x||(h.lineStart(),h.point(d.a.x,d.a.y)),h.point(d.b.x,d.b.y),c||h.lineEnd(),z=!1):c&&(h.lineStart(),h.point(a,b),z=!1)}v=a,w=b,x=c}var p,q,r,s,t,u,v,w,x,y,z,A=h,B=Ib(),C=Pb(a,b,c,d),D={point:l,lineStart:m,lineEnd:n,polygonStart:function(){h=B,p=[],q=[],z=!0},polygonEnd:function(){h=A,p=bg.merge(p);var b=i([a,d]),c=z&&b,e=p.length;(c||e)&&(h.polygonStart(),c&&(h.lineStart(),j(null,null,1,h),h.lineEnd()),e&&Db(p,f,b,j,h),h.polygonEnd()),p=q=r=null}};return D}}function Rb(a){var b=0,c=Fg/3,d=fc(a),e=d(b,c);return e.parallels=function(a){return arguments.length?d(b=a[0]*Fg/180,c=a[1]*Fg/180):[b/Fg*180,c/Fg*180]},e}function Sb(a,b){function c(a,b){var c=Math.sqrt(f-2*e*Math.sin(b))/e;return[c*Math.sin(a*=e),g-c*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),g=Math.sqrt(f)/e;return c.invert=function(a,b){var c=g-b;return[Math.atan2(a,c)/e,ba((f-(a*a+c*c)*e*e)/(2*e))]},c}function Tb(){function a(a,b){Jh+=e*a-d*b,d=a,e=b}var b,c,d,e;Oh.point=function(f,g){Oh.point=a,b=d=f,c=e=g},Oh.lineEnd=function(){a(b,c)}}function Ub(a,b){Kh>a&&(Kh=a),a>Mh&&(Mh=a),Lh>b&&(Lh=b),b>Nh&&(Nh=b)}function Vb(){function a(a,b){g.push("M",a,",",b,f)}function b(a,b){g.push("M",a,",",b),h.point=c}function c(a,b){g.push("L",a,",",b)}function d(){h.point=a}function e(){g.push("Z")}var f=Wb(4.5),g=[],h={point:a,lineStart:function(){h.point=b},lineEnd:d,polygonStart:function(){h.lineEnd=e},polygonEnd:function(){h.lineEnd=d,h.point=a},pointRadius:function(a){return f=Wb(a),h},result:function(){if(g.length){var a=g.join("");return g=[],a}}};return h}function Wb(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function Xb(a,b){wh+=a,xh+=b,++yh}function Yb(){function a(a,d){var e=a-b,f=d-c,g=Math.sqrt(e*e+f*f);zh+=g*(b+a)/2,Ah+=g*(c+d)/2,Bh+=g,Xb(b=a,c=d)}var b,c;Qh.point=function(d,e){Qh.point=a,Xb(b=d,c=e)}}function Zb(){Qh.point=Xb}function $b(){function a(a,b){var c=a-d,f=b-e,g=Math.sqrt(c*c+f*f);zh+=g*(d+a)/2,Ah+=g*(e+b)/2,Bh+=g,g=e*a-d*b,Ch+=g*(d+a),Dh+=g*(e+b),Eh+=3*g,Xb(d=a,e=b)}var b,c,d,e;Qh.point=function(f,g){Qh.point=a,Xb(b=d=f,c=e=g)},Qh.lineEnd=function(){a(b,c)}}function _b(a){function b(b,c){a.moveTo(b+g,c),a.arc(b,c,g,0,Gg)}function c(b,c){a.moveTo(b,c),h.point=d}function d(b,c){a.lineTo(b,c)}function e(){h.point=b}function f(){a.closePath()}var g=4.5,h={point:b,lineStart:function(){h.point=c},lineEnd:e,polygonStart:function(){h.lineEnd=f},polygonEnd:function(){h.lineEnd=e,h.point=b},pointRadius:function(a){return g=a,h},result:v};return h}function ac(a){function b(a){return(h?d:c)(a)}function c(b){return dc(b,function(c,d){c=a(c,d),b.point(c[0],c[1])})}function d(b){function c(c,d){c=a(c,d),b.point(c[0],c[1])}function d(){t=0/0,y.point=f,b.lineStart()}function f(c,d){var f=ob([c,d]),g=a(c,d);e(t,u,s,v,w,x,t=g[0],u=g[1],s=c,v=f[0],w=f[1],x=f[2],h,b),b.point(t,u)}function g(){y.point=c,b.lineEnd()}function i(){d(),y.point=j,y.lineEnd=k}function j(a,b){f(l=a,m=b),n=t,o=u,p=v,q=w,r=x,y.point=f}function k(){e(t,u,s,v,w,x,n,o,l,p,q,r,h,b),y.lineEnd=g,g()}var l,m,n,o,p,q,r,s,t,u,v,w,x,y={point:c,lineStart:d,lineEnd:g,polygonStart:function(){ b.polygonStart(),y.lineStart=i},polygonEnd:function(){b.polygonEnd(),y.lineStart=d}};return y}function e(b,c,d,h,i,j,k,l,m,n,o,p,q,r){var s=k-b,t=l-c,u=s*s+t*t;if(u>4*f&&q--){var v=h+n,w=i+o,x=j+p,y=Math.sqrt(v*v+w*w+x*x),z=Math.asin(x/=y),A=ng(ng(x)-1)f||ng((s*E+t*F)/u-.5)>.3||g>h*n+i*o+j*p)&&(e(b,c,d,h,i,j,C,D,A,v/=y,w/=y,x,q,r),r.point(C,D),e(C,D,A,v,w,x,k,l,m,n,o,p,q,r))}}var f=.5,g=Math.cos(30*Jg),h=16;return b.precision=function(a){return arguments.length?(h=(f=a*a)>0&&16,b):Math.sqrt(f)},b}function bc(a){var b=ac(function(b,c){return a([b*Kg,c*Kg])});return function(a){return gc(b(a))}}function cc(a){this.stream=a}function dc(a,b){return{point:b,sphere:function(){a.sphere()},lineStart:function(){a.lineStart()},lineEnd:function(){a.lineEnd()},polygonStart:function(){a.polygonStart()},polygonEnd:function(){a.polygonEnd()}}}function ec(a){return fc(function(){return a})()}function fc(a){function b(a){return a=h(a[0]*Jg,a[1]*Jg),[a[0]*m+i,j-a[1]*m]}function c(a){return a=h.invert((a[0]-i)/m,(j-a[1])/m),a&&[a[0]*Kg,a[1]*Kg]}function d(){h=Bb(g=jc(r,t,u),f);var a=f(p,q);return i=n-a[0]*m,j=o+a[1]*m,e()}function e(){return k&&(k.valid=!1,k=null),b}var f,g,h,i,j,k,l=ac(function(a,b){return a=f(a,b),[a[0]*m+i,j-a[1]*m]}),m=150,n=480,o=250,p=0,q=0,r=0,t=0,u=0,v=Gh,w=s,x=null,y=null;return b.stream=function(a){return k&&(k.valid=!1),k=gc(v(g,l(w(a)))),k.valid=!0,k},b.clipAngle=function(a){return arguments.length?(v=null==a?(x=a,Gh):Ob((x=+a)*Jg),e()):x},b.clipExtent=function(a){return arguments.length?(y=a,w=a?Qb(a[0][0],a[0][1],a[1][0],a[1][1]):s,e()):y},b.scale=function(a){return arguments.length?(m=+a,d()):m},b.translate=function(a){return arguments.length?(n=+a[0],o=+a[1],d()):[n,o]},b.center=function(a){return arguments.length?(p=a[0]%360*Jg,q=a[1]%360*Jg,d()):[p*Kg,q*Kg]},b.rotate=function(a){return arguments.length?(r=a[0]%360*Jg,t=a[1]%360*Jg,u=a.length>2?a[2]%360*Jg:0,d()):[r*Kg,t*Kg,u*Kg]},bg.rebind(b,l,"precision"),function(){return f=a.apply(this,arguments),b.invert=f.invert&&c,d()}}function gc(a){return dc(a,function(b,c){a.point(b*Jg,c*Jg)})}function hc(a,b){return[a,b]}function ic(a,b){return[a>Fg?a-Gg:-Fg>a?a+Gg:a,b]}function jc(a,b,c){return a?b||c?Bb(lc(a),mc(b,c)):lc(a):b||c?mc(b,c):ic}function kc(a){return function(b,c){return b+=a,[b>Fg?b-Gg:-Fg>b?b+Gg:b,c]}}function lc(a){var b=kc(a);return b.invert=kc(-a),b}function mc(a,b){function c(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*d+h*e;return[Math.atan2(i*f-k*g,h*d-j*e),ba(k*f+i*g)]}var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),g=Math.sin(b);return c.invert=function(a,b){var c=Math.cos(b),h=Math.cos(a)*c,i=Math.sin(a)*c,j=Math.sin(b),k=j*f-i*g;return[Math.atan2(i*f+j*g,h*d+k*e),ba(k*d-h*e)]},c}function nc(a,b){var c=Math.cos(a),d=Math.sin(a);return function(e,f,g,h){var i=g*b;null!=e?(e=oc(c,e),f=oc(c,f),(g>0?f>e:e>f)&&(e+=g*Gg)):(e=a+g*Gg,f=a-.5*i);for(var j,k=e;g>0?k>f:f>k;k-=i)h.point((j=ub([c,-d*Math.cos(k),-d*Math.sin(k)]))[0],j[1])}}function oc(a,b){var c=ob(b);c[0]-=a,tb(c);var d=aa(-c[1]);return((-c[2]<0?-d:d)+2*Math.PI-Dg)%(2*Math.PI)}function pc(a,b,c){var d=bg.range(a,b-Dg,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function qc(a,b,c){var d=bg.range(a,b-Dg,c).concat(b);return function(a){return d.map(function(b){return[b,a]})}}function rc(a){return a.source}function sc(a){return a.target}function tc(a,b,c,d){var e=Math.cos(b),f=Math.sin(b),g=Math.cos(d),h=Math.sin(d),i=e*Math.cos(a),j=e*Math.sin(a),k=g*Math.cos(c),l=g*Math.sin(c),m=2*Math.asin(Math.sqrt(fa(d-b)+e*g*fa(c-a))),n=1/Math.sin(m),o=m?function(a){var b=Math.sin(a*=m)*n,c=Math.sin(m-a)*n,d=c*i+b*k,e=c*j+b*l,g=c*f+b*h;return[Math.atan2(e,d)*Kg,Math.atan2(g,Math.sqrt(d*d+e*e))*Kg]}:function(){return[a*Kg,b*Kg]};return o.distance=m,o}function uc(){function a(a,e){var f=Math.sin(e*=Jg),g=Math.cos(e),h=ng((a*=Jg)-b),i=Math.cos(h);Rh+=Math.atan2(Math.sqrt((h=g*Math.sin(h))*h+(h=d*f-c*g*i)*h),c*f+d*g*i),b=a,c=f,d=g}var b,c,d;Sh.point=function(e,f){b=e*Jg,c=Math.sin(f*=Jg),d=Math.cos(f),Sh.point=a},Sh.lineEnd=function(){Sh.point=Sh.lineEnd=v}}function vc(a,b){function c(b,c){var d=Math.cos(b),e=Math.cos(c),f=a(d*e);return[f*e*Math.sin(b),f*Math.sin(c)]}return c.invert=function(a,c){var d=Math.sqrt(a*a+c*c),e=b(d),f=Math.sin(e),g=Math.cos(e);return[Math.atan2(a*f,d*g),Math.asin(d&&c*f/d)]},c}function wc(a,b){function c(a,b){g>0?-Ig+Dg>b&&(b=-Ig+Dg):b>Ig-Dg&&(b=Ig-Dg);var c=g/Math.pow(e(b),f);return[c*Math.sin(f*a),g-c*Math.cos(f*a)]}var d=Math.cos(a),e=function(a){return Math.tan(Fg/4+a/2)},f=a===b?Math.sin(a):Math.log(d/Math.cos(b))/Math.log(e(b)/e(a)),g=d*Math.pow(e(a),f)/f;return f?(c.invert=function(a,b){var c=g-b,d=$(f)*Math.sqrt(a*a+c*c);return[Math.atan2(a,c)/f,2*Math.atan(Math.pow(g/d,1/f))-Ig]},c):yc}function xc(a,b){function c(a,b){var c=f-b;return[c*Math.sin(e*a),f-c*Math.cos(e*a)]}var d=Math.cos(a),e=a===b?Math.sin(a):(d-Math.cos(b))/(b-a),f=d/e+a;return ng(e)e;e++){for(;d>1&&_(a[c[d-2]],a[c[d-1]],a[e])<=0;)--d;c[d++]=e}return c.slice(0,d)}function Ec(a,b){return a[0]-b[0]||a[1]-b[1]}function Fc(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function Gc(a,b,c,d){var e=a[0],f=c[0],g=b[0]-e,h=d[0]-f,i=a[1],j=c[1],k=b[1]-i,l=d[1]-j,m=(h*(i-j)-l*(e-f))/(l*g-h*k);return[e+m*g,i+m*k]}function Hc(a){var b=a[0],c=a[a.length-1];return!(b[0]-c[0]||b[1]-c[1])}function Ic(){bd(this),this.edge=this.site=this.circle=null}function Jc(a){var b=ci.pop()||new Ic;return b.site=a,b}function Kc(a){Uc(a),_h.remove(a),ci.push(a),bd(a)}function Lc(a){var b=a.circle,c=b.x,d=b.cy,e={x:c,y:d},f=a.P,g=a.N,h=[a];Kc(a);for(var i=f;i.circle&&ng(c-i.circle.x)k;++k)j=h[k],i=h[k-1],$c(j.edge,i.site,j.site,e);i=h[0],j=h[l-1],j.edge=Yc(i.site,j.site,null,e),Tc(i),Tc(j)}function Mc(a){for(var b,c,d,e,f=a.x,g=a.y,h=_h._;h;)if(d=Nc(h,g)-f,d>Dg)h=h.L;else{if(e=f-Oc(h,g),!(e>Dg)){d>-Dg?(b=h.P,c=h):e>-Dg?(b=h,c=h.N):b=c=h;break}if(!h.R){b=h;break}h=h.R}var i=Jc(a);if(_h.insert(b,i),b||c){if(b===c)return Uc(b),c=Jc(b.site),_h.insert(i,c),i.edge=c.edge=Yc(b.site,i.site),Tc(b),void Tc(c);if(!c)return void(i.edge=Yc(b.site,i.site));Uc(b),Uc(c);var j=b.site,k=j.x,l=j.y,m=a.x-k,n=a.y-l,o=c.site,p=o.x-k,q=o.y-l,r=2*(m*q-n*p),s=m*m+n*n,t=p*p+q*q,u={x:(q*s-n*t)/r+k,y:(m*t-p*s)/r+l};$c(c.edge,j,o,u),i.edge=Yc(j,a,null,u),c.edge=Yc(a,o,null,u),Tc(b),Tc(c)}}function Nc(a,b){var c=a.site,d=c.x,e=c.y,f=e-b;if(!f)return d;var g=a.P;if(!g)return-(1/0);c=g.site;var h=c.x,i=c.y,j=i-b;if(!j)return h;var k=h-d,l=1/f-1/j,m=k/j;return l?(-m+Math.sqrt(m*m-2*l*(k*k/(-2*j)-i+j/2+e-f/2)))/l+d:(d+h)/2}function Oc(a,b){var c=a.N;if(c)return Nc(c,b);var d=a.site;return d.y===b?d.x:1/0}function Pc(a){this.site=a,this.edges=[]}function Qc(a){for(var b,c,d,e,f,g,h,i,j,k,l=a[0][0],m=a[1][0],n=a[0][1],o=a[1][1],p=$h,q=p.length;q--;)if(f=p[q],f&&f.prepare())for(h=f.edges,i=h.length,g=0;i>g;)k=h[g].end(),d=k.x,e=k.y,j=h[++g%i].start(),b=j.x,c=j.y,(ng(d-b)>Dg||ng(e-c)>Dg)&&(h.splice(g,0,new _c(Zc(f.site,k,ng(d-l)Dg?{x:l,y:ng(b-l)Dg?{x:ng(c-o)Dg?{x:m,y:ng(b-m)Dg?{x:ng(c-n)=-Eg)){var n=i*i+j*j,o=k*k+l*l,p=(l*n-j*o)/m,q=(i*o-k*n)/m,l=q+h,r=di.pop()||new Sc;r.arc=a,r.site=e,r.x=p+g,r.y=l+Math.sqrt(p*p+q*q),r.cy=l,a.circle=r;for(var s=null,t=bi._;t;)if(r.yq||q>=h)return;if(m>o){if(f){if(f.y>=j)return}else f={x:q,y:i};c={x:q,y:j}}else{if(f){if(f.yd||d>1)if(m>o){if(f){if(f.y>=j)return}else f={x:(i-e)/d,y:i};c={x:(j-e)/d,y:j}}else{if(f){if(f.yn){if(f){if(f.x>=h)return}else f={x:g,y:d*g+e};c={x:h,y:d*h+e}}else{if(f){if(f.xf||l>g||d>m||e>n)){if(o=j.point){var o,p=b-j.x,q=c-j.y,r=p*p+q*q;if(i>r){var s=Math.sqrt(i=r);d=b-s,e=c-s,f=b+s,g=c+s,h=o}}for(var t=j.nodes,u=.5*(k+m),v=.5*(l+n),w=b>=u,x=c>=v,y=x<<1|w,z=y+4;z>y;++y)if(j=t[3&y])switch(3&y){case 0:a(j,k,l,u,v);break;case 1:a(j,u,l,m,v);break;case 2:a(j,k,v,u,n);break;case 3:a(j,u,v,m,n)}}}(a,d,e,f,g),h}function nd(a,b){a=bg.rgb(a),b=bg.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,g=b.g-d,h=b.b-e;return function(a){return"#"+ua(Math.round(c+f*a))+ua(Math.round(d+g*a))+ua(Math.round(e+h*a))}}function od(a,b){var c,d={},e={};for(c in a)c in b?d[c]=rd(a[c],b[c]):e[c]=a[c];for(c in b)c in a||(e[c]=b[c]);return function(a){for(c in d)e[c]=d[c](a);return e}}function pd(a,b){return a=+a,b=+b,function(c){return a*(1-c)+b*c}}function qd(a,b){var c,d,e,f=fi.lastIndex=gi.lastIndex=0,g=-1,h=[],i=[];for(a+="",b+="";(c=fi.exec(a))&&(d=gi.exec(b));)(e=d.index)>f&&(e=b.slice(f,e),h[g]?h[g]+=e:h[++g]=e),(c=c[0])===(d=d[0])?h[g]?h[g]+=d:h[++g]=d:(h[++g]=null,i.push({i:g,x:pd(c,d)})),f=gi.lastIndex;return fd;++d)h[(c=i[d]).i]=c.x(a);return h.join("")})}function rd(a,b){for(var c,d=bg.interpolators.length;--d>=0&&!(c=bg.interpolators[d](a,b)););return c}function sd(a,b){var c,d=[],e=[],f=a.length,g=b.length,h=Math.min(a.length,b.length);for(c=0;h>c;++c)d.push(rd(a[c],b[c]));for(;f>c;++c)e[c]=a[c];for(;g>c;++c)e[c]=b[c];return function(a){for(c=0;h>c;++c)e[c]=d[c](a);return e}}function td(a){return function(b){return 0>=b?0:b>=1?1:a(b)}}function ud(a){return function(b){return 1-a(1-b)}}function vd(a){return function(b){return.5*(.5>b?a(2*b):2-a(2-2*b))}}function wd(a){return a*a}function xd(a){return a*a*a}function yd(a){if(0>=a)return 0;if(a>=1)return 1;var b=a*a,c=b*a;return 4*(.5>a?c:3*(a-b)+c-.75)}function zd(a){return function(b){return Math.pow(b,a)}}function Ad(a){return 1-Math.cos(a*Ig)}function Bd(a){return Math.pow(2,10*(a-1))}function Cd(a){return 1-Math.sqrt(1-a*a)}function Dd(a,b){var c;return arguments.length<2&&(b=.45),arguments.length?c=b/Gg*Math.asin(1/a):(a=1,c=b/4),function(d){return 1+a*Math.pow(2,-10*d)*Math.sin((d-c)*Gg/b)}}function Ed(a){return a||(a=1.70158),function(b){return b*b*((a+1)*b-a)}}function Fd(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function Gd(a,b){a=bg.hcl(a),b=bg.hcl(b);var c=a.h,d=a.c,e=a.l,f=b.h-c,g=b.c-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.c:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return ka(c+f*a,d+g*a,e+h*a)+""}}function Hd(a,b){a=bg.hsl(a),b=bg.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,g=b.s-d,h=b.l-e;return isNaN(g)&&(g=0,d=isNaN(d)?b.s:d),isNaN(f)?(f=0,c=isNaN(c)?b.h:c):f>180?f-=360:-180>f&&(f+=360),function(a){return ia(c+f*a,d+g*a,e+h*a)+""}}function Id(a,b){a=bg.lab(a),b=bg.lab(b);var c=a.l,d=a.a,e=a.b,f=b.l-c,g=b.a-d,h=b.b-e;return function(a){return ma(c+f*a,d+g*a,e+h*a)+""}}function Jd(a,b){return b-=a,function(c){return Math.round(a+b*c)}}function Kd(a){var b=[a.a,a.b],c=[a.c,a.d],d=Md(b),e=Ld(b,c),f=Md(Nd(c,b,-e))||0;b[0]*c[1]180?k+=360:k-j>180&&(j+=360),e.push({i:d.push(d.pop()+"rotate(",null,")")-2,x:pd(j,k)})):k&&d.push(d.pop()+"rotate("+k+")"),l!=m?e.push({i:d.push(d.pop()+"skewX(",null,")")-2,x:pd(l,m)}):m&&d.push(d.pop()+"skewX("+m+")"),n[0]!=o[0]||n[1]!=o[1]?(c=d.push(d.pop()+"scale(",null,",",null,")"),e.push({i:c-4,x:pd(n[0],o[0])},{i:c-2,x:pd(n[1],o[1])})):(1!=o[0]||1!=o[1])&&d.push(d.pop()+"scale("+o+")"),c=e.length,function(a){for(var b,f=-1;++f=0;)c.push(e[d])}function _d(a,b){for(var c=[a],d=[];null!=(a=c.pop());)if(d.push(a),(f=a.children)&&(e=f.length))for(var e,f,g=-1;++gc;++c)(b=a[c][1])>e&&(d=c,e=b);return d}function ke(a){return a.reduce(le,0)}function le(a,b){return a+b[1]}function me(a,b){return ne(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function ne(a,b){for(var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];++c<=b;)f[c]=e*c+d;return f}function oe(a){return[bg.min(a),bg.max(a)]}function pe(a,b){return a.value-b.value}function qe(a,b){var c=a._pack_next;a._pack_next=b,b._pack_prev=a,b._pack_next=c,c._pack_prev=b}function re(a,b){a._pack_next=b,b._pack_prev=a}function se(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return.999*e*e>c*c+d*d}function te(a){function b(a){k=Math.min(a.x-a.r,k),l=Math.max(a.x+a.r,l),m=Math.min(a.y-a.r,m),n=Math.max(a.y+a.r,n)}if((c=a.children)&&(j=c.length)){var c,d,e,f,g,h,i,j,k=1/0,l=-(1/0),m=1/0,n=-(1/0);if(c.forEach(ue),d=c[0],d.x=-d.r,d.y=0,b(d),j>1&&(e=c[1],e.x=e.r,e.y=0,b(e),j>2))for(f=c[2],xe(d,e,f),b(f),qe(d,f),d._pack_prev=f,qe(f,e),e=d._pack_next,g=3;j>g;g++){xe(d,e,f=c[g]);var o=0,p=1,q=1;for(h=e._pack_next;h!==e;h=h._pack_next,p++)if(se(h,f)){o=1;break}if(1==o)for(i=d._pack_prev;i!==h._pack_prev&&!se(i,f);i=i._pack_prev,q++);o?(q>p||p==q&&e.rg;g++)f=c[g],f.x-=r,f.y-=s,t=Math.max(t,f.r+Math.sqrt(f.x*f.x+f.y*f.y));a.r=t,c.forEach(ve)}}function ue(a){a._pack_next=a._pack_prev=a}function ve(a){delete a._pack_next,delete a._pack_prev}function we(a,b,c,d){var e=a.children;if(a.x=b+=d*a.x,a.y=c+=d*a.y,a.r*=d,e)for(var f=-1,g=e.length;++f=0;)b=e[f],b.z+=c,b.m+=c,c+=b.s+(d+=b.c)}function De(a,b,c){return a.a.parent===b.parent?a.a:c}function Ee(a){return 1+bg.max(a,function(a){return a.y})}function Fe(a){return a.reduce(function(a,b){return a+b.x},0)/a.length}function Ge(a){var b=a.children;return b&&b.length?Ge(b[0]):a}function He(a){var b,c=a.children;return c&&(b=c.length)?He(c[b-1]):a}function Ie(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function Je(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];return 0>e&&(c+=e/2,e=0),0>f&&(d+=f/2,f=0),{x:c,y:d,dx:e,dy:f}}function Ke(a){var b=a[0],c=a[a.length-1];return c>b?[b,c]:[c,b]}function Le(a){return a.rangeExtent?a.rangeExtent():Ke(a.range())}function Me(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function Ne(a,b){var c,d=0,e=a.length-1,f=a[d],g=a[e];return f>g&&(c=d,d=e,e=c,c=f,f=g,g=c),a[d]=b.floor(f),a[e]=b.ceil(g),a}function Oe(a){return a?{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}:ri}function Pe(a,b,c,d){var e=[],f=[],g=0,h=Math.min(a.length,b.length)-1;for(a[h]2?Pe:Me,i=d?Qd:Pd;return g=e(a,b,i,c),h=e(b,a,i,rd),f}function f(a){return g(a)}var g,h;return f.invert=function(a){return h(a)},f.domain=function(b){return arguments.length?(a=b.map(Number),e()):a},f.range=function(a){return arguments.length?(b=a,e()):b},f.rangeRound=function(a){return f.range(a).interpolate(Jd)},f.clamp=function(a){return arguments.length?(d=a,e()):d},f.interpolate=function(a){return arguments.length?(c=a,e()):c},f.ticks=function(b){return Ue(a,b)},f.tickFormat=function(b,c){return Ve(a,b,c)},f.nice=function(b){return Se(a,b),e()},f.copy=function(){return Qe(a,b,c,d)},e()}function Re(a,b){return bg.rebind(a,b,"range","rangeRound","interpolate","clamp")}function Se(a,b){return Ne(a,Oe(Te(a,b)[2]))}function Te(a,b){null==b&&(b=10);var c=Ke(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),f=b/d*e;return.15>=f?e*=10:.35>=f?e*=5:.75>=f&&(e*=2),c[0]=Math.ceil(c[0]/e)*e,c[1]=Math.floor(c[1]/e)*e+.5*e,c[2]=e,c}function Ue(a,b){return bg.range.apply(bg,Te(a,b))}function Ve(a,b,c){var d=Te(a,b);if(c){var e=fh.exec(c);if(e.shift(),"s"===e[8]){var f=bg.formatPrefix(Math.max(ng(d[0]),ng(d[1])));return e[7]||(e[7]="."+We(f.scale(d[2]))),e[8]="f",c=bg.format(e.join("")),function(a){return c(f.scale(a))+f.symbol}}e[7]||(e[7]="."+Xe(e[8],d)),c=e.join("")}else c=",."+We(d[2])+"f";return bg.format(c)}function We(a){return-Math.floor(Math.log(a)/Math.LN10+.01)}function Xe(a,b){var c=We(b[2]);return a in si?Math.abs(c-We(Math.max(ng(b[0]),ng(b[1]))))+ +("e"!==a):c-2*("%"===a)}function Ye(a,b,c,d){function e(a){return(c?Math.log(0>a?0:a):-Math.log(a>0?0:-a))/Math.log(b)}function f(a){return c?Math.pow(b,a):-Math.pow(b,-a)}function g(b){return a(e(b))}return g.invert=function(b){return f(a.invert(b))},g.domain=function(b){return arguments.length?(c=b[0]>=0,a.domain((d=b.map(Number)).map(e)),g):d},g.base=function(c){return arguments.length?(b=+c,a.domain(d.map(e)),g):b},g.nice=function(){var b=Ne(d.map(e),c?Math:ui);return a.domain(b),d=b.map(f),g},g.ticks=function(){var a=Ke(d),g=[],h=a[0],i=a[1],j=Math.floor(e(h)),k=Math.ceil(e(i)),l=b%1?2:b;if(isFinite(k-j)){if(c){for(;k>j;j++)for(var m=1;l>m;m++)g.push(f(j)*m);g.push(f(j))}else for(g.push(f(j));j++0;m--)g.push(f(j)*m);for(j=0;g[j]i;k--);g=g.slice(j,k)}return g},g.tickFormat=function(a,b){if(!arguments.length)return ti;arguments.length<2?b=ti:"function"!=typeof b&&(b=bg.format(b));var d,h=Math.max(.1,a/g.ticks().length),i=c?(d=1e-12,Math.ceil):(d=-1e-12,Math.floor);return function(a){return a/f(i(e(a)+d))<=h?b(a):""}},g.copy=function(){return Ye(a.copy(),b,c,d)},Re(g,a)}function Ze(a,b,c){function d(b){return a(e(b))}var e=$e(b),f=$e(1/b);return d.invert=function(b){return f(a.invert(b))},d.domain=function(b){return arguments.length?(a.domain((c=b.map(Number)).map(e)),d):c},d.ticks=function(a){return Ue(c,a)},d.tickFormat=function(a,b){return Ve(c,a,b)},d.nice=function(a){return d.domain(Se(c,a))},d.exponent=function(g){return arguments.length?(e=$e(b=g),f=$e(1/b),a.domain(c.map(e)),d):b},d.copy=function(){return Ze(a.copy(),b,c)},Re(d,a)}function $e(a){return function(b){return 0>b?-Math.pow(-b,a):Math.pow(b,a)}}function _e(a,b){function c(c){return f[((e.get(c)||("range"===b.t?e.set(c,a.push(c)):0/0))-1)%f.length]}function d(b,c){return bg.range(a.length).map(function(a){return b+c*a})}var e,f,g;return c.domain=function(d){if(!arguments.length)return a;a=[],e=new j;for(var f,g=-1,h=d.length;++gc?[0/0,0/0]:[c>0?h[c-1]:a[0],cb?0/0:b/f+a,[b,b+1/f]},d.copy=function(){return bf(a,b,c)},e()}function cf(a,b){function c(c){return c>=c?b[bg.bisect(a,c)]:void 0}return c.domain=function(b){return arguments.length?(a=b,c):a},c.range=function(a){return arguments.length?(b=a,c):b},c.invertExtent=function(c){return c=b.indexOf(c),[a[c-1],a[c]]},c.copy=function(){return cf(a,b)},c}function df(a){function b(a){return+a}return b.invert=b,b.domain=b.range=function(c){return arguments.length?(a=c.map(b),b):a},b.ticks=function(b){return Ue(a,b)},b.tickFormat=function(b,c){return Ve(a,b,c)},b.copy=function(){return df(a)},b}function ef(){return 0}function ff(a){return a.innerRadius}function gf(a){return a.outerRadius}function hf(a){return a.startAngle}function jf(a){return a.endAngle}function kf(a){return a&&a.padAngle}function lf(a,b,c,d){return(a-c)*b-(b-d)*a>0?0:1}function mf(a,b,c,d,e){var f=a[0]-b[0],g=a[1]-b[1],h=(e?d:-d)/Math.sqrt(f*f+g*g),i=h*g,j=-h*f,k=a[0]+i,l=a[1]+j,m=b[0]+i,n=b[1]+j,o=(k+m)/2,p=(l+n)/2,q=m-k,r=n-l,s=q*q+r*r,t=c-d,u=k*n-m*l,v=(0>r?-1:1)*Math.sqrt(t*t*s-u*u),w=(u*r-q*v)/s,x=(-u*q-r*v)/s,y=(u*r+q*v)/s,z=(-u*q+r*v)/s,A=w-o,B=x-p,C=y-o,D=z-p;return A*A+B*B>C*C+D*D&&(w=y,x=z),[[w-i,x-j],[w*c/t,x*c/t]]}function nf(a){function b(b){function g(){j.push("M",f(a(k),h))}for(var i,j=[],k=[],l=-1,m=b.length,n=Aa(c),o=Aa(d);++l1&&e.push("H",d[0]),e.join("")}function rf(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b1){h=b[1],f=a[i],i++,d+="C"+(e[0]+g[0])+","+(e[1]+g[1])+","+(f[0]-h[0])+","+(f[1]-h[1])+","+f[0]+","+f[1];for(var j=2;j9&&(e=3*b/Math.sqrt(e),g[h]=e*c,g[h+1]=e*d));for(h=-1;++h<=i;)e=(a[Math.min(i,h+1)][0]-a[Math.max(0,h-1)][0])/(6*(1+g[h]*g[h])),f.push([e||0,g[h]*e||0]);return f}function Hf(a){return a.length<3?of(a):a[0]+wf(a,Gf(a))}function If(a){for(var b,c,d,e=-1,f=a.length;++ed)return k();var e=f[f.active];e&&(--f.count,delete f[f.active],e.event&&e.event.interrupt.call(a,a.__data__,e.index)),f.active=d,g.event&&g.event.start.call(a,a.__data__,b),g.tween.forEach(function(c,d){(d=d.call(a,a.__data__,b))&&p.push(d)}),m=g.ease,l=g.duration,bg.timer(function(){return o.c=j(c||1)?Cb:j,1},0,h)}function j(c){if(f.active!==d)return 1;for(var e=c/l,h=m(e),i=p.length;i>0;)p[--i].call(a,h);return e>=1?(g.event&&g.event.end.call(a,a.__data__,b),k()):void 0}function k(){return--f.count?delete f[d]:delete a[c],1}var l,m,n=g.delay,o=ch,p=[];return o.t=n+h,e>=n?i(e-n):void(o.c=i)},0,h)}}function Wf(a,b,c){a.attr("transform",function(a){var d=b(a);return"translate("+(isFinite(d)?d:c(a))+",0)"})}function Xf(a,b,c){a.attr("transform",function(a){var d=b(a);return"translate(0,"+(isFinite(d)?d:c(a))+")"})}function Yf(a){return a.toISOString()}function Zf(a,b,c){function d(b){return a(b)}function e(a,c){var d=a[1]-a[0],e=d/c,f=bg.bisect(Ti,e);return f==Ti.length?[b.year,Te(a.map(function(a){return a/31536e6}),c)[2]]:f?b[e/Ti[f-1]1?{floor:function(b){for(;c(b=a.floor(b));)b=$f(b-1);return b},ceil:function(b){for(;c(b=a.ceil(b));)b=$f(+b+1);return b}}:a))},d.ticks=function(a,b){var c=Ke(d.domain()),f=null==a?e(c,10):"number"==typeof a?e(c,a):!a.range&&[{range:a},b];return f&&(a=f[0],b=f[1]),a.range(c[0],$f(+c[1]+1),1>b?1:b)},d.tickFormat=function(){return c},d.copy=function(){return Zf(a.copy(),b,c)},Re(d,a)}function $f(a){return new Date(a)}function _f(a){return JSON.parse(a.responseText)}function ag(a){var b=eg.createRange();return b.selectNode(eg.body),b.createContextualFragment(a.responseText)}var bg={version:"3.5.5"},cg=[].slice,dg=function(a){return cg.call(a)},eg=this.document;if(eg)try{dg(eg.documentElement.childNodes)[0].nodeType}catch(fg){dg=function(a){for(var b=a.length,c=new Array(b);b--;)c[b]=a[b];return c}}if(Date.now||(Date.now=function(){return+new Date}),eg)try{eg.createElement("DIV").style.setProperty("opacity",0,"")}catch(gg){var hg=this.Element.prototype,ig=hg.setAttribute,jg=hg.setAttributeNS,kg=this.CSSStyleDeclaration.prototype,lg=kg.setProperty;hg.setAttribute=function(a,b){ig.call(this,a,b+"")},hg.setAttributeNS=function(a,b,c){jg.call(this,a,b,c+"")},kg.setProperty=function(a,b,c){lg.call(this,a,b+"",c)}}bg.ascending=c,bg.descending=function(a,b){return a>b?-1:b>a?1:b>=a?0:0/0},bg.min=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=d){c=d;break}for(;++ed&&(c=d)}else{for(;++e=d){c=d;break}for(;++ed&&(c=d)}return c},bg.max=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=d){c=d;break}for(;++ec&&(c=d)}else{for(;++e=d){c=d;break}for(;++ec&&(c=d)}return c},bg.extent=function(a,b){var c,d,e,f=-1,g=a.length;if(1===arguments.length){for(;++f=d){c=e=d;break}for(;++fd&&(c=d),d>e&&(e=d))}else{for(;++f=d){c=e=d;break}for(;++fd&&(c=d),d>e&&(e=d))}return[c,e]},bg.sum=function(a,b){var c,d=0,f=a.length,g=-1;if(1===arguments.length)for(;++g1?i/(k-1):void 0},bg.deviation=function(){var a=bg.variance.apply(this,arguments);return a?Math.sqrt(a):a};var mg=f(c);bg.bisectLeft=mg.left,bg.bisect=bg.bisectRight=mg.right,bg.bisector=function(a){return f(1===a.length?function(b,d){return c(a(b),d)}:a)},bg.shuffle=function(a,b,c){(f=arguments.length)<3&&(c=a.length,2>f&&(b=0));for(var d,e,f=c-b;f;)e=Math.random()*f--|0,d=a[f+b],a[f+b]=a[e+b],a[e+b]=d;return a},bg.permute=function(a,b){for(var c=b.length,d=new Array(c);c--;)d[c]=a[b[c]];return d},bg.pairs=function(a){for(var b,c=0,d=a.length-1,e=a[0],f=new Array(0>d?0:d);d>c;)f[c]=[b=e,e=a[++c]];return f},bg.zip=function(){if(!(d=arguments.length))return[];for(var a=-1,b=bg.min(arguments,g),c=new Array(b);++a=0;)for(d=a[e],b=d.length;--b>=0;)c[--g]=d[b];return c};var ng=Math.abs;bg.range=function(a,b,c){if(arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0)),(b-a)/c===1/0)throw new Error("infinite range");var d,e=[],f=h(ng(c)),g=-1;if(a*=f,b*=f,c*=f,0>c)for(;(d=a+c*++g)>b;)e.push(d/f);else for(;(d=a+c*++g)=f.length)return d?d.call(e,g):c?g.sort(c):g;for(var i,k,l,m,n=-1,o=g.length,p=f[h++],q=new j;++n=f.length)return a;var d=[],e=g[c++];return a.forEach(function(a,e){d.push({key:a,values:b(e,c)})}),e?d.sort(function(a,b){return e(a.key,b.key)}):d}var c,d,e={},f=[],g=[];return e.map=function(b,c){return a(c,b,0)},e.entries=function(c){return b(a(bg.map,c,0),0)},e.key=function(a){return f.push(a),e},e.sortKeys=function(a){return g[f.length-1]=a,e},e.sortValues=function(a){return c=a,e},e.rollup=function(a){return d=a,e},e},bg.set=function(a){var b=new r;if(a)for(var c=0,d=a.length;d>c;++c)b.add(a[c]);return b},i(r,{has:m,add:function(a){return this._[k(a+="")]=!0,a},remove:n,values:o,size:p,empty:q,forEach:function(a){for(var b in this._)a.call(this,l(b))}}),bg.behavior={},bg.rebind=function(a,b){for(var c,d=1,e=arguments.length;++d=0&&(d=a.slice(c+1),a=a.slice(0,c)),a)return arguments.length<2?this[a].on(d):this[a].on(d,b);if(2===arguments.length){if(null==b)for(a in this)this.hasOwnProperty(a)&&this[a].on(d,null);return this}},bg.event=null,bg.requote=function(a){return a.replace(rg,"\\$&")};var rg=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sg={}.__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]},tg=function(a,b){return b.querySelector(a)},ug=function(a,b){return b.querySelectorAll(a)},vg=function(a,b){var c=a.matches||a[u(a,"matchesSelector")];return(vg=function(a,b){return c.call(a,b)})(a,b)};"function"==typeof Sizzle&&(tg=function(a,b){return Sizzle(a,b)[0]||null},ug=Sizzle,vg=Sizzle.matchesSelector),bg.selection=function(){return bg.select(eg.documentElement)};var wg=bg.selection.prototype=[];wg.select=function(a){var b,c,d,e,f=[];a=C(a);for(var g=-1,h=this.length;++g=0&&(c=a.slice(0,b),a=a.slice(b+1)),xg.hasOwnProperty(c)?{space:xg[c],local:a}:a}},wg.attr=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node();return a=bg.ns.qualify(a),a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(E(b,a[b]));return this}return this.each(E(a,b))},wg.classed=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node(),d=(a=H(a)).length,e=-1;if(b=c.classList){for(;++ee){if("string"!=typeof a){2>e&&(c="");for(d in a)this.each(K(d,a[d],c));return this}if(2>e){var f=this.node();return b(f).getComputedStyle(f,null).getPropertyValue(a)}d=""}return this.each(K(a,c,d))},wg.property=function(a,b){if(arguments.length<2){if("string"==typeof a)return this.node()[a];for(b in a)this.each(L(b,a[b]));return this}return this.each(L(a,b))},wg.text=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=a}):this.node().textContent},wg.html=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML},wg.append=function(a){return a=M(a),this.select(function(){return this.appendChild(a.apply(this,arguments))})},wg.insert=function(a,b){return a=M(a),b=C(b),this.select(function(){return this.insertBefore(a.apply(this,arguments),b.apply(this,arguments)||null)})},wg.remove=function(){return this.each(N)},wg.data=function(a,b){function c(a,c){var d,e,f,g=a.length,l=c.length,m=Math.min(g,l),n=new Array(l),o=new Array(l),p=new Array(g);if(b){var q,r=new j,s=new Array(g);for(d=-1;++dd;++d)o[d]=O(c[d]);for(;g>d;++d)p[d]=a[d]}o.update=n,o.parentNode=n.parentNode=p.parentNode=a.parentNode,h.push(o),i.push(n),k.push(p)}var d,e,f=-1,g=this.length;if(!arguments.length){for(a=new Array(g=(d=this[0]).length);++ff;f++){e.push(b=[]),b.parentNode=(c=this[f]).parentNode;for(var h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return B(e)},wg.order=function(){for(var a=-1,b=this.length;++a=0;)(c=d[e])&&(f&&f!==c.nextSibling&&f.parentNode.insertBefore(c,f),f=c);return this},wg.sort=function(a){a=Q.apply(this,arguments);for(var b=-1,c=this.length;++ba;a++)for(var c=this[a],d=0,e=c.length;e>d;d++){var f=c[d];if(f)return f}return null},wg.size=function(){var a=0;return R(this,function(){++a}),a};var yg=[];bg.selection.enter=S,bg.selection.enter.prototype=yg,yg.append=wg.append,yg.empty=wg.empty,yg.node=wg.node,yg.call=wg.call,yg.size=wg.size,yg.select=function(a){for(var b,c,d,e,f,g=[],h=-1,i=this.length;++hd){if("string"!=typeof a){2>d&&(b=!1);for(c in a)this.each(U(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(U(a,b,c))};var zg=bg.map({mouseenter:"mouseover",mouseleave:"mouseout"});eg&&zg.forEach(function(a){"on"+a in eg&&zg.remove(a)});var Ag,Bg=0;bg.mouse=function(a){return Y(a,z())};var Cg=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;bg.touch=function(a,b,c){if(arguments.length<3&&(c=b,b=z().changedTouches),b)for(var d,e=0,f=b.length;f>e;++e)if((d=b[e]).identifier===c)return Y(a,d)},bg.behavior.drag=function(){function a(){this.on("mousedown.drag",f).on("touchstart.drag",g)}function c(a,b,c,f,g){return function(){function h(){var a,c,d=b(m,p);d&&(a=d[0]-t[0],c=d[1]-t[1],o|=a|c,t=d,n({type:"drag",x:d[0]+j[0],y:d[1]+j[1],dx:a,dy:c}))}function i(){b(m,p)&&(r.on(f+q,null).on(g+q,null),s(o&&bg.event.target===l),n({type:"dragend"}))}var j,k=this,l=bg.event.target,m=k.parentNode,n=d.of(k,arguments),o=0,p=a(),q=".drag"+(null==p?"":"-"+p),r=bg.select(c(l)).on(f+q,h).on(g+q,i),s=X(l),t=b(m,p);e?(j=e.apply(k,arguments),j=[j.x-t[0],j.y-t[1]]):j=[0,0],n({type:"dragstart"})}}var d=A(a,"drag","dragstart","dragend"),e=null,f=c(v,bg.mouse,b,"mousemove","mouseup"),g=c(Z,bg.touch,s,"touchmove","touchend");return a.origin=function(b){return arguments.length?(e=b,a):e},bg.rebind(a,d,"on")},bg.touches=function(a,b){return arguments.length<2&&(b=z().touches),b?dg(b).map(function(b){var c=Y(a,b);return c.identifier=b.identifier,c}):[]};var Dg=1e-6,Eg=Dg*Dg,Fg=Math.PI,Gg=2*Fg,Hg=Gg-Dg,Ig=Fg/2,Jg=Fg/180,Kg=180/Fg,Lg=Math.SQRT2,Mg=2,Ng=4;bg.interpolateZoom=function(a,b){function c(a){var b=a*s;if(r){var c=da(p),g=f/(Mg*m)*(c*ea(Lg*b+p)-ca(p));return[d+g*j,e+g*k,f*c/da(Lg*b+p)]}return[d+a*j,e+a*k,f*Math.exp(Lg*b)]}var d=a[0],e=a[1],f=a[2],g=b[0],h=b[1],i=b[2],j=g-d,k=h-e,l=j*j+k*k,m=Math.sqrt(l),n=(i*i-f*f+Ng*l)/(2*f*Mg*m),o=(i*i-f*f-Ng*l)/(2*i*Mg*m),p=Math.log(Math.sqrt(n*n+1)-n),q=Math.log(Math.sqrt(o*o+1)-o),r=q-p,s=(r||Math.log(i/f))/Lg;return c.duration=1e3*s,c},bg.behavior.zoom=function(){function a(a){a.on(F,l).on(Pg+".zoom",n).on("dblclick.zoom",o).on(I,m)}function c(a){return[(a[0]-z.x)/z.k,(a[1]-z.y)/z.k]}function d(a){return[a[0]*z.k+z.x,a[1]*z.k+z.y]}function e(a){z.k=Math.max(C[0],Math.min(C[1],a))}function f(a,b){b=d(b),z.x+=a[0]-b[0],z.y+=a[1]-b[1]}function g(b,c,d,g){b.__chart__={x:z.x,y:z.y,k:z.k},e(Math.pow(2,g)),f(q=c,d),b=bg.select(b),D>0&&(b=b.transition().duration(D)),b.call(a.event)}function h(){v&&v.domain(u.range().map(function(a){return(a-z.x)/z.k}).map(u.invert)),x&&x.domain(w.range().map(function(a){return(a-z.y)/z.k}).map(w.invert))}function i(a){E++||a({type:"zoomstart"})}function j(a){h(),a({type:"zoom",scale:z.k,translate:[z.x,z.y]})}function k(a){--E||a({type:"zoomend"}),q=null}function l(){function a(){l=1,f(bg.mouse(e),n),j(h)}function d(){m.on(G,null).on(H,null),o(l&&bg.event.target===g),k(h)}var e=this,g=bg.event.target,h=J.of(e,arguments),l=0,m=bg.select(b(e)).on(G,a).on(H,d),n=c(bg.mouse(e)),o=X(e);Ji.call(e),i(h)}function m(){function a(){var a=bg.touches(o);return n=z.k,a.forEach(function(a){a.identifier in q&&(q[a.identifier]=c(a))}),a}function b(){var b=bg.event.target;bg.select(b).on(u,d).on(v,h),w.push(b);for(var c=bg.event.changedTouches,e=0,f=c.length;f>e;++e)q[c[e].identifier]=null;var i=a(),j=Date.now();if(1===i.length){if(500>j-t){var k=i[0];g(o,k,q[k.identifier],Math.floor(Math.log(z.k)/Math.LN2)+1),y()}t=j}else if(i.length>1){var k=i[0],l=i[1],m=k[0]-l[0],n=k[1]-l[1];r=m*m+n*n}}function d(){var a,b,c,d,g=bg.touches(o);Ji.call(o);for(var h=0,i=g.length;i>h;++h,d=null)if(c=g[h],d=q[c.identifier]){if(b)break;a=c,b=d}if(d){var k=(k=c[0]-a[0])*k+(k=c[1]-a[1])*k,l=r&&Math.sqrt(k/r);a=[(a[0]+c[0])/2,(a[1]+c[1])/2],b=[(b[0]+d[0])/2,(b[1]+d[1])/2],e(l*n)}t=null,f(a,b),j(p)}function h(){if(bg.event.touches.length){for(var b=bg.event.changedTouches,c=0,d=b.length;d>c;++c)delete q[b[c].identifier];for(var e in q)return void a()}bg.selectAll(w).on(s,null),x.on(F,l).on(I,m),A(),k(p)}var n,o=this,p=J.of(o,arguments),q={},r=0,s=".zoom-"+bg.event.changedTouches[0].identifier,u="touchmove"+s,v="touchend"+s,w=[],x=bg.select(o),A=X(o);b(),i(p),x.on(F,null).on(I,b)}function n(){var a=J.of(this,arguments);s?clearTimeout(s):(p=c(q=r||bg.mouse(this)),Ji.call(this),i(a)),s=setTimeout(function(){s=null,k(a)},50),y(),e(Math.pow(2,.002*Og())*z.k),f(q,p),j(a)}function o(){var a=bg.mouse(this),b=Math.log(z.k)/Math.LN2;g(this,a,c(a),bg.event.shiftKey?Math.ceil(b)-1:Math.floor(b)+1)}var p,q,r,s,t,u,v,w,x,z={x:0,y:0,k:1},B=[960,500],C=Qg,D=250,E=0,F="mousedown.zoom",G="mousemove.zoom",H="mouseup.zoom",I="touchstart.zoom",J=A(a,"zoomstart","zoom","zoomend");return Pg||(Pg="onwheel"in eg?(Og=function(){return-bg.event.deltaY*(bg.event.deltaMode?120:1)},"wheel"):"onmousewheel"in eg?(Og=function(){return bg.event.wheelDelta},"mousewheel"):(Og=function(){return-bg.event.detail},"MozMousePixelScroll")),a.event=function(a){a.each(function(){var a=J.of(this,arguments),b=z;Hi?bg.select(this).transition().each("start.zoom",function(){z=this.__chart__||{x:0,y:0,k:1},i(a)}).tween("zoom:zoom",function(){var c=B[0],d=B[1],e=q?q[0]:c/2,f=q?q[1]:d/2,g=bg.interpolateZoom([(e-z.x)/z.k,(f-z.y)/z.k,c/z.k],[(e-b.x)/b.k,(f-b.y)/b.k,c/b.k]);return function(b){var d=g(b),h=c/d[2];this.__chart__=z={x:e-d[0]*h,y:f-d[1]*h,k:h},j(a)}}).each("interrupt.zoom",function(){k(a)}).each("end.zoom",function(){k(a)}):(this.__chart__=z,i(a),j(a),k(a))})},a.translate=function(b){return arguments.length?(z={x:+b[0],y:+b[1],k:z.k},h(),a):[z.x,z.y]},a.scale=function(b){return arguments.length?(z={x:z.x,y:z.y,k:+b},h(),a):z.k},a.scaleExtent=function(b){return arguments.length?(C=null==b?Qg:[+b[0],+b[1]],a):C},a.center=function(b){return arguments.length?(r=b&&[+b[0],+b[1]],a):r},a.size=function(b){return arguments.length?(B=b&&[+b[0],+b[1]],a):B},a.duration=function(b){return arguments.length?(D=+b,a):D},a.x=function(b){return arguments.length?(v=b,u=b.copy(),z={x:0,y:0,k:1},a):v},a.y=function(b){return arguments.length?(x=b,w=b.copy(),z={x:0,y:0,k:1},a):x},bg.rebind(a,J,"on")};var Og,Pg,Qg=[0,1/0];bg.color=ga,ga.prototype.toString=function(){return this.rgb()+""},bg.hsl=ha;var Rg=ha.prototype=new ga;Rg.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),new ha(this.h,this.s,this.l/a)},Rg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new ha(this.h,this.s,a*this.l)},Rg.rgb=function(){return ia(this.h,this.s,this.l)},bg.hcl=ja;var Sg=ja.prototype=new ga;Sg.brighter=function(a){return new ja(this.h,this.c,Math.min(100,this.l+Tg*(arguments.length?a:1)))},Sg.darker=function(a){return new ja(this.h,this.c,Math.max(0,this.l-Tg*(arguments.length?a:1)))},Sg.rgb=function(){return ka(this.h,this.c,this.l).rgb()},bg.lab=la;var Tg=18,Ug=.95047,Vg=1,Wg=1.08883,Xg=la.prototype=new ga;Xg.brighter=function(a){return new la(Math.min(100,this.l+Tg*(arguments.length?a:1)),this.a,this.b)},Xg.darker=function(a){return new la(Math.max(0,this.l-Tg*(arguments.length?a:1)),this.a,this.b)},Xg.rgb=function(){return ma(this.l,this.a,this.b)},bg.rgb=ra;var Yg=ra.prototype=new ga;Yg.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return b||c||d?(b&&e>b&&(b=e),c&&e>c&&(c=e),d&&e>d&&(d=e),new ra(Math.min(255,b/a),Math.min(255,c/a),Math.min(255,d/a))):new ra(e,e,e)},Yg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new ra(a*this.r,a*this.g,a*this.b)},Yg.hsl=function(){return wa(this.r,this.g,this.b)},Yg.toString=function(){return"#"+ua(this.r)+ua(this.g)+ua(this.b)};var Zg=bg.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Zg.forEach(function(a,b){Zg.set(a,sa(b))}),bg.functor=Aa,bg.xhr=Ba(s),bg.dsv=function(a,b){function c(a,c,f){arguments.length<3&&(f=c,c=null);var g=Ca(a,b,null==c?d:e(c),f);return g.row=function(a){return arguments.length?g.response(null==(c=a)?d:e(a)):c},g}function d(a){return c.parse(a.responseText)}function e(a){return function(b){return c.parse(b.responseText,a)}}function f(b){return b.map(g).join(a)}function g(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=new RegExp('["'+a+"\n]"),i=a.charCodeAt(0);return c.parse=function(a,b){var d;return c.parseRows(a,function(a,c){if(d)return d(a,c-1);var e=new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}");d=b?function(a,c){return b(e(a),c)}:e})},c.parseRows=function(a,b){function c(){if(k>=j)return g;if(e)return e=!1,f;var b=k;if(34===a.charCodeAt(b)){for(var c=b;c++k;){var d=a.charCodeAt(k++),h=1;if(10===d)e=!0;else if(13===d)e=!0,10===a.charCodeAt(k)&&(++k,++h);else if(d!==i)continue;return a.slice(b,k-h)}return a.slice(b)}for(var d,e,f={},g={},h=[],j=a.length,k=0,l=0;(d=c())!==g;){for(var m=[];d!==f&&d!==g;)m.push(d),d=c();b&&null==(m=b(m,l++))||h.push(m)}return h},c.format=function(b){if(Array.isArray(b[0]))return c.formatRows(b);var d=new r,e=[];return b.forEach(function(a){for(var b in a)d.has(b)||e.push(d.add(b))}),[e.map(g).join(a)].concat(b.map(function(b){return e.map(function(a){return g(b[a])}).join(a)})).join("\n")},c.formatRows=function(a){return a.map(f).join("\n")},c},bg.csv=bg.dsv(",","text/csv"),bg.tsv=bg.dsv(" ","text/tab-separated-values");var $g,_g,ah,bh,ch,dh=this[u(this,"requestAnimationFrame")]||function(a){setTimeout(a,17)};bg.timer=function(a,b,c){var d=arguments.length;2>d&&(b=0),3>d&&(c=Date.now());var e=c+b,f={c:a,t:e,f:!1,n:null};_g?_g.n=f:$g=f,_g=f,ah||(bh=clearTimeout(bh),ah=1,dh(Fa))},bg.timer.flush=function(){Ga(),Ha()},bg.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};var eh=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Ja);bg.formatPrefix=function(a,b){var c=0;return a&&(0>a&&(a*=-1),b&&(a=bg.round(a,Ia(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((c-1)/3)))),eh[8+c/3]};var fh=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,gh=bg.map({b:function(a){return a.toString(2)},c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return(a=bg.round(a,Ia(a,b))).toFixed(Math.max(0,Math.min(20,Ia(a*(1+1e-15),b))))}}),hh=bg.time={},ih=Date;Ma.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){jh.setUTCDate.apply(this._,arguments)},setDay:function(){jh.setUTCDay.apply(this._,arguments)},setFullYear:function(){jh.setUTCFullYear.apply(this._,arguments)},setHours:function(){jh.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){jh.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){jh.setUTCMinutes.apply(this._,arguments)},setMonth:function(){jh.setUTCMonth.apply(this._,arguments)},setSeconds:function(){jh.setUTCSeconds.apply(this._,arguments)},setTime:function(){jh.setTime.apply(this._,arguments)}};var jh=Date.prototype;hh.year=Na(function(a){return a=hh.day(a),a.setMonth(0,1),a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()}),hh.years=hh.year.range,hh.years.utc=hh.year.utc.range,hh.day=Na(function(a){var b=new ih(2e3,0);return b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1}),hh.days=hh.day.range,hh.days.utc=hh.day.utc.range,hh.dayOfYear=function(a){var b=hh.year(a);return Math.floor((a-b-6e4*(a.getTimezoneOffset()-b.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(a,b){b=7-b;var c=hh[a]=Na(function(a){return(a=hh.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=hh.year(a).getDay();return Math.floor((hh.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});hh[a+"s"]=c.range,hh[a+"s"].utc=c.utc.range,hh[a+"OfYear"]=function(a){var c=hh.year(a).getDay();return Math.floor((hh.dayOfYear(a)+(c+b)%7)/7)}}),hh.week=hh.sunday,hh.weeks=hh.sunday.range,hh.weeks.utc=hh.sunday.utc.range,hh.weekOfYear=hh.sundayOfYear;var kh={"-":"",_:" ",0:"0"},lh=/^\s*\d+/,mh=/^%/;bg.locale=function(a){return{numberFormat:Ka(a),timeFormat:Pa(a)}};var nh=bg.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});bg.format=nh.numberFormat,bg.geo={},ib.prototype={s:0,t:0,add:function(a){jb(a,this.t,oh), -jb(oh.s,this.s,this),this.s?this.t+=oh.t:this.s=oh.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oh=new ib;bg.geo.stream=function(a,b){a&&ph.hasOwnProperty(a.type)?ph[a.type](a,b):kb(a,b)};var ph={Feature:function(a,b){kb(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++da?4*Fg+a:a,th.lineStart=th.lineEnd=th.point=v}};bg.geo.bounds=function(){function a(a,b){t.push(u=[k=a,m=a]),l>b&&(l=b),b>n&&(n=b)}function b(b,c){var d=ob([b*Jg,c*Jg]);if(r){var e=qb(r,d),f=[e[1],-e[0],0],g=qb(f,e);tb(g),g=ub(g);var i=b-o,j=i>0?1:-1,p=g[0]*Kg*j,q=ng(i)>180;if(q^(p>j*o&&j*b>p)){var s=g[1]*Kg;s>n&&(n=s)}else if(p=(p+360)%360-180,q^(p>j*o&&j*b>p)){var s=-g[1]*Kg;l>s&&(l=s)}else l>c&&(l=c),c>n&&(n=c);q?o>b?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b):m>=k?(k>b&&(k=b),b>m&&(m=b)):b>o?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b)}else a(b,c);r=d,o=b}function c(){v.point=b}function d(){u[0]=k,u[1]=m,v.point=a,r=null}function e(a,c){if(r){var d=a-o;s+=ng(d)>180?d+(d>0?360:-360):d}else p=a,q=c;th.point(a,c),b(a,c)}function f(){th.lineStart()}function g(){e(p,q),th.lineEnd(),ng(s)>Dg&&(k=-(m=180)),u[0]=k,u[1]=m,r=null}function h(a,b){return(b-=a)<0?b+360:b}function i(a,b){return a[0]-b[0]}function j(a,b){return b[0]<=b[1]?b[0]<=a&&a<=b[1]:ash?(k=-(m=180),l=-(n=90)):s>Dg?n=90:-Dg>s&&(l=-90),u[0]=k,u[1]=m}};return function(a){n=m=-(k=l=1/0),t=[],bg.geo.stream(a,v);var b=t.length;if(b){t.sort(i);for(var c,d=1,e=t[0],f=[e];b>d;++d)c=t[d],j(c[0],e)||j(c[1],e)?(h(e[0],c[1])>h(e[0],e[1])&&(e[1]=c[1]),h(c[0],e[1])>h(e[0],e[1])&&(e[0]=c[0])):f.push(e=c);for(var g,c,o=-(1/0),b=f.length-1,d=0,e=f[b];b>=d;e=c,++d)c=f[d],(g=h(e[1],c[0]))>o&&(o=g,k=c[0],m=e[1])}return t=u=null,k===1/0||l===1/0?[[0/0,0/0],[0/0,0/0]]:[[k,l],[m,n]]}}(),bg.geo.centroid=function(a){uh=vh=wh=xh=yh=zh=Ah=Bh=Ch=Dh=Eh=0,bg.geo.stream(a,Fh);var b=Ch,c=Dh,d=Eh,e=b*b+c*c+d*d;return Eg>e&&(b=zh,c=Ah,d=Bh,Dg>vh&&(b=wh,c=xh,d=yh),e=b*b+c*c+d*d,Eg>e)?[0/0,0/0]:[Math.atan2(c,b)*Kg,ba(d/Math.sqrt(e))*Kg]};var uh,vh,wh,xh,yh,zh,Ah,Bh,Ch,Dh,Eh,Fh={sphere:v,point:wb,lineStart:yb,lineEnd:zb,polygonStart:function(){Fh.lineStart=Ab},polygonEnd:function(){Fh.lineStart=yb}},Gh=Gb(Cb,Kb,Mb,[-Fg,-Fg/2]),Hh=1e9;bg.geo.clipExtent=function(){var a,b,c,d,e,f,g={stream:function(a){return e&&(e.valid=!1),e=f(a),e.valid=!0,e},extent:function(h){return arguments.length?(f=Qb(a=+h[0][0],b=+h[0][1],c=+h[1][0],d=+h[1][1]),e&&(e.valid=!1,e=null),g):[[a,b],[c,d]]}};return g.extent([[0,0],[960,500]])},(bg.geo.conicEqualArea=function(){return Rb(Sb)}).raw=Sb,bg.geo.albers=function(){return bg.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},bg.geo.albersUsa=function(){function a(a){var f=a[0],g=a[1];return b=null,c(f,g),b||(d(f,g),b)||e(f,g),b}var b,c,d,e,f=bg.geo.albers(),g=bg.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),h=bg.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),i={point:function(a,c){b=[a,c]}};return a.invert=function(a){var b=f.scale(),c=f.translate(),d=(a[0]-c[0])/b,e=(a[1]-c[1])/b;return(e>=.12&&.234>e&&d>=-.425&&-.214>d?g:e>=.166&&.234>e&&d>=-.214&&-.115>d?h:f).invert(a)},a.stream=function(a){var b=f.stream(a),c=g.stream(a),d=h.stream(a);return{point:function(a,e){b.point(a,e),c.point(a,e),d.point(a,e)},sphere:function(){b.sphere(),c.sphere(),d.sphere()},lineStart:function(){b.lineStart(),c.lineStart(),d.lineStart()},lineEnd:function(){b.lineEnd(),c.lineEnd(),d.lineEnd()},polygonStart:function(){b.polygonStart(),c.polygonStart(),d.polygonStart()},polygonEnd:function(){b.polygonEnd(),c.polygonEnd(),d.polygonEnd()}}},a.precision=function(b){return arguments.length?(f.precision(b),g.precision(b),h.precision(b),a):f.precision()},a.scale=function(b){return arguments.length?(f.scale(b),g.scale(.35*b),h.scale(b),a.translate(f.translate())):f.scale()},a.translate=function(b){if(!arguments.length)return f.translate();var j=f.scale(),k=+b[0],l=+b[1];return c=f.translate(b).clipExtent([[k-.455*j,l-.238*j],[k+.455*j,l+.238*j]]).stream(i).point,d=g.translate([k-.307*j,l+.201*j]).clipExtent([[k-.425*j+Dg,l+.12*j+Dg],[k-.214*j-Dg,l+.234*j-Dg]]).stream(i).point,e=h.translate([k-.205*j,l+.212*j]).clipExtent([[k-.214*j+Dg,l+.166*j+Dg],[k-.115*j-Dg,l+.234*j-Dg]]).stream(i).point,a},a.scale(1070)};var Ih,Jh,Kh,Lh,Mh,Nh,Oh={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Jh=0,Oh.lineStart=Tb},polygonEnd:function(){Oh.lineStart=Oh.lineEnd=Oh.point=v,Ih+=ng(Jh/2)}},Ph={point:Ub,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Qh={point:Xb,lineStart:Yb,lineEnd:Zb,polygonStart:function(){Qh.lineStart=$b},polygonEnd:function(){Qh.point=Xb,Qh.lineStart=Yb,Qh.lineEnd=Zb}};bg.geo.path=function(){function a(a){return a&&("function"==typeof h&&f.pointRadius(+h.apply(this,arguments)),g&&g.valid||(g=e(f)),bg.geo.stream(a,g)),f.result()}function b(){return g=null,a}var c,d,e,f,g,h=4.5;return a.area=function(a){return Ih=0,bg.geo.stream(a,e(Oh)),Ih},a.centroid=function(a){return wh=xh=yh=zh=Ah=Bh=Ch=Dh=Eh=0,bg.geo.stream(a,e(Qh)),Eh?[Ch/Eh,Dh/Eh]:Bh?[zh/Bh,Ah/Bh]:yh?[wh/yh,xh/yh]:[0/0,0/0]},a.bounds=function(a){return Mh=Nh=-(Kh=Lh=1/0),bg.geo.stream(a,e(Ph)),[[Kh,Lh],[Mh,Nh]]},a.projection=function(a){return arguments.length?(e=(c=a)?a.stream||bc(a):s,b()):c},a.context=function(a){return arguments.length?(f=null==(d=a)?new Vb:new _b(a),"function"!=typeof h&&f.pointRadius(h),b()):d},a.pointRadius=function(b){return arguments.length?(h="function"==typeof b?b:(f.pointRadius(+b),+b),a):h},a.projection(bg.geo.albersUsa()).context(null)},bg.geo.transform=function(a){return{stream:function(b){var c=new cc(b);for(var d in a)c[d]=a[d];return c}}},cc.prototype={point:function(a,b){this.stream.point(a,b)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},bg.geo.projection=ec,bg.geo.projectionMutator=fc,(bg.geo.equirectangular=function(){return ec(hc)}).raw=hc.invert=hc,bg.geo.rotation=function(a){function b(b){return b=a(b[0]*Jg,b[1]*Jg),b[0]*=Kg,b[1]*=Kg,b}return a=jc(a[0]%360*Jg,a[1]*Jg,a.length>2?a[2]*Jg:0),b.invert=function(b){return b=a.invert(b[0]*Jg,b[1]*Jg),b[0]*=Kg,b[1]*=Kg,b},b},ic.invert=hc,bg.geo.circle=function(){function a(){var a="function"==typeof d?d.apply(this,arguments):d,b=jc(-a[0]*Jg,-a[1]*Jg,0).invert,e=[];return c(null,null,1,{point:function(a,c){e.push(a=b(a,c)),a[0]*=Kg,a[1]*=Kg}}),{type:"Polygon",coordinates:[e]}}var b,c,d=[0,0],e=6;return a.origin=function(b){return arguments.length?(d=b,a):d},a.angle=function(d){return arguments.length?(c=nc((b=+d)*Jg,e*Jg),a):b},a.precision=function(d){return arguments.length?(c=nc(b*Jg,(e=+d)*Jg),a):e},a.angle(90)},bg.geo.distance=function(a,b){var c,d=(b[0]-a[0])*Jg,e=a[1]*Jg,f=b[1]*Jg,g=Math.sin(d),h=Math.cos(d),i=Math.sin(e),j=Math.cos(e),k=Math.sin(f),l=Math.cos(f);return Math.atan2(Math.sqrt((c=l*g)*c+(c=j*k-i*l*h)*c),i*k+j*l*h)},bg.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return bg.range(Math.ceil(f/q)*q,e,q).map(m).concat(bg.range(Math.ceil(j/r)*r,i,r).map(n)).concat(bg.range(Math.ceil(d/o)*o,c,o).filter(function(a){return ng(a%q)>Dg}).map(k)).concat(bg.range(Math.ceil(h/p)*p,g,p).filter(function(a){return ng(a%r)>Dg}).map(l))}var c,d,e,f,g,h,i,j,k,l,m,n,o=10,p=o,q=90,r=360,s=2.5;return a.lines=function(){return b().map(function(a){return{type:"LineString",coordinates:a}})},a.outline=function(){return{type:"Polygon",coordinates:[m(f).concat(n(i).slice(1),m(e).reverse().slice(1),n(j).reverse().slice(1))]}},a.extent=function(b){return arguments.length?a.majorExtent(b).minorExtent(b):a.minorExtent()},a.majorExtent=function(b){return arguments.length?(f=+b[0][0],e=+b[1][0],j=+b[0][1],i=+b[1][1],f>e&&(b=f,f=e,e=b),j>i&&(b=j,j=i,i=b),a.precision(s)):[[f,j],[e,i]]},a.minorExtent=function(b){return arguments.length?(d=+b[0][0],c=+b[1][0],h=+b[0][1],g=+b[1][1],d>c&&(b=d,d=c,c=b),h>g&&(b=h,h=g,g=b),a.precision(s)):[[d,h],[c,g]]},a.step=function(b){return arguments.length?a.majorStep(b).minorStep(b):a.minorStep()},a.majorStep=function(b){return arguments.length?(q=+b[0],r=+b[1],a):[q,r]},a.minorStep=function(b){return arguments.length?(o=+b[0],p=+b[1],a):[o,p]},a.precision=function(b){return arguments.length?(s=+b,k=pc(h,g,90),l=qc(d,c,s),m=pc(j,i,90),n=qc(f,e,s),a):s},a.majorExtent([[-180,-90+Dg],[180,90-Dg]]).minorExtent([[-180,-80-Dg],[180,80+Dg]])},bg.geo.greatArc=function(){function a(){return{type:"LineString",coordinates:[b||d.apply(this,arguments),c||e.apply(this,arguments)]}}var b,c,d=rc,e=sc;return a.distance=function(){return bg.geo.distance(b||d.apply(this,arguments),c||e.apply(this,arguments))},a.source=function(c){return arguments.length?(d=c,b="function"==typeof c?null:c,a):d},a.target=function(b){return arguments.length?(e=b,c="function"==typeof b?null:b,a):e},a.precision=function(){return arguments.length?a:0},a},bg.geo.interpolate=function(a,b){return tc(a[0]*Jg,a[1]*Jg,b[0]*Jg,b[1]*Jg)},bg.geo.length=function(a){return Rh=0,bg.geo.stream(a,Sh),Rh};var Rh,Sh={sphere:v,point:v,lineStart:uc,lineEnd:v,polygonStart:v,polygonEnd:v},Th=vc(function(a){return Math.sqrt(2/(1+a))},function(a){return 2*Math.asin(a/2)});(bg.geo.azimuthalEqualArea=function(){return ec(Th)}).raw=Th;var Uh=vc(function(a){var b=Math.acos(a);return b&&b/Math.sin(b)},s);(bg.geo.azimuthalEquidistant=function(){return ec(Uh)}).raw=Uh,(bg.geo.conicConformal=function(){return Rb(wc)}).raw=wc,(bg.geo.conicEquidistant=function(){return Rb(xc)}).raw=xc;var Vh=vc(function(a){return 1/a},Math.atan);(bg.geo.gnomonic=function(){return ec(Vh)}).raw=Vh,yc.invert=function(a,b){return[a,2*Math.atan(Math.exp(b))-Ig]},(bg.geo.mercator=function(){return zc(yc)}).raw=yc;var Wh=vc(function(){return 1},Math.asin);(bg.geo.orthographic=function(){return ec(Wh)}).raw=Wh;var Xh=vc(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(bg.geo.stereographic=function(){return ec(Xh)}).raw=Xh,Ac.invert=function(a,b){return[-b,2*Math.atan(Math.exp(a))-Ig]},(bg.geo.transverseMercator=function(){var a=zc(Ac),b=a.center,c=a.rotate;return a.center=function(a){return a?b([-a[1],a[0]]):(a=b(),[a[1],-a[0]])},a.rotate=function(a){return a?c([a[0],a[1],a.length>2?a[2]+90:90]):(a=c(),[a[0],a[1],a[2]-90])},c([0,0,90])}).raw=Ac,bg.geom={},bg.geom.hull=function(a){function b(a){if(a.length<3)return[];var b,e=Aa(c),f=Aa(d),g=a.length,h=[],i=[];for(b=0;g>b;b++)h.push([+e.call(this,a[b],b),+f.call(this,a[b],b),b]);for(h.sort(Ec),b=0;g>b;b++)i.push([h[b][0],-h[b][1]]);var j=Dc(h),k=Dc(i),l=k[0]===j[0],m=k[k.length-1]===j[j.length-1],n=[];for(b=j.length-1;b>=0;--b)n.push(a[h[j[b]][2]]);for(b=+l;b=d&&j.x<=f&&j.y>=e&&j.y<=g?[[d,g],[f,g],[f,e],[d,e]]:[];k.point=a[h]}),b}function c(a){return a.map(function(a,b){return{x:Math.round(f(a,b)/Dg)*Dg,y:Math.round(g(a,b)/Dg)*Dg,i:b}})}var d=Bc,e=Cc,f=d,g=e,h=ei;return a?b(a):(b.links=function(a){return fd(c(a)).edges.filter(function(a){return a.l&&a.r}).map(function(b){return{source:a[b.l.i],target:a[b.r.i]}})},b.triangles=function(a){var b=[];return fd(c(a)).cells.forEach(function(c,d){for(var e,f,g=c.site,h=c.edges.sort(Rc),i=-1,j=h.length,k=h[j-1].edge,l=k.l===g?k.r:k.l;++i=j,m=d>=k,n=m<<1|l;a.leaf=!1,a=a.nodes[n]||(a.nodes[n]=kd()),l?e=j:h=j,m?g=k:i=k,f(a,b,c,d,e,g,h,i)}var k,l,m,n,o,p,q,r,s,t=Aa(h),u=Aa(i);if(null!=b)p=b,q=c,r=d,s=e;else if(r=s=-(p=q=1/0),l=[],m=[],o=a.length,g)for(n=0;o>n;++n)k=a[n],k.xr&&(r=k.x),k.y>s&&(s=k.y),l.push(k.x),m.push(k.y);else for(n=0;o>n;++n){var v=+t(k=a[n],n),w=+u(k,n);p>v&&(p=v),q>w&&(q=w),v>r&&(r=v),w>s&&(s=w),l.push(v),m.push(w)}var x=r-p,y=s-q;x>y?s=q+x:r=p+y;var z=kd();if(z.add=function(a){f(z,a,+t(a,++n),+u(a,n),p,q,r,s)},z.visit=function(a){ld(a,z,p,q,r,s)},z.find=function(a){return md(z,a[0],a[1],p,q,r,s)},n=-1,null==b){for(;++n=0?a.slice(0,b):a,d=b>=0?a.slice(b+1):"in";return c=ii.get(c)||hi,d=ji.get(d)||s,td(d(c.apply(null,cg.call(arguments,1))))},bg.interpolateHcl=Gd,bg.interpolateHsl=Hd,bg.interpolateLab=Id,bg.interpolateRound=Jd,bg.transform=function(a){var b=eg.createElementNS(bg.ns.prefix.svg,"g");return(bg.transform=function(a){if(null!=a){b.setAttribute("transform",a);var c=b.transform.baseVal.consolidate()}return new Kd(c?c.matrix:ki)})(a)},Kd.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ki={a:1,b:0,c:0,d:1,e:0,f:0};bg.interpolateTransform=Od,bg.layout={},bg.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++ch*h/q){if(o>i){var j=b.charge/i;a.px-=f*j,a.py-=g*j}return!0}if(b.point&&i&&o>i){var j=b.pointCharge/i;a.px-=f*j,a.py-=g*j}}return!b.charge}}function b(a){a.px=bg.event.x,a.py=bg.event.y,h.resume()}var c,d,e,f,g,h={},i=bg.dispatch("start","tick","end"),j=[1,1],k=.9,l=li,m=mi,n=-30,o=ni,p=.1,q=.64,r=[],t=[];return h.tick=function(){if((d*=.99)<.005)return i.end({type:"end",alpha:d=0}),!0;var b,c,h,l,m,o,q,s,u,v=r.length,w=t.length;for(c=0;w>c;++c)h=t[c],l=h.source,m=h.target,s=m.x-l.x,u=m.y-l.y,(o=s*s+u*u)&&(o=d*f[c]*((o=Math.sqrt(o))-e[c])/o,s*=o,u*=o,m.x-=s*(q=l.weight/(m.weight+l.weight)),m.y-=u*q,l.x+=s*(q=1-q),l.y+=u*q);if((q=d*p)&&(s=j[0]/2,u=j[1]/2,c=-1,q))for(;++c0?a:0:a>0&&(i.start({type:"start",alpha:d=a}),bg.timer(h.tick)),h):d},h.start=function(){function a(a,d){if(!c){for(c=new Array(i),h=0;i>h;++h)c[h]=[];for(h=0;k>h;++h){var e=t[h];c[e.source.index].push(e.target),c[e.target.index].push(e.source)}}for(var f,g=c[b],h=-1,j=g.length;++hb;++b)(d=r[b]).index=b,d.weight=0;for(b=0;k>b;++b)d=t[b],"number"==typeof d.source&&(d.source=r[d.source]),"number"==typeof d.target&&(d.target=r[d.target]),++d.source.weight,++d.target.weight;for(b=0;i>b;++b)d=r[b],isNaN(d.x)&&(d.x=a("x",o)),isNaN(d.y)&&(d.y=a("y",p)),isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);if(e=[],"function"==typeof l)for(b=0;k>b;++b)e[b]=+l.call(this,t[b],b);else for(b=0;k>b;++b)e[b]=l;if(f=[],"function"==typeof m)for(b=0;k>b;++b)f[b]=+m.call(this,t[b],b);else for(b=0;k>b;++b)f[b]=m;if(g=[],"function"==typeof n)for(b=0;i>b;++b)g[b]=+n.call(this,r[b],b);else for(b=0;i>b;++b)g[b]=n;return h.resume()},h.resume=function(){return h.alpha(.1)},h.stop=function(){return h.alpha(0)},h.drag=function(){return c||(c=bg.behavior.drag().origin(s).on("dragstart.force",Ud).on("drag.force",b).on("dragend.force",Vd)),arguments.length?void this.on("mouseover.force",Wd).on("mouseout.force",Xd).call(c):c},bg.rebind(h,i,"on")};var li=20,mi=1,ni=1/0;bg.layout.hierarchy=function(){function a(e){var f,g=[e],h=[];for(e.depth=0;null!=(f=g.pop());)if(h.push(f),(j=c.call(a,f,f.depth))&&(i=j.length)){for(var i,j,k;--i>=0;)g.push(k=j[i]),k.parent=f,k.depth=f.depth+1;d&&(f.value=0),f.children=j}else d&&(f.value=+d.call(a,f,f.depth)||0),delete f.children;return _d(e,function(a){var c,e;b&&(c=a.children)&&c.sort(b),d&&(e=a.parent)&&(e.value+=a.value)}),h}var b=ce,c=ae,d=be;return a.sort=function(c){return arguments.length?(b=c,a):b},a.children=function(b){return arguments.length?(c=b,a):c},a.value=function(b){return arguments.length?(d=b,a):d},a.revalue=function(b){return d&&($d(b,function(a){a.children&&(a.value=0)}),_d(b,function(b){var c;b.children||(b.value=+d.call(a,b,b.depth)||0),(c=b.parent)&&(c.value+=b.value)})),b},a},bg.layout.partition=function(){function a(b,c,d,e){var f=b.children;if(b.x=c,b.y=b.depth*e,b.dx=d,b.dy=e,f&&(g=f.length)){var g,h,i,j=-1;for(d=b.value?d/b.value:0;++jl?-1:1),o=(l-i*n)/bg.sum(j),p=bg.range(i),q=[];return null!=c&&p.sort(c===oi?function(a,b){return j[b]-j[a]}:function(a,b){return c(g[a],g[b])}),p.forEach(function(a){q[a]={data:g[a],value:h=j[a],startAngle:k,endAngle:k+=h*o+n,padAngle:m}}),q}var b=Number,c=oi,d=0,e=Gg,f=0;return a.value=function(c){return arguments.length?(b=c,a):b},a.sort=function(b){return arguments.length?(c=b,a):c},a.startAngle=function(b){return arguments.length?(d=b,a):d},a.endAngle=function(b){return arguments.length?(e=b,a):e},a.padAngle=function(b){return arguments.length?(f=b,a):f},a};var oi={};bg.layout.stack=function(){function a(h,i){if(!(m=h.length))return h;var j=h.map(function(c,d){return b.call(a,c,d)}),k=j.map(function(b){return b.map(function(b,c){return[f.call(a,b,c),g.call(a,b,c)]})}),l=c.call(a,k,i);j=bg.permute(j,l),k=bg.permute(k,l);var m,n,o,p,q=d.call(a,k,i),r=j[0].length;for(o=0;r>o;++o)for(e.call(a,j[0][o],p=q[o],k[0][o][1]),n=1;m>n;++n)e.call(a,j[n][o],p+=k[n-1][o][1],k[n][o][1]);return h}var b=s,c=he,d=ie,e=ge,f=ee,g=fe;return a.values=function(c){return arguments.length?(b=c,a):b},a.order=function(b){return arguments.length?(c="function"==typeof b?b:pi.get(b)||he,a):c},a.offset=function(b){return arguments.length?(d="function"==typeof b?b:qi.get(b)||ie,a):d},a.x=function(b){return arguments.length?(f=b,a):f},a.y=function(b){return arguments.length?(g=b,a):g},a.out=function(b){return arguments.length?(e=b,a):e},a};var pi=bg.map({"inside-out":function(a){var b,c,d=a.length,e=a.map(je),f=a.map(ke),g=bg.range(d).sort(function(a,b){return e[a]-e[b]}),h=0,i=0,j=[],k=[];for(b=0;d>b;++b)c=g[b],i>h?(h+=f[c],j.push(c)):(i+=f[c],k.push(c));return k.reverse().concat(j)},reverse:function(a){return bg.range(a.length).reverse()},"default":he}),qi=bg.map({silhouette:function(a){var b,c,d,e=a.length,f=a[0].length,g=[],h=0,i=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];d>h&&(h=d),g.push(d)}for(c=0;f>c;++c)i[c]=(h-g[c])/2;return i},wiggle:function(a){var b,c,d,e,f,g,h,i,j,k=a.length,l=a[0],m=l.length,n=[];for(n[0]=i=j=0,c=1;m>c;++c){for(b=0,e=0;k>b;++b)e+=a[b][c][1];for(b=0,f=0,h=l[c][0]-l[c-1][0];k>b;++b){for(d=0,g=(a[b][c][1]-a[b][c-1][1])/(2*h);b>d;++d)g+=(a[d][c][1]-a[d][c-1][1])/h;f+=g*a[b][c][1]}n[c]=i-=e?f/e*h:0,j>i&&(j=i)}for(c=0;m>c;++c)n[c]-=j;return n},expand:function(a){var b,c,d,e=a.length,f=a[0].length,g=1/e,h=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=g}for(c=0;f>c;++c)h[c]=0;return h},zero:ie});bg.layout.histogram=function(){function a(a,f){for(var g,h,i=[],j=a.map(c,this),k=d.call(this,j,f),l=e.call(this,k,j,f),f=-1,m=j.length,n=l.length-1,o=b?1:1/m;++f0)for(f=-1;++f=k[0]&&h<=k[1]&&(g=i[bg.bisect(l,h,1,n)-1],g.y+=o,g.push(a[f]));return i}var b=!0,c=Number,d=oe,e=me;return a.value=function(b){return arguments.length?(c=b,a):c},a.range=function(b){return arguments.length?(d=Aa(b),a):d},a.bins=function(b){return arguments.length?(e="number"==typeof b?function(a){return ne(a,b)}:Aa(b),a):e},a.frequency=function(c){return arguments.length?(b=!!c,a):b},a},bg.layout.pack=function(){function a(a,f){var g=c.call(this,a,f),h=g[0],i=e[0],j=e[1],k=null==b?Math.sqrt:"function"==typeof b?b:function(){return b};if(h.x=h.y=0,_d(h,function(a){a.r=+k(a.value)}),_d(h,te),d){var l=d*(b?1:Math.max(2*h.r/i,2*h.r/j))/2;_d(h,function(a){a.r+=l}),_d(h,te),_d(h,function(a){a.r-=l})}return we(h,i/2,j/2,b?1:1/Math.max(2*h.r/i,2*h.r/j)),g}var b,c=bg.layout.hierarchy().sort(pe),d=0,e=[1,1];return a.size=function(b){return arguments.length?(e=b,a):e},a.radius=function(c){return arguments.length?(b=null==c||"function"==typeof c?c:+c,a):b},a.padding=function(b){return arguments.length?(d=+b,a):d},Zd(a,c)},bg.layout.tree=function(){function a(a,e){var k=g.call(this,a,e),l=k[0],m=b(l);if(_d(m,c),m.parent.m=-m.z,$d(m,d),j)$d(l,f);else{var n=l,o=l,p=l;$d(l,function(a){a.xo.x&&(o=a),a.depth>p.depth&&(p=a)});var q=h(n,o)/2-n.x,r=i[0]/(o.x+h(o,n)/2+q),s=i[1]/(p.depth||1);$d(l,function(a){a.x=(a.x+q)*r,a.y=a.depth*s})}return k}function b(a){for(var b,c={A:null,children:[a]},d=[c];null!=(b=d.pop());)for(var e,f=b.children,g=0,h=f.length;h>g;++g)d.push((f[g]=e={_:f[g],parent:b,children:(e=f[g].children)&&e.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:g}).a=e);return c.children[0]}function c(a){var b=a.children,c=a.parent.children,d=a.i?c[a.i-1]:null;if(b.length){Ce(a);var f=(b[0].z+b[b.length-1].z)/2;d?(a.z=d.z+h(a._,d._),a.m=a.z-f):a.z=f}else d&&(a.z=d.z+h(a._,d._));a.parent.A=e(a,d,a.parent.A||c[0])}function d(a){a._.x=a.z+a.parent.m,a.m+=a.parent.m}function e(a,b,c){if(b){for(var d,e=a,f=a,g=b,i=e.parent.children[0],j=e.m,k=f.m,l=g.m,m=i.m;g=Ae(g),e=ze(e),g&&e;)i=ze(i),f=Ae(f),f.a=a,d=g.z+l-e.z-j+h(g._,e._),d>0&&(Be(De(g,a,c),a,d),j+=d,k+=d),l+=g.m,j+=e.m,m+=i.m,k+=f.m;g&&!Ae(f)&&(f.t=g,f.m+=l-k),e&&!ze(i)&&(i.t=e,i.m+=j-m,c=a)}return c}function f(a){a.x*=i[0],a.y=a.depth*i[1]}var g=bg.layout.hierarchy().sort(null).value(null),h=ye,i=[1,1],j=null;return a.separation=function(b){return arguments.length?(h=b,a):h},a.size=function(b){return arguments.length?(j=null==(i=b)?f:null,a):j?null:i},a.nodeSize=function(b){return arguments.length?(j=null==(i=b)?null:f,a):j?i:null},Zd(a,g)},bg.layout.cluster=function(){function a(a,f){var g,h=b.call(this,a,f),i=h[0],j=0;_d(i,function(a){var b=a.children;b&&b.length?(a.x=Fe(b),a.y=Ee(b)):(a.x=g?j+=c(a,g):0,a.y=0,g=a)});var k=Ge(i),l=He(i),m=k.x-c(k,l)/2,n=l.x+c(l,k)/2;return _d(i,e?function(a){a.x=(a.x-i.x)*d[0],a.y=(i.y-a.y)*d[1]}:function(a){a.x=(a.x-m)/(n-m)*d[0],a.y=(1-(i.y?a.y/i.y:1))*d[1]}),h}var b=bg.layout.hierarchy().sort(null).value(null),c=ye,d=[1,1],e=!1;return a.separation=function(b){return arguments.length?(c=b,a):c},a.size=function(b){return arguments.length?(e=null==(d=b),a):e?null:d},a.nodeSize=function(b){return arguments.length?(e=null!=(d=b),a):e?d:null},Zd(a,b)},bg.layout.treemap=function(){function a(a,b){for(var c,d,e=-1,f=a.length;++eb?0:b),c.area=isNaN(d)||0>=d?0:d}function b(c){var f=c.children;if(f&&f.length){var g,h,i,j=l(c),k=[],m=f.slice(),o=1/0,p="slice"===n?j.dx:"dice"===n?j.dy:"slice-dice"===n?1&c.depth?j.dy:j.dx:Math.min(j.dx,j.dy);for(a(m,j.dx*j.dy/c.value),k.area=0;(i=m.length)>0;)k.push(g=m[i-1]),k.area+=g.area,"squarify"!==n||(h=d(k,p))<=o?(m.pop(),o=h):(k.area-=k.pop().area,e(k,p,j,!1),p=Math.min(j.dx,j.dy),k.length=k.area=0,o=1/0);k.length&&(e(k,p,j,!0),k.length=k.area=0),f.forEach(b)}}function c(b){var d=b.children;if(d&&d.length){var f,g=l(b),h=d.slice(),i=[];for(a(h,g.dx*g.dy/b.value),i.area=0;f=h.pop();)i.push(f),i.area+=f.area,null!=f.z&&(e(i,f.z?g.dx:g.dy,g,!h.length),i.length=i.area=0);d.forEach(c)}}function d(a,b){for(var c,d=a.area,e=0,f=1/0,g=-1,h=a.length;++gc&&(f=c),c>e&&(e=c));return d*=d,b*=b,d?Math.max(b*e*o/d,d/(b*f*o)):1/0}function e(a,b,c,d){var e,f=-1,g=a.length,h=c.x,j=c.y,k=b?i(a.area/b):0;if(b==c.dx){for((d||k>c.dy)&&(k=c.dy);++fc.dx)&&(k=c.dx);++fc&&(b=1),1>c&&(a=0),function(){var c,d,e;do c=2*Math.random()-1,d=2*Math.random()-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}},logNormal:function(){var a=bg.random.normal.apply(bg,arguments);return function(){return Math.exp(a())}},bates:function(a){var b=bg.random.irwinHall(a);return function(){return b()/a}},irwinHall:function(a){return function(){for(var b=0,c=0;a>c;c++)b+=Math.random();return b}}},bg.scale={};var ri={floor:s,ceil:s};bg.scale.linear=function(){return Qe([0,1],[0,1],rd,!1)};var si={s:1,g:1,p:1,r:1,e:1};bg.scale.log=function(){return Ye(bg.scale.linear().domain([0,1]),10,!0,[1,10])};var ti=bg.format(".0e"),ui={floor:function(a){return-Math.ceil(-a)},ceil:function(a){return-Math.floor(-a)}};bg.scale.pow=function(){return Ze(bg.scale.linear(),1,[0,1])},bg.scale.sqrt=function(){return bg.scale.pow().exponent(.5)},bg.scale.ordinal=function(){return _e([],{t:"range",a:[[]]})},bg.scale.category10=function(){return bg.scale.ordinal().range(vi)},bg.scale.category20=function(){return bg.scale.ordinal().range(wi)},bg.scale.category20b=function(){return bg.scale.ordinal().range(xi)},bg.scale.category20c=function(){return bg.scale.ordinal().range(yi)};var vi=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(ta),wi=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(ta),xi=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(ta),yi=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(ta);bg.scale.quantile=function(){return af([],[])},bg.scale.quantize=function(){return bf(0,1,[0,1])},bg.scale.threshold=function(){return cf([.5],[0,1])},bg.scale.identity=function(){return df([0,1])},bg.svg={},bg.svg.arc=function(){function a(){var a=Math.max(0,+c.apply(this,arguments)),j=Math.max(0,+d.apply(this,arguments)),k=g.apply(this,arguments)-Ig,l=h.apply(this,arguments)-Ig,m=Math.abs(l-k),n=k>l?0:1;if(a>j&&(o=j,j=a,a=o),m>=Hg)return b(j,n)+(a?b(a,1-n):"")+"Z";var o,p,q,r,s,t,u,v,w,x,y,z,A=0,B=0,C=[];if((r=(+i.apply(this,arguments)||0)/2)&&(q=f===zi?Math.sqrt(a*a+j*j):+f.apply(this,arguments),n||(B*=-1),j&&(B=ba(q/j*Math.sin(r))),a&&(A=ba(q/a*Math.sin(r)))),j){s=j*Math.cos(k+B),t=j*Math.sin(k+B),u=j*Math.cos(l-B),v=j*Math.sin(l-B);var D=Math.abs(l-k-2*B)<=Fg?0:1;if(B&&lf(s,t,u,v)===n^D){var E=(k+l)/2;s=j*Math.cos(E),t=j*Math.sin(E),u=v=null}}else s=t=0;if(a){w=a*Math.cos(l-A),x=a*Math.sin(l-A),y=a*Math.cos(k+A),z=a*Math.sin(k+A);var F=Math.abs(k-l+2*A)<=Fg?0:1;if(A&&lf(w,x,y,z)===1-n^F){var G=(k+l)/2;w=a*Math.cos(G),x=a*Math.sin(G),y=z=null}}else w=x=0;if((o=Math.min(Math.abs(j-a)/2,+e.apply(this,arguments)))>.001){p=j>a^n?0:1;var H=null==y?[w,x]:null==u?[s,t]:Gc([s,t],[y,z],[u,v],[w,x]),I=s-H[0],J=t-H[1],K=u-H[0],L=v-H[1],M=1/Math.sin(Math.acos((I*K+J*L)/(Math.sqrt(I*I+J*J)*Math.sqrt(K*K+L*L)))/2),N=Math.sqrt(H[0]*H[0]+H[1]*H[1]);if(null!=u){var O=Math.min(o,(j-N)/(M+1)),P=mf(null==y?[w,x]:[y,z],[s,t],j,O,n),Q=mf([u,v],[w,x],j,O,n);o===O?C.push("M",P[0],"A",O,",",O," 0 0,",p," ",P[1],"A",j,",",j," 0 ",1-n^lf(P[1][0],P[1][1],Q[1][0],Q[1][1]),",",n," ",Q[1],"A",O,",",O," 0 0,",p," ",Q[0]):C.push("M",P[0],"A",O,",",O," 0 1,",p," ",Q[0])}else C.push("M",s,",",t);if(null!=y){var R=Math.min(o,(a-N)/(M-1)),S=mf([s,t],[y,z],a,-R,n),T=mf([w,x],null==u?[s,t]:[u,v],a,-R,n);o===R?C.push("L",T[0],"A",R,",",R," 0 0,",p," ",T[1],"A",a,",",a," 0 ",n^lf(T[1][0],T[1][1],S[1][0],S[1][1]),",",1-n," ",S[1],"A",R,",",R," 0 0,",p," ",S[0]):C.push("L",T[0],"A",R,",",R," 0 0,",p," ",S[0])}else C.push("L",w,",",x)}else C.push("M",s,",",t),null!=u&&C.push("A",j,",",j," 0 ",D,",",n," ",u,",",v),C.push("L",w,",",x),null!=y&&C.push("A",a,",",a," 0 ",F,",",1-n," ",y,",",z);return C.push("Z"),C.join("")}function b(a,b){return"M0,"+a+"A"+a+","+a+" 0 1,"+b+" 0,"+-a+"A"+a+","+a+" 0 1,"+b+" 0,"+a}var c=ff,d=gf,e=ef,f=zi,g=hf,h=jf,i=kf;return a.innerRadius=function(b){return arguments.length?(c=Aa(b),a):c},a.outerRadius=function(b){return arguments.length?(d=Aa(b),a):d},a.cornerRadius=function(b){return arguments.length?(e=Aa(b),a):e},a.padRadius=function(b){return arguments.length?(f=b==zi?zi:Aa(b),a):f},a.startAngle=function(b){return arguments.length?(g=Aa(b),a):g},a.endAngle=function(b){return arguments.length?(h=Aa(b),a):h},a.padAngle=function(b){return arguments.length?(i=Aa(b),a):i},a.centroid=function(){var a=(+c.apply(this,arguments)+ +d.apply(this,arguments))/2,b=(+g.apply(this,arguments)+ +h.apply(this,arguments))/2-Ig;return[Math.cos(b)*a,Math.sin(b)*a]},a};var zi="auto";bg.svg.line=function(){return nf(s)};var Ai=bg.map({linear:of,"linear-closed":pf,step:qf,"step-before":rf,"step-after":sf,basis:yf,"basis-open":zf,"basis-closed":Af,bundle:Bf,cardinal:vf,"cardinal-open":tf,"cardinal-closed":uf,monotone:Hf});Ai.forEach(function(a,b){b.key=a,b.closed=/-closed$/.test(a)});var Bi=[0,2/3,1/3,0],Ci=[0,1/3,2/3,0],Di=[0,1/6,2/3,1/6];bg.svg.line.radial=function(){var a=nf(If);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},rf.reverse=sf,sf.reverse=rf,bg.svg.area=function(){return Jf(s)},bg.svg.area.radial=function(){var a=Jf(If);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},bg.svg.chord=function(){function a(a,h){var i=b(this,f,a,h),j=b(this,g,a,h);return"M"+i.p0+d(i.r,i.p1,i.a1-i.a0)+(c(i,j)?e(i.r,i.p1,i.r,i.p0):e(i.r,i.p1,j.r,j.p0)+d(j.r,j.p1,j.a1-j.a0)+e(j.r,j.p1,i.r,i.p0))+"Z"}function b(a,b,c,d){var e=b.call(a,c,d),f=h.call(a,e,d),g=i.call(a,e,d)-Ig,k=j.call(a,e,d)-Ig;return{r:f,a0:g,a1:k,p0:[f*Math.cos(g),f*Math.sin(g)],p1:[f*Math.cos(k),f*Math.sin(k)]}}function c(a,b){return a.a0==b.a0&&a.a1==b.a1}function d(a,b,c){return"A"+a+","+a+" 0 "+ +(c>Fg)+",1 "+b}function e(a,b,c,d){return"Q 0,0 "+d}var f=rc,g=sc,h=Kf,i=hf,j=jf;return a.radius=function(b){return arguments.length?(h=Aa(b),a):h},a.source=function(b){return arguments.length?(f=Aa(b),a):f},a.target=function(b){return arguments.length?(g=Aa(b),a):g},a.startAngle=function(b){return arguments.length?(i=Aa(b),a):i},a.endAngle=function(b){return arguments.length?(j=Aa(b),a):j},a},bg.svg.diagonal=function(){function a(a,e){var f=b.call(this,a,e),g=c.call(this,a,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(d),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var b=rc,c=sc,d=Lf;return a.source=function(c){return arguments.length?(b=Aa(c),a):b},a.target=function(b){return arguments.length?(c=Aa(b),a):c},a.projection=function(b){return arguments.length?(d=b,a):d},a},bg.svg.diagonal.radial=function(){var a=bg.svg.diagonal(),b=Lf,c=a.projection;return a.projection=function(a){return arguments.length?c(Mf(b=a)):b},a},bg.svg.symbol=function(){function a(a,d){return(Ei.get(b.call(this,a,d))||Pf)(c.call(this,a,d))}var b=Of,c=Nf;return a.type=function(c){return arguments.length?(b=Aa(c),a):b},a.size=function(b){return arguments.length?(c=Aa(b),a):c},a};var Ei=bg.map({circle:Pf,cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+-3*b+","+-b+"H"+-b+"V"+-3*b+"H"+b+"V"+-b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+-b+"V"+b+"H"+-3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*Gi)),c=b*Gi;return"M0,"+-b+"L"+c+",0 0,"+b+" "+-c+",0Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+-b+","+-b+"L"+b+","+-b+" "+b+","+b+" "+-b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/Fi),c=b*Fi/2;return"M0,"+c+"L"+b+","+-c+" "+-b+","+-c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/Fi),c=b*Fi/2;return"M0,"+-c+"L"+b+","+c+" "+-b+","+c+"Z"}});bg.svg.symbolTypes=Ei.keys();var Fi=Math.sqrt(3),Gi=Math.tan(30*Jg);wg.transition=function(a){for(var b,c,d=Hi||++Li,e=Uf(a),f=[],g=Ii||{time:Date.now(),ease:yd,delay:0,duration:250},h=-1,i=this.length;++hf;f++){e.push(b=[]);for(var c=this[f],h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return Rf(e,this.namespace,this.id)},Ki.tween=function(a,b){var c=this.id,d=this.namespace;return arguments.length<2?this.node()[d][c].tween.get(a):R(this,null==b?function(b){b[d][c].tween.remove(a)}:function(e){e[d][c].tween.set(a,b)})},Ki.attr=function(a,b){function c(){this.removeAttribute(h)}function d(){this.removeAttributeNS(h.space,h.local)}function e(a){return null==a?c:(a+="",function(){var b,c=this.getAttribute(h);return c!==a&&(b=g(c,a),function(a){this.setAttribute(h,b(a))})})}function f(a){return null==a?d:(a+="",function(){var b,c=this.getAttributeNS(h.space,h.local);return c!==a&&(b=g(c,a),function(a){this.setAttributeNS(h.space,h.local,b(a))})})}if(arguments.length<2){for(b in a)this.attr(b,a[b]);return this}var g="transform"==a?Od:rd,h=bg.ns.qualify(a);return Sf(this,"attr."+a,b,h.local?f:e)},Ki.attrTween=function(a,b){function c(a,c){var d=b.call(this,a,c,this.getAttribute(e));return d&&function(a){this.setAttribute(e,d(a))}}function d(a,c){var d=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return d&&function(a){this.setAttributeNS(e.space,e.local,d(a))}}var e=bg.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)},Ki.style=function(a,c,d){function e(){this.style.removeProperty(a)}function f(c){return null==c?e:(c+="",function(){var e,f=b(this).getComputedStyle(this,null).getPropertyValue(a);return f!==c&&(e=rd(f,c),function(b){this.style.setProperty(a,e(b),d)})})}var g=arguments.length;if(3>g){if("string"!=typeof a){2>g&&(c="");for(d in a)this.style(d,a[d],c);return this}d=""}return Sf(this,"style."+a,c,f)},Ki.styleTween=function(a,c,d){function e(e,f){var g=c.call(this,e,f,b(this).getComputedStyle(this,null).getPropertyValue(a));return g&&function(b){this.style.setProperty(a,g(b),d)}}return arguments.length<3&&(d=""),this.tween("style."+a,e)},Ki.text=function(a){return Sf(this,"text",a,Tf)},Ki.remove=function(){var a=this.namespace;return this.each("end.transition",function(){var b;this[a].count<2&&(b=this.parentNode)&&b.removeChild(this)})},Ki.ease=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].ease:("function"!=typeof a&&(a=bg.ease.apply(bg,arguments)),R(this,function(d){d[c][b].ease=a}))},Ki.delay=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].delay:R(this,"function"==typeof a?function(d,e,f){d[c][b].delay=+a.call(d,d.__data__,e,f)}:(a=+a,function(d){d[c][b].delay=a}))},Ki.duration=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].duration:R(this,"function"==typeof a?function(d,e,f){d[c][b].duration=Math.max(1,a.call(d,d.__data__,e,f))}:(a=Math.max(1,a),function(d){d[c][b].duration=a}))},Ki.each=function(a,b){var c=this.id,d=this.namespace;if(arguments.length<2){var e=Ii,f=Hi;try{Hi=c,R(this,function(b,e,f){Ii=b[d][c],a.call(b,b.__data__,e,f)})}finally{Ii=e,Hi=f}}else R(this,function(e){var f=e[d][c];(f.event||(f.event=bg.dispatch("start","end","interrupt"))).on(a,b)});return this},Ki.transition=function(){for(var a,b,c,d,e=this.id,f=++Li,g=this.namespace,h=[],i=0,j=this.length;j>i;i++){h.push(a=[]);for(var b=this[i],k=0,l=b.length;l>k;k++)(c=b[k])&&(d=c[g][e],Vf(c,k,g,f,{time:d.time,ease:d.ease,delay:d.delay+d.duration,duration:d.duration})),a.push(c)}return Rf(h,g,f)},bg.svg.axis=function(){function a(a){a.each(function(){var a,j=bg.select(this),k=this.__chart__||c,l=this.__chart__=c.copy(),m=null==i?l.ticks?l.ticks.apply(l,h):l.domain():i,n=null==b?l.tickFormat?l.tickFormat.apply(l,h):s:b,o=j.selectAll(".tick").data(m,l),p=o.enter().insert("g",".domain").attr("class","tick").style("opacity",Dg),q=bg.transition(o.exit()).style("opacity",Dg).remove(),r=bg.transition(o.order()).style("opacity",1),t=Math.max(e,0)+g,u=Le(l),v=j.selectAll(".domain").data([0]),w=(v.enter().append("path").attr("class","domain"),bg.transition(v));p.append("line"),p.append("text");var x,y,z,A,B=p.select("line"),C=r.select("line"),D=o.select("text").text(n),E=p.select("text"),F=r.select("text"),G="top"===d||"left"===d?-1:1;if("bottom"===d||"top"===d?(a=Wf,x="x",z="y",y="x2",A="y2",D.attr("dy",0>G?"0em":".71em").style("text-anchor","middle"),w.attr("d","M"+u[0]+","+G*f+"V0H"+u[1]+"V"+G*f)):(a=Xf,x="y",z="x",y="y2",A="x2",D.attr("dy",".32em").style("text-anchor",0>G?"end":"start"),w.attr("d","M"+G*f+","+u[0]+"H0V"+u[1]+"H"+G*f)),B.attr(A,G*e),E.attr(z,G*t),C.attr(y,0).attr(A,G*e),F.attr(x,0).attr(z,G*t),l.rangeBand){var H=l,I=H.rangeBand()/2;k=l=function(a){return H(a)+I}}else k.rangeBand?k=l:q.call(a,l,k);p.call(a,k,l),r.call(a,l,l)})}var b,c=bg.scale.linear(),d=Mi,e=6,f=6,g=3,h=[10],i=null;return a.scale=function(b){return arguments.length?(c=b,a):c},a.orient=function(b){return arguments.length?(d=b in Ni?b+"":Mi,a):d},a.ticks=function(){return arguments.length?(h=arguments,a):h},a.tickValues=function(b){return arguments.length?(i=b,a):i},a.tickFormat=function(c){return arguments.length?(b=c,a):b},a.tickSize=function(b){var c=arguments.length;return c?(e=+b,f=+arguments[c-1],a):e},a.innerTickSize=function(b){return arguments.length?(e=+b,a):e},a.outerTickSize=function(b){return arguments.length?(f=+b,a):f},a.tickPadding=function(b){return arguments.length?(g=+b,a):g},a.tickSubdivide=function(){return arguments.length&&a},a};var Mi="bottom",Ni={top:1,right:1,bottom:1,left:1};bg.svg.brush=function(){function a(b){b.each(function(){var b=bg.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",f).on("touchstart.brush",f),g=b.selectAll(".background").data([0]);g.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),b.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var h=b.selectAll(".resize").data(p,s);h.exit().remove(),h.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return Oi[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),h.style("display",a.empty()?"none":null);var i,l=bg.transition(b),m=bg.transition(g);j&&(i=Le(j),m.attr("x",i[0]).attr("width",i[1]-i[0]),d(l)),k&&(i=Le(k),m.attr("y",i[0]).attr("height",i[1]-i[0]),e(l)),c(l)})}function c(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+l[+/e$/.test(a)]+","+m[+/^s/.test(a)]+")"})}function d(a){a.select(".extent").attr("x",l[0]),a.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function e(a){a.select(".extent").attr("y",m[0]),a.selectAll(".extent,.e>rect,.w>rect").attr("height",m[1]-m[0])}function f(){function f(){32==bg.event.keyCode&&(D||(t=null,F[0]-=l[1],F[1]-=m[1],D=2),y())}function p(){32==bg.event.keyCode&&2==D&&(F[0]+=l[1],F[1]+=m[1],D=0,y())}function q(){var a=bg.mouse(v),b=!1;u&&(a[0]+=u[0],a[1]+=u[1]),D||(bg.event.altKey?(t||(t=[(l[0]+l[1])/2,(m[0]+m[1])/2]),F[0]=l[+(a[0]k?(e=d,d=k):e=k),p[0]!=d||p[1]!=e?(c?h=null:g=null,p[0]=d,p[1]=e,!0):void 0}function s(){q(),z.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null),bg.select("body").style("cursor",null),G.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),E(),x({type:"brushend"})}var t,u,v=this,w=bg.select(bg.event.target),x=i.of(v,arguments),z=bg.select(v),A=w.datum(),B=!/^(n|s)$/.test(A)&&j,C=!/^(e|w)$/.test(A)&&k,D=w.classed("extent"),E=X(v),F=bg.mouse(v),G=bg.select(b(v)).on("keydown.brush",f).on("keyup.brush",p);if(bg.event.changedTouches?G.on("touchmove.brush",q).on("touchend.brush",s):G.on("mousemove.brush",q).on("mouseup.brush",s),z.interrupt().selectAll("*").interrupt(),D)F[0]=l[0]-F[0],F[1]=m[0]-F[1];else if(A){var H=+/w$/.test(A),I=+/^n/.test(A);u=[l[1-H]-F[0],m[1-I]-F[1]],F[0]=l[H],F[1]=m[I]}else bg.event.altKey&&(t=F.slice());z.style("pointer-events","none").selectAll(".resize").style("display",null),bg.select("body").style("cursor",w.style("cursor")),x({type:"brushstart"}),q()}var g,h,i=A(a,"brushstart","brush","brushend"),j=null,k=null,l=[0,0],m=[0,0],n=!0,o=!0,p=Pi[0];return a.event=function(a){a.each(function(){var a=i.of(this,arguments),b={x:l,y:m,i:g,j:h},c=this.__chart__||b;this.__chart__=b,Hi?bg.select(this).transition().each("start.brush",function(){g=c.i,h=c.j,l=c.x,m=c.y,a({type:"brushstart"})}).tween("brush:brush",function(){var c=sd(l,b.x),d=sd(m,b.y);return g=h=null,function(e){l=b.x=c(e),m=b.y=d(e),a({type:"brush",mode:"resize"})}}).each("end.brush",function(){g=b.i,h=b.j,a({type:"brush",mode:"resize"}),a({type:"brushend"})}):(a({type:"brushstart"}),a({type:"brush",mode:"resize"}),a({type:"brushend"}))})},a.x=function(b){return arguments.length?(j=b,p=Pi[!j<<1|!k],a):j},a.y=function(b){return arguments.length?(k=b,p=Pi[!j<<1|!k],a):k},a.clamp=function(b){return arguments.length?(j&&k?(n=!!b[0],o=!!b[1]):j?n=!!b:k&&(o=!!b),a):j&&k?[n,o]:j?n:k?o:null},a.extent=function(b){var c,d,e,f,i;return arguments.length?(j&&(c=b[0],d=b[1],k&&(c=c[0],d=d[0]),g=[c,d],j.invert&&(c=j(c),d=j(d)),c>d&&(i=c,c=d,d=i),(c!=l[0]||d!=l[1])&&(l=[c,d])),k&&(e=b[0],f=b[1],j&&(e=e[1],f=f[1]),h=[e,f],k.invert&&(e=k(e),f=k(f)),e>f&&(i=e,e=f,f=i),(e!=m[0]||f!=m[1])&&(m=[e,f])),a):(j&&(g?(c=g[0],d=g[1]):(c=l[0],d=l[1],j.invert&&(c=j.invert(c),d=j.invert(d)),c>d&&(i=c,c=d,d=i))),k&&(h?(e=h[0],f=h[1]):(e=m[0],f=m[1],k.invert&&(e=k.invert(e),f=k.invert(f)),e>f&&(i=e,e=f,f=i))),j&&k?[[c,e],[d,f]]:j?[c,d]:k&&[e,f])},a.clear=function(){return a.empty()||(l=[0,0],m=[0,0],g=h=null),a},a.empty=function(){return!!j&&l[0]==l[1]||!!k&&m[0]==m[1]},bg.rebind(a,i,"on")};var Oi={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Pi=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Qi=hh.format=nh.timeFormat,Ri=Qi.utc,Si=Ri("%Y-%m-%dT%H:%M:%S.%LZ");Qi.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Yf:Si,Yf.parse=function(a){var b=new Date(a);return isNaN(b)?null:b},Yf.toString=Si.toString,hh.second=Na(function(a){return new ih(1e3*Math.floor(a/1e3))},function(a,b){a.setTime(a.getTime()+1e3*Math.floor(b))},function(a){return a.getSeconds()}),hh.seconds=hh.second.range,hh.seconds.utc=hh.second.utc.range,hh.minute=Na(function(a){return new ih(6e4*Math.floor(a/6e4))},function(a,b){a.setTime(a.getTime()+6e4*Math.floor(b))},function(a){return a.getMinutes()}),hh.minutes=hh.minute.range,hh.minutes.utc=hh.minute.utc.range,hh.hour=Na(function(a){var b=a.getTimezoneOffset()/60;return new ih(36e5*(Math.floor(a/36e5-b)+b))},function(a,b){a.setTime(a.getTime()+36e5*Math.floor(b))},function(a){return a.getHours()}),hh.hours=hh.hour.range,hh.hours.utc=hh.hour.utc.range,hh.month=Na(function(a){return a=hh.day(a),a.setDate(1),a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()}),hh.months=hh.month.range,hh.months.utc=hh.month.utc.range;var Ti=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ui=[[hh.second,1],[hh.second,5],[hh.second,15],[hh.second,30],[hh.minute,1],[hh.minute,5],[hh.minute,15],[hh.minute,30],[hh.hour,1],[hh.hour,3],[hh.hour,6],[hh.hour,12],[hh.day,1],[hh.day,2],[hh.week,1],[hh.month,1],[hh.month,3],[hh.year,1]],Vi=Qi.multi([[".%L",function(a){return a.getMilliseconds()}],[":%S",function(a){return a.getSeconds()}],["%I:%M",function(a){return a.getMinutes()}],["%I %p",function(a){return a.getHours()}],["%a %d",function(a){return a.getDay()&&1!=a.getDate()}],["%b %d",function(a){return 1!=a.getDate()}],["%B",function(a){return a.getMonth()}],["%Y",Cb]]),Wi={range:function(a,b,c){return bg.range(Math.ceil(a/c)*c,+b,c).map($f)},floor:s,ceil:s};Ui.year=hh.year,hh.scale=function(){return Zf(bg.scale.linear(),Ui,Vi)};var Xi=Ui.map(function(a){return[a[0].utc,a[1]]}),Yi=Ri.multi([[".%L",function(a){return a.getUTCMilliseconds()}],[":%S",function(a){return a.getUTCSeconds()}],["%I:%M",function(a){return a.getUTCMinutes()}],["%I %p",function(a){return a.getUTCHours()}],["%a %d",function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],["%b %d",function(a){return 1!=a.getUTCDate()}],["%B",function(a){return a.getUTCMonth()}],["%Y",Cb]]);Xi.year=hh.year.utc,hh.scale.utc=function(){return Zf(bg.scale.linear(),Xi,Yi)},bg.text=Ba(function(a){return a.responseText}),bg.json=function(a,b){return Ca(a,"application/json",_f,b)},bg.html=function(a,b){return Ca(a,"text/html",ag,b)},bg.xml=Ba(function(a){return a.responseXML}),"function"==typeof define&&define.amd?define(bg):"object"==typeof module&&module.exports&&(module.exports=bg),this.d3=bg}(); +b):c},b.x1=function(a){return arguments.length?(d=a,b):d},b.y=function(a){return arguments.length?(e=f=a,b):f},b.y0=function(a){return arguments.length?(e=a,b):e},b.y1=function(a){return arguments.length?(f=a,b):f},b.defined=function(a){return arguments.length?(g=a,b):g},b.interpolate=function(a){return arguments.length?(i="function"==typeof a?h=a:(h=Ai.get(a)||of).key,j=h.reverse||h,k=h.closed?"M":"L",b):i},b.tension=function(a){return arguments.length?(l=a,b):l},b}function Kf(a){return a.radius}function Lf(a){return[a.x,a.y]}function Mf(a){return function(){var b=a.apply(this,arguments),c=b[0],d=b[1]-Ig;return[c*Math.cos(d),c*Math.sin(d)]}}function Nf(){return 64}function Of(){return"circle"}function Pf(a){var b=Math.sqrt(a/Fg);return"M0,"+b+"A"+b+","+b+" 0 1,1 0,"+-b+"A"+b+","+b+" 0 1,1 0,"+b+"Z"}function Qf(a){return function(){var b,c;(b=this[a])&&(c=b[b.active])&&(--b.count?delete b[b.active]:delete this[a],b.active+=.5,c.event&&c.event.interrupt.call(this,this.__data__,c.index))}}function Rf(a,b,c){return sg(a,Ki),a.namespace=b,a.id=c,a}function Sf(a,b,c,d){var e=a.id,f=a.namespace;return R(a,"function"==typeof c?function(a,g,h){a[f][e].tween.set(b,d(c.call(a,a.__data__,g,h)))}:(c=d(c),function(a){a[f][e].tween.set(b,c)}))}function Tf(a){return null==a&&(a=""),function(){this.textContent=a}}function Uf(a){return null==a?"__transition__":"__transition_"+a+"__"}function Vf(a,b,c,d,e){var f=a[c]||(a[c]={active:0,count:0}),g=f[d];if(!g){var h=e.time;g=f[d]={tween:new j,time:h,delay:e.delay,duration:e.duration,ease:e.ease,index:b},e=null,++f.count,bg.timer(function(e){function i(c){if(f.active>d)return k();var e=f[f.active];e&&(--f.count,delete f[f.active],e.event&&e.event.interrupt.call(a,a.__data__,e.index)),f.active=d,g.event&&g.event.start.call(a,a.__data__,b),g.tween.forEach(function(c,d){(d=d.call(a,a.__data__,b))&&p.push(d)}),m=g.ease,l=g.duration,bg.timer(function(){return o.c=j(c||1)?Cb:j,1},0,h)}function j(c){if(f.active!==d)return 1;for(var e=c/l,h=m(e),i=p.length;i>0;)p[--i].call(a,h);return e>=1?(g.event&&g.event.end.call(a,a.__data__,b),k()):void 0}function k(){return--f.count?delete f[d]:delete a[c],1}var l,m,n=g.delay,o=ch,p=[];return o.t=n+h,e>=n?i(e-n):void(o.c=i)},0,h)}}function Wf(a,b,c){a.attr("transform",function(a){var d=b(a);return"translate("+(isFinite(d)?d:c(a))+",0)"})}function Xf(a,b,c){a.attr("transform",function(a){var d=b(a);return"translate(0,"+(isFinite(d)?d:c(a))+")"})}function Yf(a){return a.toISOString()}function Zf(a,b,c){function d(b){return a(b)}function e(a,c){var d=a[1]-a[0],e=d/c,f=bg.bisect(Ti,e);return f==Ti.length?[b.year,Te(a.map(function(a){return a/31536e6}),c)[2]]:f?b[e/Ti[f-1]1?{floor:function(b){for(;c(b=a.floor(b));)b=$f(b-1);return b},ceil:function(b){for(;c(b=a.ceil(b));)b=$f(+b+1);return b}}:a))},d.ticks=function(a,b){var c=Ke(d.domain()),f=null==a?e(c,10):"number"==typeof a?e(c,a):!a.range&&[{range:a},b];return f&&(a=f[0],b=f[1]),a.range(c[0],$f(+c[1]+1),1>b?1:b)},d.tickFormat=function(){return c},d.copy=function(){return Zf(a.copy(),b,c)},Re(d,a)}function $f(a){return new Date(a)}function _f(a){return JSON.parse(a.responseText)}function ag(a){var b=eg.createRange();return b.selectNode(eg.body),b.createContextualFragment(a.responseText)}var bg={version:"3.5.6"},cg=[].slice,dg=function(a){return cg.call(a)},eg=this.document;if(eg)try{dg(eg.documentElement.childNodes)[0].nodeType}catch(fg){dg=function(a){for(var b=a.length,c=new Array(b);b--;)c[b]=a[b];return c}}if(Date.now||(Date.now=function(){return+new Date}),eg)try{eg.createElement("DIV").style.setProperty("opacity",0,"")}catch(gg){var hg=this.Element.prototype,ig=hg.setAttribute,jg=hg.setAttributeNS,kg=this.CSSStyleDeclaration.prototype,lg=kg.setProperty;hg.setAttribute=function(a,b){ig.call(this,a,b+"")},hg.setAttributeNS=function(a,b,c){jg.call(this,a,b,c+"")},kg.setProperty=function(a,b,c){lg.call(this,a,b+"",c)}}bg.ascending=c,bg.descending=function(a,b){return a>b?-1:b>a?1:b>=a?0:0/0},bg.min=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=d){c=d;break}for(;++ed&&(c=d)}else{for(;++e=d){c=d;break}for(;++ed&&(c=d)}return c},bg.max=function(a,b){var c,d,e=-1,f=a.length;if(1===arguments.length){for(;++e=d){c=d;break}for(;++ec&&(c=d)}else{for(;++e=d){c=d;break}for(;++ec&&(c=d)}return c},bg.extent=function(a,b){var c,d,e,f=-1,g=a.length;if(1===arguments.length){for(;++f=d){c=e=d;break}for(;++fd&&(c=d),d>e&&(e=d))}else{for(;++f=d){c=e=d;break}for(;++fd&&(c=d),d>e&&(e=d))}return[c,e]},bg.sum=function(a,b){var c,d=0,f=a.length,g=-1;if(1===arguments.length)for(;++g1?i/(k-1):void 0},bg.deviation=function(){var a=bg.variance.apply(this,arguments);return a?Math.sqrt(a):a};var mg=f(c);bg.bisectLeft=mg.left,bg.bisect=bg.bisectRight=mg.right,bg.bisector=function(a){return f(1===a.length?function(b,d){return c(a(b),d)}:a)},bg.shuffle=function(a,b,c){(f=arguments.length)<3&&(c=a.length,2>f&&(b=0));for(var d,e,f=c-b;f;)e=Math.random()*f--|0,d=a[f+b],a[f+b]=a[e+b],a[e+b]=d;return a},bg.permute=function(a,b){for(var c=b.length,d=new Array(c);c--;)d[c]=a[b[c]];return d},bg.pairs=function(a){for(var b,c=0,d=a.length-1,e=a[0],f=new Array(0>d?0:d);d>c;)f[c]=[b=e,e=a[++c]];return f},bg.zip=function(){if(!(d=arguments.length))return[];for(var a=-1,b=bg.min(arguments,g),c=new Array(b);++a=0;)for(d=a[e],b=d.length;--b>=0;)c[--g]=d[b];return c};var ng=Math.abs;bg.range=function(a,b,c){if(arguments.length<3&&(c=1,arguments.length<2&&(b=a,a=0)),(b-a)/c===1/0)throw new Error("infinite range");var d,e=[],f=h(ng(c)),g=-1;if(a*=f,b*=f,c*=f,0>c)for(;(d=a+c*++g)>b;)e.push(d/f);else for(;(d=a+c*++g)=f.length)return d?d.call(e,g):c?g.sort(c):g;for(var i,k,l,m,n=-1,o=g.length,p=f[h++],q=new j;++n=f.length)return a;var d=[],e=g[c++];return a.forEach(function(a,e){d.push({key:a,values:b(e,c)})}),e?d.sort(function(a,b){return e(a.key,b.key)}):d}var c,d,e={},f=[],g=[];return e.map=function(b,c){return a(c,b,0)},e.entries=function(c){return b(a(bg.map,c,0),0)},e.key=function(a){return f.push(a),e},e.sortKeys=function(a){return g[f.length-1]=a,e},e.sortValues=function(a){return c=a,e},e.rollup=function(a){return d=a,e},e},bg.set=function(a){var b=new r;if(a)for(var c=0,d=a.length;d>c;++c)b.add(a[c]);return b},i(r,{has:m,add:function(a){return this._[k(a+="")]=!0,a},remove:n,values:o,size:p,empty:q,forEach:function(a){for(var b in this._)a.call(this,l(b))}}),bg.behavior={},bg.rebind=function(a,b){for(var c,d=1,e=arguments.length;++d=0&&(d=a.slice(c+1),a=a.slice(0,c)),a)return arguments.length<2?this[a].on(d):this[a].on(d,b);if(2===arguments.length){if(null==b)for(a in this)this.hasOwnProperty(a)&&this[a].on(d,null);return this}},bg.event=null,bg.requote=function(a){return a.replace(rg,"\\$&")};var rg=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,sg={}.__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]},tg=function(a,b){return b.querySelector(a)},ug=function(a,b){return b.querySelectorAll(a)},vg=function(a,b){var c=a.matches||a[u(a,"matchesSelector")];return(vg=function(a,b){return c.call(a,b)})(a,b)};"function"==typeof Sizzle&&(tg=function(a,b){return Sizzle(a,b)[0]||null},ug=Sizzle,vg=Sizzle.matchesSelector),bg.selection=function(){return bg.select(eg.documentElement)};var wg=bg.selection.prototype=[];wg.select=function(a){var b,c,d,e,f=[];a=C(a);for(var g=-1,h=this.length;++g=0&&(c=a.slice(0,b),a=a.slice(b+1)),xg.hasOwnProperty(c)?{space:xg[c],local:a}:a}},wg.attr=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node();return a=bg.ns.qualify(a),a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(E(b,a[b]));return this}return this.each(E(a,b))},wg.classed=function(a,b){if(arguments.length<2){if("string"==typeof a){var c=this.node(),d=(a=H(a)).length,e=-1;if(b=c.classList){for(;++ee){if("string"!=typeof a){2>e&&(c="");for(d in a)this.each(K(d,a[d],c));return this}if(2>e){var f=this.node();return b(f).getComputedStyle(f,null).getPropertyValue(a)}d=""}return this.each(K(a,c,d))},wg.property=function(a,b){if(arguments.length<2){if("string"==typeof a)return this.node()[a];for(b in a)this.each(L(b,a[b]));return this}return this.each(L(a,b))},wg.text=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=a}):this.node().textContent},wg.html=function(a){return arguments.length?this.each("function"==typeof a?function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML},wg.append=function(a){return a=M(a),this.select(function(){return this.appendChild(a.apply(this,arguments))})},wg.insert=function(a,b){return a=M(a),b=C(b),this.select(function(){return this.insertBefore(a.apply(this,arguments),b.apply(this,arguments)||null)})},wg.remove=function(){return this.each(N)},wg.data=function(a,b){function c(a,c){var d,e,f,g=a.length,l=c.length,m=Math.min(g,l),n=new Array(l),o=new Array(l),p=new Array(g);if(b){var q,r=new j,s=new Array(g);for(d=-1;++dd;++d)o[d]=O(c[d]);for(;g>d;++d)p[d]=a[d]}o.update=n,o.parentNode=n.parentNode=p.parentNode=a.parentNode,h.push(o),i.push(n),k.push(p)}var d,e,f=-1,g=this.length;if(!arguments.length){for(a=new Array(g=(d=this[0]).length);++ff;f++){e.push(b=[]),b.parentNode=(c=this[f]).parentNode;for(var h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return B(e)},wg.order=function(){for(var a=-1,b=this.length;++a=0;)(c=d[e])&&(f&&f!==c.nextSibling&&f.parentNode.insertBefore(c,f),f=c);return this},wg.sort=function(a){a=Q.apply(this,arguments);for(var b=-1,c=this.length;++ba;a++)for(var c=this[a],d=0,e=c.length;e>d;d++){var f=c[d];if(f)return f}return null},wg.size=function(){var a=0;return R(this,function(){++a}),a};var yg=[];bg.selection.enter=S,bg.selection.enter.prototype=yg,yg.append=wg.append,yg.empty=wg.empty,yg.node=wg.node,yg.call=wg.call,yg.size=wg.size,yg.select=function(a){for(var b,c,d,e,f,g=[],h=-1,i=this.length;++hd){if("string"!=typeof a){2>d&&(b=!1);for(c in a)this.each(U(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(U(a,b,c))};var zg=bg.map({mouseenter:"mouseover",mouseleave:"mouseout"});eg&&zg.forEach(function(a){"on"+a in eg&&zg.remove(a)});var Ag,Bg=0;bg.mouse=function(a){return Y(a,z())};var Cg=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;bg.touch=function(a,b,c){if(arguments.length<3&&(c=b,b=z().changedTouches),b)for(var d,e=0,f=b.length;f>e;++e)if((d=b[e]).identifier===c)return Y(a,d)},bg.behavior.drag=function(){function a(){this.on("mousedown.drag",f).on("touchstart.drag",g)}function c(a,b,c,f,g){return function(){function h(){var a,c,d=b(m,p);d&&(a=d[0]-t[0],c=d[1]-t[1],o|=a|c,t=d,n({type:"drag",x:d[0]+j[0],y:d[1]+j[1],dx:a,dy:c}))}function i(){b(m,p)&&(r.on(f+q,null).on(g+q,null),s(o&&bg.event.target===l),n({type:"dragend"}))}var j,k=this,l=bg.event.target,m=k.parentNode,n=d.of(k,arguments),o=0,p=a(),q=".drag"+(null==p?"":"-"+p),r=bg.select(c(l)).on(f+q,h).on(g+q,i),s=X(l),t=b(m,p);e?(j=e.apply(k,arguments),j=[j.x-t[0],j.y-t[1]]):j=[0,0],n({type:"dragstart"})}}var d=A(a,"drag","dragstart","dragend"),e=null,f=c(v,bg.mouse,b,"mousemove","mouseup"),g=c(Z,bg.touch,s,"touchmove","touchend");return a.origin=function(b){return arguments.length?(e=b,a):e},bg.rebind(a,d,"on")},bg.touches=function(a,b){return arguments.length<2&&(b=z().touches),b?dg(b).map(function(b){var c=Y(a,b);return c.identifier=b.identifier,c}):[]};var Dg=1e-6,Eg=Dg*Dg,Fg=Math.PI,Gg=2*Fg,Hg=Gg-Dg,Ig=Fg/2,Jg=Fg/180,Kg=180/Fg,Lg=Math.SQRT2,Mg=2,Ng=4;bg.interpolateZoom=function(a,b){function c(a){var b=a*s;if(r){var c=da(p),g=f/(Mg*m)*(c*ea(Lg*b+p)-ca(p));return[d+g*j,e+g*k,f*c/da(Lg*b+p)]}return[d+a*j,e+a*k,f*Math.exp(Lg*b)]}var d=a[0],e=a[1],f=a[2],g=b[0],h=b[1],i=b[2],j=g-d,k=h-e,l=j*j+k*k,m=Math.sqrt(l),n=(i*i-f*f+Ng*l)/(2*f*Mg*m),o=(i*i-f*f-Ng*l)/(2*i*Mg*m),p=Math.log(Math.sqrt(n*n+1)-n),q=Math.log(Math.sqrt(o*o+1)-o),r=q-p,s=(r||Math.log(i/f))/Lg;return c.duration=1e3*s,c},bg.behavior.zoom=function(){function a(a){a.on(F,l).on(Pg+".zoom",n).on("dblclick.zoom",o).on(I,m)}function c(a){return[(a[0]-z.x)/z.k,(a[1]-z.y)/z.k]}function d(a){return[a[0]*z.k+z.x,a[1]*z.k+z.y]}function e(a){z.k=Math.max(C[0],Math.min(C[1],a))}function f(a,b){b=d(b),z.x+=a[0]-b[0],z.y+=a[1]-b[1]}function g(b,c,d,g){b.__chart__={x:z.x,y:z.y,k:z.k},e(Math.pow(2,g)),f(q=c,d),b=bg.select(b),D>0&&(b=b.transition().duration(D)),b.call(a.event)}function h(){v&&v.domain(u.range().map(function(a){return(a-z.x)/z.k}).map(u.invert)),x&&x.domain(w.range().map(function(a){return(a-z.y)/z.k}).map(w.invert))}function i(a){E++||a({type:"zoomstart"})}function j(a){h(),a({type:"zoom",scale:z.k,translate:[z.x,z.y]})}function k(a){--E||(a({type:"zoomend"}),q=null)}function l(){function a(){l=1,f(bg.mouse(e),n),j(h)}function d(){m.on(G,null).on(H,null),o(l&&bg.event.target===g),k(h)}var e=this,g=bg.event.target,h=J.of(e,arguments),l=0,m=bg.select(b(e)).on(G,a).on(H,d),n=c(bg.mouse(e)),o=X(e);Ji.call(e),i(h)}function m(){function a(){var a=bg.touches(o);return n=z.k,a.forEach(function(a){a.identifier in q&&(q[a.identifier]=c(a))}),a}function b(){var b=bg.event.target;bg.select(b).on(u,d).on(v,h),w.push(b);for(var c=bg.event.changedTouches,e=0,f=c.length;f>e;++e)q[c[e].identifier]=null;var i=a(),j=Date.now();if(1===i.length){if(500>j-t){var k=i[0];g(o,k,q[k.identifier],Math.floor(Math.log(z.k)/Math.LN2)+1),y()}t=j}else if(i.length>1){var k=i[0],l=i[1],m=k[0]-l[0],n=k[1]-l[1];r=m*m+n*n}}function d(){var a,b,c,d,g=bg.touches(o);Ji.call(o);for(var h=0,i=g.length;i>h;++h,d=null)if(c=g[h],d=q[c.identifier]){if(b)break;a=c,b=d}if(d){var k=(k=c[0]-a[0])*k+(k=c[1]-a[1])*k,l=r&&Math.sqrt(k/r);a=[(a[0]+c[0])/2,(a[1]+c[1])/2],b=[(b[0]+d[0])/2,(b[1]+d[1])/2],e(l*n)}t=null,f(a,b),j(p)}function h(){if(bg.event.touches.length){for(var b=bg.event.changedTouches,c=0,d=b.length;d>c;++c)delete q[b[c].identifier];for(var e in q)return void a()}bg.selectAll(w).on(s,null),x.on(F,l).on(I,m),A(),k(p)}var n,o=this,p=J.of(o,arguments),q={},r=0,s=".zoom-"+bg.event.changedTouches[0].identifier,u="touchmove"+s,v="touchend"+s,w=[],x=bg.select(o),A=X(o);b(),i(p),x.on(F,null).on(I,b)}function n(){var a=J.of(this,arguments);s?clearTimeout(s):(Ji.call(this),p=c(q=r||bg.mouse(this)),i(a)),s=setTimeout(function(){s=null,k(a)},50),y(),e(Math.pow(2,.002*Og())*z.k),f(q,p),j(a)}function o(){var a=bg.mouse(this),b=Math.log(z.k)/Math.LN2;g(this,a,c(a),bg.event.shiftKey?Math.ceil(b)-1:Math.floor(b)+1)}var p,q,r,s,t,u,v,w,x,z={x:0,y:0,k:1},B=[960,500],C=Qg,D=250,E=0,F="mousedown.zoom",G="mousemove.zoom",H="mouseup.zoom",I="touchstart.zoom",J=A(a,"zoomstart","zoom","zoomend");return Pg||(Pg="onwheel"in eg?(Og=function(){return-bg.event.deltaY*(bg.event.deltaMode?120:1)},"wheel"):"onmousewheel"in eg?(Og=function(){return bg.event.wheelDelta},"mousewheel"):(Og=function(){return-bg.event.detail},"MozMousePixelScroll")),a.event=function(a){a.each(function(){var a=J.of(this,arguments),b=z;Hi?bg.select(this).transition().each("start.zoom",function(){z=this.__chart__||{x:0,y:0,k:1},i(a)}).tween("zoom:zoom",function(){var c=B[0],d=B[1],e=q?q[0]:c/2,f=q?q[1]:d/2,g=bg.interpolateZoom([(e-z.x)/z.k,(f-z.y)/z.k,c/z.k],[(e-b.x)/b.k,(f-b.y)/b.k,c/b.k]);return function(b){var d=g(b),h=c/d[2];this.__chart__=z={x:e-d[0]*h,y:f-d[1]*h,k:h},j(a)}}).each("interrupt.zoom",function(){k(a)}).each("end.zoom",function(){k(a)}):(this.__chart__=z,i(a),j(a),k(a))})},a.translate=function(b){return arguments.length?(z={x:+b[0],y:+b[1],k:z.k},h(),a):[z.x,z.y]},a.scale=function(b){return arguments.length?(z={x:z.x,y:z.y,k:+b},h(),a):z.k},a.scaleExtent=function(b){return arguments.length?(C=null==b?Qg:[+b[0],+b[1]],a):C},a.center=function(b){return arguments.length?(r=b&&[+b[0],+b[1]],a):r},a.size=function(b){return arguments.length?(B=b&&[+b[0],+b[1]],a):B},a.duration=function(b){return arguments.length?(D=+b,a):D},a.x=function(b){return arguments.length?(v=b,u=b.copy(),z={x:0,y:0,k:1},a):v},a.y=function(b){return arguments.length?(x=b,w=b.copy(),z={x:0,y:0,k:1},a):x},bg.rebind(a,J,"on")};var Og,Pg,Qg=[0,1/0];bg.color=ga,ga.prototype.toString=function(){return this.rgb()+""},bg.hsl=ha;var Rg=ha.prototype=new ga;Rg.brighter=function(a){return a=Math.pow(.7,arguments.length?a:1),new ha(this.h,this.s,this.l/a)},Rg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new ha(this.h,this.s,a*this.l)},Rg.rgb=function(){return ia(this.h,this.s,this.l)},bg.hcl=ja;var Sg=ja.prototype=new ga;Sg.brighter=function(a){return new ja(this.h,this.c,Math.min(100,this.l+Tg*(arguments.length?a:1)))},Sg.darker=function(a){return new ja(this.h,this.c,Math.max(0,this.l-Tg*(arguments.length?a:1)))},Sg.rgb=function(){return ka(this.h,this.c,this.l).rgb()},bg.lab=la;var Tg=18,Ug=.95047,Vg=1,Wg=1.08883,Xg=la.prototype=new ga;Xg.brighter=function(a){return new la(Math.min(100,this.l+Tg*(arguments.length?a:1)),this.a,this.b)},Xg.darker=function(a){return new la(Math.max(0,this.l-Tg*(arguments.length?a:1)),this.a,this.b)},Xg.rgb=function(){return ma(this.l,this.a,this.b)},bg.rgb=ra;var Yg=ra.prototype=new ga;Yg.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b,e=30;return b||c||d?(b&&e>b&&(b=e),c&&e>c&&(c=e),d&&e>d&&(d=e),new ra(Math.min(255,b/a),Math.min(255,c/a),Math.min(255,d/a))):new ra(e,e,e)},Yg.darker=function(a){return a=Math.pow(.7,arguments.length?a:1),new ra(a*this.r,a*this.g,a*this.b)},Yg.hsl=function(){return wa(this.r,this.g,this.b)},Yg.toString=function(){return"#"+ua(this.r)+ua(this.g)+ua(this.b)};var Zg=bg.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Zg.forEach(function(a,b){Zg.set(a,sa(b))}),bg.functor=Aa,bg.xhr=Ba(s),bg.dsv=function(a,b){function c(a,c,f){arguments.length<3&&(f=c,c=null);var g=Ca(a,b,null==c?d:e(c),f);return g.row=function(a){return arguments.length?g.response(null==(c=a)?d:e(a)):c},g}function d(a){return c.parse(a.responseText)}function e(a){return function(b){return c.parse(b.responseText,a)}}function f(b){return b.map(g).join(a)}function g(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=new RegExp('["'+a+"\n]"),i=a.charCodeAt(0);return c.parse=function(a,b){var d;return c.parseRows(a,function(a,c){if(d)return d(a,c-1);var e=new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}");d=b?function(a,c){return b(e(a),c)}:e})},c.parseRows=function(a,b){function c(){if(k>=j)return g;if(e)return e=!1,f;var b=k;if(34===a.charCodeAt(b)){for(var c=b;c++k;){var d=a.charCodeAt(k++),h=1;if(10===d)e=!0;else if(13===d)e=!0,10===a.charCodeAt(k)&&(++k,++h);else if(d!==i)continue;return a.slice(b,k-h)}return a.slice(b)}for(var d,e,f={},g={},h=[],j=a.length,k=0,l=0;(d=c())!==g;){for(var m=[];d!==f&&d!==g;)m.push(d),d=c();b&&null==(m=b(m,l++))||h.push(m)}return h},c.format=function(b){if(Array.isArray(b[0]))return c.formatRows(b);var d=new r,e=[];return b.forEach(function(a){for(var b in a)d.has(b)||e.push(d.add(b))}),[e.map(g).join(a)].concat(b.map(function(b){return e.map(function(a){return g(b[a])}).join(a)})).join("\n")},c.formatRows=function(a){return a.map(f).join("\n")},c},bg.csv=bg.dsv(",","text/csv"),bg.tsv=bg.dsv(" ","text/tab-separated-values");var $g,_g,ah,bh,ch,dh=this[u(this,"requestAnimationFrame")]||function(a){setTimeout(a,17)};bg.timer=function(a,b,c){var d=arguments.length;2>d&&(b=0),3>d&&(c=Date.now());var e=c+b,f={c:a,t:e,f:!1,n:null};_g?_g.n=f:$g=f,_g=f,ah||(bh=clearTimeout(bh),ah=1,dh(Fa))},bg.timer.flush=function(){Ga(),Ha()},bg.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};var eh=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Ja);bg.formatPrefix=function(a,b){var c=0;return a&&(0>a&&(a*=-1),b&&(a=bg.round(a,Ia(a,b))),c=1+Math.floor(1e-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((c-1)/3)))),eh[8+c/3]};var fh=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,gh=bg.map({b:function(a){return a.toString(2)},c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return(a=bg.round(a,Ia(a,b))).toFixed(Math.max(0,Math.min(20,Ia(a*(1+1e-15),b))))}}),hh=bg.time={},ih=Date;Ma.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){jh.setUTCDate.apply(this._,arguments)},setDay:function(){jh.setUTCDay.apply(this._,arguments)},setFullYear:function(){jh.setUTCFullYear.apply(this._,arguments)},setHours:function(){jh.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){jh.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){jh.setUTCMinutes.apply(this._,arguments)},setMonth:function(){jh.setUTCMonth.apply(this._,arguments)},setSeconds:function(){jh.setUTCSeconds.apply(this._,arguments)},setTime:function(){jh.setTime.apply(this._,arguments)}};var jh=Date.prototype;hh.year=Na(function(a){return a=hh.day(a),a.setMonth(0,1),a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()}),hh.years=hh.year.range,hh.years.utc=hh.year.utc.range,hh.day=Na(function(a){var b=new ih(2e3,0);return b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate()),b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1}),hh.days=hh.day.range,hh.days.utc=hh.day.utc.range,hh.dayOfYear=function(a){var b=hh.year(a);return Math.floor((a-b-6e4*(a.getTimezoneOffset()-b.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(a,b){b=7-b;var c=hh[a]=Na(function(a){return(a=hh.day(a)).setDate(a.getDate()-(a.getDay()+b)%7),a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=hh.year(a).getDay();return Math.floor((hh.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});hh[a+"s"]=c.range,hh[a+"s"].utc=c.utc.range,hh[a+"OfYear"]=function(a){var c=hh.year(a).getDay();return Math.floor((hh.dayOfYear(a)+(c+b)%7)/7)}}),hh.week=hh.sunday,hh.weeks=hh.sunday.range,hh.weeks.utc=hh.sunday.utc.range,hh.weekOfYear=hh.sundayOfYear;var kh={"-":"",_:" ",0:"0"},lh=/^\s*\d+/,mh=/^%/;bg.locale=function(a){return{numberFormat:Ka(a),timeFormat:Pa(a)}};var nh=bg.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});bg.format=nh.numberFormat,bg.geo={},ib.prototype={s:0,t:0,add:function(a){ +jb(a,this.t,oh),jb(oh.s,this.s,this),this.s?this.t+=oh.t:this.s=oh.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var oh=new ib;bg.geo.stream=function(a,b){a&&ph.hasOwnProperty(a.type)?ph[a.type](a,b):kb(a,b)};var ph={Feature:function(a,b){kb(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++da?4*Fg+a:a,th.lineStart=th.lineEnd=th.point=v}};bg.geo.bounds=function(){function a(a,b){t.push(u=[k=a,m=a]),l>b&&(l=b),b>n&&(n=b)}function b(b,c){var d=ob([b*Jg,c*Jg]);if(r){var e=qb(r,d),f=[e[1],-e[0],0],g=qb(f,e);tb(g),g=ub(g);var i=b-o,j=i>0?1:-1,p=g[0]*Kg*j,q=ng(i)>180;if(q^(p>j*o&&j*b>p)){var s=g[1]*Kg;s>n&&(n=s)}else if(p=(p+360)%360-180,q^(p>j*o&&j*b>p)){var s=-g[1]*Kg;l>s&&(l=s)}else l>c&&(l=c),c>n&&(n=c);q?o>b?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b):m>=k?(k>b&&(k=b),b>m&&(m=b)):b>o?h(k,b)>h(k,m)&&(m=b):h(b,m)>h(k,m)&&(k=b)}else a(b,c);r=d,o=b}function c(){v.point=b}function d(){u[0]=k,u[1]=m,v.point=a,r=null}function e(a,c){if(r){var d=a-o;s+=ng(d)>180?d+(d>0?360:-360):d}else p=a,q=c;th.point(a,c),b(a,c)}function f(){th.lineStart()}function g(){e(p,q),th.lineEnd(),ng(s)>Dg&&(k=-(m=180)),u[0]=k,u[1]=m,r=null}function h(a,b){return(b-=a)<0?b+360:b}function i(a,b){return a[0]-b[0]}function j(a,b){return b[0]<=b[1]?b[0]<=a&&a<=b[1]:ash?(k=-(m=180),l=-(n=90)):s>Dg?n=90:-Dg>s&&(l=-90),u[0]=k,u[1]=m}};return function(a){n=m=-(k=l=1/0),t=[],bg.geo.stream(a,v);var b=t.length;if(b){t.sort(i);for(var c,d=1,e=t[0],f=[e];b>d;++d)c=t[d],j(c[0],e)||j(c[1],e)?(h(e[0],c[1])>h(e[0],e[1])&&(e[1]=c[1]),h(c[0],e[1])>h(e[0],e[1])&&(e[0]=c[0])):f.push(e=c);for(var g,c,o=-(1/0),b=f.length-1,d=0,e=f[b];b>=d;e=c,++d)c=f[d],(g=h(e[1],c[0]))>o&&(o=g,k=c[0],m=e[1])}return t=u=null,k===1/0||l===1/0?[[0/0,0/0],[0/0,0/0]]:[[k,l],[m,n]]}}(),bg.geo.centroid=function(a){uh=vh=wh=xh=yh=zh=Ah=Bh=Ch=Dh=Eh=0,bg.geo.stream(a,Fh);var b=Ch,c=Dh,d=Eh,e=b*b+c*c+d*d;return Eg>e&&(b=zh,c=Ah,d=Bh,Dg>vh&&(b=wh,c=xh,d=yh),e=b*b+c*c+d*d,Eg>e)?[0/0,0/0]:[Math.atan2(c,b)*Kg,ba(d/Math.sqrt(e))*Kg]};var uh,vh,wh,xh,yh,zh,Ah,Bh,Ch,Dh,Eh,Fh={sphere:v,point:wb,lineStart:yb,lineEnd:zb,polygonStart:function(){Fh.lineStart=Ab},polygonEnd:function(){Fh.lineStart=yb}},Gh=Gb(Cb,Kb,Mb,[-Fg,-Fg/2]),Hh=1e9;bg.geo.clipExtent=function(){var a,b,c,d,e,f,g={stream:function(a){return e&&(e.valid=!1),e=f(a),e.valid=!0,e},extent:function(h){return arguments.length?(f=Qb(a=+h[0][0],b=+h[0][1],c=+h[1][0],d=+h[1][1]),e&&(e.valid=!1,e=null),g):[[a,b],[c,d]]}};return g.extent([[0,0],[960,500]])},(bg.geo.conicEqualArea=function(){return Rb(Sb)}).raw=Sb,bg.geo.albers=function(){return bg.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},bg.geo.albersUsa=function(){function a(a){var f=a[0],g=a[1];return b=null,c(f,g),b||(d(f,g),b)||e(f,g),b}var b,c,d,e,f=bg.geo.albers(),g=bg.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),h=bg.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),i={point:function(a,c){b=[a,c]}};return a.invert=function(a){var b=f.scale(),c=f.translate(),d=(a[0]-c[0])/b,e=(a[1]-c[1])/b;return(e>=.12&&.234>e&&d>=-.425&&-.214>d?g:e>=.166&&.234>e&&d>=-.214&&-.115>d?h:f).invert(a)},a.stream=function(a){var b=f.stream(a),c=g.stream(a),d=h.stream(a);return{point:function(a,e){b.point(a,e),c.point(a,e),d.point(a,e)},sphere:function(){b.sphere(),c.sphere(),d.sphere()},lineStart:function(){b.lineStart(),c.lineStart(),d.lineStart()},lineEnd:function(){b.lineEnd(),c.lineEnd(),d.lineEnd()},polygonStart:function(){b.polygonStart(),c.polygonStart(),d.polygonStart()},polygonEnd:function(){b.polygonEnd(),c.polygonEnd(),d.polygonEnd()}}},a.precision=function(b){return arguments.length?(f.precision(b),g.precision(b),h.precision(b),a):f.precision()},a.scale=function(b){return arguments.length?(f.scale(b),g.scale(.35*b),h.scale(b),a.translate(f.translate())):f.scale()},a.translate=function(b){if(!arguments.length)return f.translate();var j=f.scale(),k=+b[0],l=+b[1];return c=f.translate(b).clipExtent([[k-.455*j,l-.238*j],[k+.455*j,l+.238*j]]).stream(i).point,d=g.translate([k-.307*j,l+.201*j]).clipExtent([[k-.425*j+Dg,l+.12*j+Dg],[k-.214*j-Dg,l+.234*j-Dg]]).stream(i).point,e=h.translate([k-.205*j,l+.212*j]).clipExtent([[k-.214*j+Dg,l+.166*j+Dg],[k-.115*j-Dg,l+.234*j-Dg]]).stream(i).point,a},a.scale(1070)};var Ih,Jh,Kh,Lh,Mh,Nh,Oh={point:v,lineStart:v,lineEnd:v,polygonStart:function(){Jh=0,Oh.lineStart=Tb},polygonEnd:function(){Oh.lineStart=Oh.lineEnd=Oh.point=v,Ih+=ng(Jh/2)}},Ph={point:Ub,lineStart:v,lineEnd:v,polygonStart:v,polygonEnd:v},Qh={point:Xb,lineStart:Yb,lineEnd:Zb,polygonStart:function(){Qh.lineStart=$b},polygonEnd:function(){Qh.point=Xb,Qh.lineStart=Yb,Qh.lineEnd=Zb}};bg.geo.path=function(){function a(a){return a&&("function"==typeof h&&f.pointRadius(+h.apply(this,arguments)),g&&g.valid||(g=e(f)),bg.geo.stream(a,g)),f.result()}function b(){return g=null,a}var c,d,e,f,g,h=4.5;return a.area=function(a){return Ih=0,bg.geo.stream(a,e(Oh)),Ih},a.centroid=function(a){return wh=xh=yh=zh=Ah=Bh=Ch=Dh=Eh=0,bg.geo.stream(a,e(Qh)),Eh?[Ch/Eh,Dh/Eh]:Bh?[zh/Bh,Ah/Bh]:yh?[wh/yh,xh/yh]:[0/0,0/0]},a.bounds=function(a){return Mh=Nh=-(Kh=Lh=1/0),bg.geo.stream(a,e(Ph)),[[Kh,Lh],[Mh,Nh]]},a.projection=function(a){return arguments.length?(e=(c=a)?a.stream||bc(a):s,b()):c},a.context=function(a){return arguments.length?(f=null==(d=a)?new Vb:new _b(a),"function"!=typeof h&&f.pointRadius(h),b()):d},a.pointRadius=function(b){return arguments.length?(h="function"==typeof b?b:(f.pointRadius(+b),+b),a):h},a.projection(bg.geo.albersUsa()).context(null)},bg.geo.transform=function(a){return{stream:function(b){var c=new cc(b);for(var d in a)c[d]=a[d];return c}}},cc.prototype={point:function(a,b){this.stream.point(a,b)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},bg.geo.projection=ec,bg.geo.projectionMutator=fc,(bg.geo.equirectangular=function(){return ec(hc)}).raw=hc.invert=hc,bg.geo.rotation=function(a){function b(b){return b=a(b[0]*Jg,b[1]*Jg),b[0]*=Kg,b[1]*=Kg,b}return a=jc(a[0]%360*Jg,a[1]*Jg,a.length>2?a[2]*Jg:0),b.invert=function(b){return b=a.invert(b[0]*Jg,b[1]*Jg),b[0]*=Kg,b[1]*=Kg,b},b},ic.invert=hc,bg.geo.circle=function(){function a(){var a="function"==typeof d?d.apply(this,arguments):d,b=jc(-a[0]*Jg,-a[1]*Jg,0).invert,e=[];return c(null,null,1,{point:function(a,c){e.push(a=b(a,c)),a[0]*=Kg,a[1]*=Kg}}),{type:"Polygon",coordinates:[e]}}var b,c,d=[0,0],e=6;return a.origin=function(b){return arguments.length?(d=b,a):d},a.angle=function(d){return arguments.length?(c=nc((b=+d)*Jg,e*Jg),a):b},a.precision=function(d){return arguments.length?(c=nc(b*Jg,(e=+d)*Jg),a):e},a.angle(90)},bg.geo.distance=function(a,b){var c,d=(b[0]-a[0])*Jg,e=a[1]*Jg,f=b[1]*Jg,g=Math.sin(d),h=Math.cos(d),i=Math.sin(e),j=Math.cos(e),k=Math.sin(f),l=Math.cos(f);return Math.atan2(Math.sqrt((c=l*g)*c+(c=j*k-i*l*h)*c),i*k+j*l*h)},bg.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return bg.range(Math.ceil(f/q)*q,e,q).map(m).concat(bg.range(Math.ceil(j/r)*r,i,r).map(n)).concat(bg.range(Math.ceil(d/o)*o,c,o).filter(function(a){return ng(a%q)>Dg}).map(k)).concat(bg.range(Math.ceil(h/p)*p,g,p).filter(function(a){return ng(a%r)>Dg}).map(l))}var c,d,e,f,g,h,i,j,k,l,m,n,o=10,p=o,q=90,r=360,s=2.5;return a.lines=function(){return b().map(function(a){return{type:"LineString",coordinates:a}})},a.outline=function(){return{type:"Polygon",coordinates:[m(f).concat(n(i).slice(1),m(e).reverse().slice(1),n(j).reverse().slice(1))]}},a.extent=function(b){return arguments.length?a.majorExtent(b).minorExtent(b):a.minorExtent()},a.majorExtent=function(b){return arguments.length?(f=+b[0][0],e=+b[1][0],j=+b[0][1],i=+b[1][1],f>e&&(b=f,f=e,e=b),j>i&&(b=j,j=i,i=b),a.precision(s)):[[f,j],[e,i]]},a.minorExtent=function(b){return arguments.length?(d=+b[0][0],c=+b[1][0],h=+b[0][1],g=+b[1][1],d>c&&(b=d,d=c,c=b),h>g&&(b=h,h=g,g=b),a.precision(s)):[[d,h],[c,g]]},a.step=function(b){return arguments.length?a.majorStep(b).minorStep(b):a.minorStep()},a.majorStep=function(b){return arguments.length?(q=+b[0],r=+b[1],a):[q,r]},a.minorStep=function(b){return arguments.length?(o=+b[0],p=+b[1],a):[o,p]},a.precision=function(b){return arguments.length?(s=+b,k=pc(h,g,90),l=qc(d,c,s),m=pc(j,i,90),n=qc(f,e,s),a):s},a.majorExtent([[-180,-90+Dg],[180,90-Dg]]).minorExtent([[-180,-80-Dg],[180,80+Dg]])},bg.geo.greatArc=function(){function a(){return{type:"LineString",coordinates:[b||d.apply(this,arguments),c||e.apply(this,arguments)]}}var b,c,d=rc,e=sc;return a.distance=function(){return bg.geo.distance(b||d.apply(this,arguments),c||e.apply(this,arguments))},a.source=function(c){return arguments.length?(d=c,b="function"==typeof c?null:c,a):d},a.target=function(b){return arguments.length?(e=b,c="function"==typeof b?null:b,a):e},a.precision=function(){return arguments.length?a:0},a},bg.geo.interpolate=function(a,b){return tc(a[0]*Jg,a[1]*Jg,b[0]*Jg,b[1]*Jg)},bg.geo.length=function(a){return Rh=0,bg.geo.stream(a,Sh),Rh};var Rh,Sh={sphere:v,point:v,lineStart:uc,lineEnd:v,polygonStart:v,polygonEnd:v},Th=vc(function(a){return Math.sqrt(2/(1+a))},function(a){return 2*Math.asin(a/2)});(bg.geo.azimuthalEqualArea=function(){return ec(Th)}).raw=Th;var Uh=vc(function(a){var b=Math.acos(a);return b&&b/Math.sin(b)},s);(bg.geo.azimuthalEquidistant=function(){return ec(Uh)}).raw=Uh,(bg.geo.conicConformal=function(){return Rb(wc)}).raw=wc,(bg.geo.conicEquidistant=function(){return Rb(xc)}).raw=xc;var Vh=vc(function(a){return 1/a},Math.atan);(bg.geo.gnomonic=function(){return ec(Vh)}).raw=Vh,yc.invert=function(a,b){return[a,2*Math.atan(Math.exp(b))-Ig]},(bg.geo.mercator=function(){return zc(yc)}).raw=yc;var Wh=vc(function(){return 1},Math.asin);(bg.geo.orthographic=function(){return ec(Wh)}).raw=Wh;var Xh=vc(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(bg.geo.stereographic=function(){return ec(Xh)}).raw=Xh,Ac.invert=function(a,b){return[-b,2*Math.atan(Math.exp(a))-Ig]},(bg.geo.transverseMercator=function(){var a=zc(Ac),b=a.center,c=a.rotate;return a.center=function(a){return a?b([-a[1],a[0]]):(a=b(),[a[1],-a[0]])},a.rotate=function(a){return a?c([a[0],a[1],a.length>2?a[2]+90:90]):(a=c(),[a[0],a[1],a[2]-90])},c([0,0,90])}).raw=Ac,bg.geom={},bg.geom.hull=function(a){function b(a){if(a.length<3)return[];var b,e=Aa(c),f=Aa(d),g=a.length,h=[],i=[];for(b=0;g>b;b++)h.push([+e.call(this,a[b],b),+f.call(this,a[b],b),b]);for(h.sort(Ec),b=0;g>b;b++)i.push([h[b][0],-h[b][1]]);var j=Dc(h),k=Dc(i),l=k[0]===j[0],m=k[k.length-1]===j[j.length-1],n=[];for(b=j.length-1;b>=0;--b)n.push(a[h[j[b]][2]]);for(b=+l;b=d&&j.x<=f&&j.y>=e&&j.y<=g?[[d,g],[f,g],[f,e],[d,e]]:[];k.point=a[h]}),b}function c(a){return a.map(function(a,b){return{x:Math.round(f(a,b)/Dg)*Dg,y:Math.round(g(a,b)/Dg)*Dg,i:b}})}var d=Bc,e=Cc,f=d,g=e,h=ei;return a?b(a):(b.links=function(a){return fd(c(a)).edges.filter(function(a){return a.l&&a.r}).map(function(b){return{source:a[b.l.i],target:a[b.r.i]}})},b.triangles=function(a){var b=[];return fd(c(a)).cells.forEach(function(c,d){for(var e,f,g=c.site,h=c.edges.sort(Rc),i=-1,j=h.length,k=h[j-1].edge,l=k.l===g?k.r:k.l;++i=j,m=d>=k,n=m<<1|l;a.leaf=!1,a=a.nodes[n]||(a.nodes[n]=kd()),l?e=j:h=j,m?g=k:i=k,f(a,b,c,d,e,g,h,i)}var k,l,m,n,o,p,q,r,s,t=Aa(h),u=Aa(i);if(null!=b)p=b,q=c,r=d,s=e;else if(r=s=-(p=q=1/0),l=[],m=[],o=a.length,g)for(n=0;o>n;++n)k=a[n],k.xr&&(r=k.x),k.y>s&&(s=k.y),l.push(k.x),m.push(k.y);else for(n=0;o>n;++n){var v=+t(k=a[n],n),w=+u(k,n);p>v&&(p=v),q>w&&(q=w),v>r&&(r=v),w>s&&(s=w),l.push(v),m.push(w)}var x=r-p,y=s-q;x>y?s=q+x:r=p+y;var z=kd();if(z.add=function(a){f(z,a,+t(a,++n),+u(a,n),p,q,r,s)},z.visit=function(a){ld(a,z,p,q,r,s)},z.find=function(a){return md(z,a[0],a[1],p,q,r,s)},n=-1,null==b){for(;++n=0?a.slice(0,b):a,d=b>=0?a.slice(b+1):"in";return c=ii.get(c)||hi,d=ji.get(d)||s,td(d(c.apply(null,cg.call(arguments,1))))},bg.interpolateHcl=Gd,bg.interpolateHsl=Hd,bg.interpolateLab=Id,bg.interpolateRound=Jd,bg.transform=function(a){var b=eg.createElementNS(bg.ns.prefix.svg,"g");return(bg.transform=function(a){if(null!=a){b.setAttribute("transform",a);var c=b.transform.baseVal.consolidate()}return new Kd(c?c.matrix:ki)})(a)},Kd.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ki={a:1,b:0,c:0,d:1,e:0,f:0};bg.interpolateTransform=Od,bg.layout={},bg.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++ch*h/q){if(o>i){var j=b.charge/i;a.px-=f*j,a.py-=g*j}return!0}if(b.point&&i&&o>i){var j=b.pointCharge/i;a.px-=f*j,a.py-=g*j}}return!b.charge}}function b(a){a.px=bg.event.x,a.py=bg.event.y,h.resume()}var c,d,e,f,g,h={},i=bg.dispatch("start","tick","end"),j=[1,1],k=.9,l=li,m=mi,n=-30,o=ni,p=.1,q=.64,r=[],t=[];return h.tick=function(){if((d*=.99)<.005)return i.end({type:"end",alpha:d=0}),!0;var b,c,h,l,m,o,q,s,u,v=r.length,w=t.length;for(c=0;w>c;++c)h=t[c],l=h.source,m=h.target,s=m.x-l.x,u=m.y-l.y,(o=s*s+u*u)&&(o=d*f[c]*((o=Math.sqrt(o))-e[c])/o,s*=o,u*=o,m.x-=s*(q=l.weight/(m.weight+l.weight)),m.y-=u*q,l.x+=s*(q=1-q),l.y+=u*q);if((q=d*p)&&(s=j[0]/2,u=j[1]/2,c=-1,q))for(;++c0?a:0:a>0&&(i.start({type:"start",alpha:d=a}),bg.timer(h.tick)),h):d},h.start=function(){function a(a,d){if(!c){for(c=new Array(i),h=0;i>h;++h)c[h]=[];for(h=0;k>h;++h){var e=t[h];c[e.source.index].push(e.target),c[e.target.index].push(e.source)}}for(var f,g=c[b],h=-1,j=g.length;++hb;++b)(d=r[b]).index=b,d.weight=0;for(b=0;k>b;++b)d=t[b],"number"==typeof d.source&&(d.source=r[d.source]),"number"==typeof d.target&&(d.target=r[d.target]),++d.source.weight,++d.target.weight;for(b=0;i>b;++b)d=r[b],isNaN(d.x)&&(d.x=a("x",o)),isNaN(d.y)&&(d.y=a("y",p)),isNaN(d.px)&&(d.px=d.x),isNaN(d.py)&&(d.py=d.y);if(e=[],"function"==typeof l)for(b=0;k>b;++b)e[b]=+l.call(this,t[b],b);else for(b=0;k>b;++b)e[b]=l;if(f=[],"function"==typeof m)for(b=0;k>b;++b)f[b]=+m.call(this,t[b],b);else for(b=0;k>b;++b)f[b]=m;if(g=[],"function"==typeof n)for(b=0;i>b;++b)g[b]=+n.call(this,r[b],b);else for(b=0;i>b;++b)g[b]=n;return h.resume()},h.resume=function(){return h.alpha(.1)},h.stop=function(){return h.alpha(0)},h.drag=function(){return c||(c=bg.behavior.drag().origin(s).on("dragstart.force",Ud).on("drag.force",b).on("dragend.force",Vd)),arguments.length?void this.on("mouseover.force",Wd).on("mouseout.force",Xd).call(c):c},bg.rebind(h,i,"on")};var li=20,mi=1,ni=1/0;bg.layout.hierarchy=function(){function a(e){var f,g=[e],h=[];for(e.depth=0;null!=(f=g.pop());)if(h.push(f),(j=c.call(a,f,f.depth))&&(i=j.length)){for(var i,j,k;--i>=0;)g.push(k=j[i]),k.parent=f,k.depth=f.depth+1;d&&(f.value=0),f.children=j}else d&&(f.value=+d.call(a,f,f.depth)||0),delete f.children;return _d(e,function(a){var c,e;b&&(c=a.children)&&c.sort(b),d&&(e=a.parent)&&(e.value+=a.value)}),h}var b=ce,c=ae,d=be;return a.sort=function(c){return arguments.length?(b=c,a):b},a.children=function(b){return arguments.length?(c=b,a):c},a.value=function(b){return arguments.length?(d=b,a):d},a.revalue=function(b){return d&&($d(b,function(a){a.children&&(a.value=0)}),_d(b,function(b){var c;b.children||(b.value=+d.call(a,b,b.depth)||0),(c=b.parent)&&(c.value+=b.value)})),b},a},bg.layout.partition=function(){function a(b,c,d,e){var f=b.children;if(b.x=c,b.y=b.depth*e,b.dx=d,b.dy=e,f&&(g=f.length)){var g,h,i,j=-1;for(d=b.value?d/b.value:0;++jl?-1:1),o=(l-i*n)/bg.sum(j),p=bg.range(i),q=[];return null!=c&&p.sort(c===oi?function(a,b){return j[b]-j[a]}:function(a,b){return c(g[a],g[b])}),p.forEach(function(a){q[a]={data:g[a],value:h=j[a],startAngle:k,endAngle:k+=h*o+n,padAngle:m}}),q}var b=Number,c=oi,d=0,e=Gg,f=0;return a.value=function(c){return arguments.length?(b=c,a):b},a.sort=function(b){return arguments.length?(c=b,a):c},a.startAngle=function(b){return arguments.length?(d=b,a):d},a.endAngle=function(b){return arguments.length?(e=b,a):e},a.padAngle=function(b){return arguments.length?(f=b,a):f},a};var oi={};bg.layout.stack=function(){function a(h,i){if(!(m=h.length))return h;var j=h.map(function(c,d){return b.call(a,c,d)}),k=j.map(function(b){return b.map(function(b,c){return[f.call(a,b,c),g.call(a,b,c)]})}),l=c.call(a,k,i);j=bg.permute(j,l),k=bg.permute(k,l);var m,n,o,p,q=d.call(a,k,i),r=j[0].length;for(o=0;r>o;++o)for(e.call(a,j[0][o],p=q[o],k[0][o][1]),n=1;m>n;++n)e.call(a,j[n][o],p+=k[n-1][o][1],k[n][o][1]);return h}var b=s,c=he,d=ie,e=ge,f=ee,g=fe;return a.values=function(c){return arguments.length?(b=c,a):b},a.order=function(b){return arguments.length?(c="function"==typeof b?b:pi.get(b)||he,a):c},a.offset=function(b){return arguments.length?(d="function"==typeof b?b:qi.get(b)||ie,a):d},a.x=function(b){return arguments.length?(f=b,a):f},a.y=function(b){return arguments.length?(g=b,a):g},a.out=function(b){return arguments.length?(e=b,a):e},a};var pi=bg.map({"inside-out":function(a){var b,c,d=a.length,e=a.map(je),f=a.map(ke),g=bg.range(d).sort(function(a,b){return e[a]-e[b]}),h=0,i=0,j=[],k=[];for(b=0;d>b;++b)c=g[b],i>h?(h+=f[c],j.push(c)):(i+=f[c],k.push(c));return k.reverse().concat(j)},reverse:function(a){return bg.range(a.length).reverse()},"default":he}),qi=bg.map({silhouette:function(a){var b,c,d,e=a.length,f=a[0].length,g=[],h=0,i=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];d>h&&(h=d),g.push(d)}for(c=0;f>c;++c)i[c]=(h-g[c])/2;return i},wiggle:function(a){var b,c,d,e,f,g,h,i,j,k=a.length,l=a[0],m=l.length,n=[];for(n[0]=i=j=0,c=1;m>c;++c){for(b=0,e=0;k>b;++b)e+=a[b][c][1];for(b=0,f=0,h=l[c][0]-l[c-1][0];k>b;++b){for(d=0,g=(a[b][c][1]-a[b][c-1][1])/(2*h);b>d;++d)g+=(a[d][c][1]-a[d][c-1][1])/h;f+=g*a[b][c][1]}n[c]=i-=e?f/e*h:0,j>i&&(j=i)}for(c=0;m>c;++c)n[c]-=j;return n},expand:function(a){var b,c,d,e=a.length,f=a[0].length,g=1/e,h=[];for(c=0;f>c;++c){for(b=0,d=0;e>b;b++)d+=a[b][c][1];if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=g}for(c=0;f>c;++c)h[c]=0;return h},zero:ie});bg.layout.histogram=function(){function a(a,f){for(var g,h,i=[],j=a.map(c,this),k=d.call(this,j,f),l=e.call(this,k,j,f),f=-1,m=j.length,n=l.length-1,o=b?1:1/m;++f0)for(f=-1;++f=k[0]&&h<=k[1]&&(g=i[bg.bisect(l,h,1,n)-1],g.y+=o,g.push(a[f]));return i}var b=!0,c=Number,d=oe,e=me;return a.value=function(b){return arguments.length?(c=b,a):c},a.range=function(b){return arguments.length?(d=Aa(b),a):d},a.bins=function(b){return arguments.length?(e="number"==typeof b?function(a){return ne(a,b)}:Aa(b),a):e},a.frequency=function(c){return arguments.length?(b=!!c,a):b},a},bg.layout.pack=function(){function a(a,f){var g=c.call(this,a,f),h=g[0],i=e[0],j=e[1],k=null==b?Math.sqrt:"function"==typeof b?b:function(){return b};if(h.x=h.y=0,_d(h,function(a){a.r=+k(a.value)}),_d(h,te),d){var l=d*(b?1:Math.max(2*h.r/i,2*h.r/j))/2;_d(h,function(a){a.r+=l}),_d(h,te),_d(h,function(a){a.r-=l})}return we(h,i/2,j/2,b?1:1/Math.max(2*h.r/i,2*h.r/j)),g}var b,c=bg.layout.hierarchy().sort(pe),d=0,e=[1,1];return a.size=function(b){return arguments.length?(e=b,a):e},a.radius=function(c){return arguments.length?(b=null==c||"function"==typeof c?c:+c,a):b},a.padding=function(b){return arguments.length?(d=+b,a):d},Zd(a,c)},bg.layout.tree=function(){function a(a,e){var k=g.call(this,a,e),l=k[0],m=b(l);if(_d(m,c),m.parent.m=-m.z,$d(m,d),j)$d(l,f);else{var n=l,o=l,p=l;$d(l,function(a){a.xo.x&&(o=a),a.depth>p.depth&&(p=a)});var q=h(n,o)/2-n.x,r=i[0]/(o.x+h(o,n)/2+q),s=i[1]/(p.depth||1);$d(l,function(a){a.x=(a.x+q)*r,a.y=a.depth*s})}return k}function b(a){for(var b,c={A:null,children:[a]},d=[c];null!=(b=d.pop());)for(var e,f=b.children,g=0,h=f.length;h>g;++g)d.push((f[g]=e={_:f[g],parent:b,children:(e=f[g].children)&&e.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:g}).a=e);return c.children[0]}function c(a){var b=a.children,c=a.parent.children,d=a.i?c[a.i-1]:null;if(b.length){Ce(a);var f=(b[0].z+b[b.length-1].z)/2;d?(a.z=d.z+h(a._,d._),a.m=a.z-f):a.z=f}else d&&(a.z=d.z+h(a._,d._));a.parent.A=e(a,d,a.parent.A||c[0])}function d(a){a._.x=a.z+a.parent.m,a.m+=a.parent.m}function e(a,b,c){if(b){for(var d,e=a,f=a,g=b,i=e.parent.children[0],j=e.m,k=f.m,l=g.m,m=i.m;g=Ae(g),e=ze(e),g&&e;)i=ze(i),f=Ae(f),f.a=a,d=g.z+l-e.z-j+h(g._,e._),d>0&&(Be(De(g,a,c),a,d),j+=d,k+=d),l+=g.m,j+=e.m,m+=i.m,k+=f.m;g&&!Ae(f)&&(f.t=g,f.m+=l-k),e&&!ze(i)&&(i.t=e,i.m+=j-m,c=a)}return c}function f(a){a.x*=i[0],a.y=a.depth*i[1]}var g=bg.layout.hierarchy().sort(null).value(null),h=ye,i=[1,1],j=null;return a.separation=function(b){return arguments.length?(h=b,a):h},a.size=function(b){return arguments.length?(j=null==(i=b)?f:null,a):j?null:i},a.nodeSize=function(b){return arguments.length?(j=null==(i=b)?null:f,a):j?i:null},Zd(a,g)},bg.layout.cluster=function(){function a(a,f){var g,h=b.call(this,a,f),i=h[0],j=0;_d(i,function(a){var b=a.children;b&&b.length?(a.x=Fe(b),a.y=Ee(b)):(a.x=g?j+=c(a,g):0,a.y=0,g=a)});var k=Ge(i),l=He(i),m=k.x-c(k,l)/2,n=l.x+c(l,k)/2;return _d(i,e?function(a){a.x=(a.x-i.x)*d[0],a.y=(i.y-a.y)*d[1]}:function(a){a.x=(a.x-m)/(n-m)*d[0],a.y=(1-(i.y?a.y/i.y:1))*d[1]}),h}var b=bg.layout.hierarchy().sort(null).value(null),c=ye,d=[1,1],e=!1;return a.separation=function(b){return arguments.length?(c=b,a):c},a.size=function(b){return arguments.length?(e=null==(d=b),a):e?null:d},a.nodeSize=function(b){return arguments.length?(e=null!=(d=b),a):e?d:null},Zd(a,b)},bg.layout.treemap=function(){function a(a,b){for(var c,d,e=-1,f=a.length;++eb?0:b),c.area=isNaN(d)||0>=d?0:d}function b(c){var f=c.children;if(f&&f.length){var g,h,i,j=l(c),k=[],m=f.slice(),o=1/0,p="slice"===n?j.dx:"dice"===n?j.dy:"slice-dice"===n?1&c.depth?j.dy:j.dx:Math.min(j.dx,j.dy);for(a(m,j.dx*j.dy/c.value),k.area=0;(i=m.length)>0;)k.push(g=m[i-1]),k.area+=g.area,"squarify"!==n||(h=d(k,p))<=o?(m.pop(),o=h):(k.area-=k.pop().area,e(k,p,j,!1),p=Math.min(j.dx,j.dy),k.length=k.area=0,o=1/0);k.length&&(e(k,p,j,!0),k.length=k.area=0),f.forEach(b)}}function c(b){var d=b.children;if(d&&d.length){var f,g=l(b),h=d.slice(),i=[];for(a(h,g.dx*g.dy/b.value),i.area=0;f=h.pop();)i.push(f),i.area+=f.area,null!=f.z&&(e(i,f.z?g.dx:g.dy,g,!h.length),i.length=i.area=0);d.forEach(c)}}function d(a,b){for(var c,d=a.area,e=0,f=1/0,g=-1,h=a.length;++gc&&(f=c),c>e&&(e=c));return d*=d,b*=b,d?Math.max(b*e*o/d,d/(b*f*o)):1/0}function e(a,b,c,d){var e,f=-1,g=a.length,h=c.x,j=c.y,k=b?i(a.area/b):0;if(b==c.dx){for((d||k>c.dy)&&(k=c.dy);++fc.dx)&&(k=c.dx);++fc&&(b=1),1>c&&(a=0),function(){var c,d,e;do c=2*Math.random()-1,d=2*Math.random()-1,e=c*c+d*d;while(!e||e>1);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}},logNormal:function(){var a=bg.random.normal.apply(bg,arguments);return function(){return Math.exp(a())}},bates:function(a){var b=bg.random.irwinHall(a);return function(){return b()/a}},irwinHall:function(a){return function(){for(var b=0,c=0;a>c;c++)b+=Math.random();return b}}},bg.scale={};var ri={floor:s,ceil:s};bg.scale.linear=function(){return Qe([0,1],[0,1],rd,!1)};var si={s:1,g:1,p:1,r:1,e:1};bg.scale.log=function(){return Ye(bg.scale.linear().domain([0,1]),10,!0,[1,10])};var ti=bg.format(".0e"),ui={floor:function(a){return-Math.ceil(-a)},ceil:function(a){return-Math.floor(-a)}};bg.scale.pow=function(){return Ze(bg.scale.linear(),1,[0,1])},bg.scale.sqrt=function(){return bg.scale.pow().exponent(.5)},bg.scale.ordinal=function(){return _e([],{t:"range",a:[[]]})},bg.scale.category10=function(){return bg.scale.ordinal().range(vi)},bg.scale.category20=function(){return bg.scale.ordinal().range(wi)},bg.scale.category20b=function(){return bg.scale.ordinal().range(xi)},bg.scale.category20c=function(){return bg.scale.ordinal().range(yi)};var vi=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(ta),wi=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(ta),xi=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(ta),yi=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(ta);bg.scale.quantile=function(){return af([],[])},bg.scale.quantize=function(){return bf(0,1,[0,1])},bg.scale.threshold=function(){return cf([.5],[0,1])},bg.scale.identity=function(){return df([0,1])},bg.svg={},bg.svg.arc=function(){function a(){var a=Math.max(0,+c.apply(this,arguments)),j=Math.max(0,+d.apply(this,arguments)),k=g.apply(this,arguments)-Ig,l=h.apply(this,arguments)-Ig,m=Math.abs(l-k),n=k>l?0:1;if(a>j&&(o=j,j=a,a=o),m>=Hg)return b(j,n)+(a?b(a,1-n):"")+"Z";var o,p,q,r,s,t,u,v,w,x,y,z,A=0,B=0,C=[];if((r=(+i.apply(this,arguments)||0)/2)&&(q=f===zi?Math.sqrt(a*a+j*j):+f.apply(this,arguments),n||(B*=-1),j&&(B=ba(q/j*Math.sin(r))),a&&(A=ba(q/a*Math.sin(r)))),j){s=j*Math.cos(k+B),t=j*Math.sin(k+B),u=j*Math.cos(l-B),v=j*Math.sin(l-B);var D=Math.abs(l-k-2*B)<=Fg?0:1;if(B&&lf(s,t,u,v)===n^D){var E=(k+l)/2;s=j*Math.cos(E),t=j*Math.sin(E),u=v=null}}else s=t=0;if(a){w=a*Math.cos(l-A),x=a*Math.sin(l-A),y=a*Math.cos(k+A),z=a*Math.sin(k+A);var F=Math.abs(k-l+2*A)<=Fg?0:1;if(A&&lf(w,x,y,z)===1-n^F){var G=(k+l)/2;w=a*Math.cos(G),x=a*Math.sin(G),y=z=null}}else w=x=0;if((o=Math.min(Math.abs(j-a)/2,+e.apply(this,arguments)))>.001){p=j>a^n?0:1;var H=null==y?[w,x]:null==u?[s,t]:Gc([s,t],[y,z],[u,v],[w,x]),I=s-H[0],J=t-H[1],K=u-H[0],L=v-H[1],M=1/Math.sin(Math.acos((I*K+J*L)/(Math.sqrt(I*I+J*J)*Math.sqrt(K*K+L*L)))/2),N=Math.sqrt(H[0]*H[0]+H[1]*H[1]);if(null!=u){var O=Math.min(o,(j-N)/(M+1)),P=mf(null==y?[w,x]:[y,z],[s,t],j,O,n),Q=mf([u,v],[w,x],j,O,n);o===O?C.push("M",P[0],"A",O,",",O," 0 0,",p," ",P[1],"A",j,",",j," 0 ",1-n^lf(P[1][0],P[1][1],Q[1][0],Q[1][1]),",",n," ",Q[1],"A",O,",",O," 0 0,",p," ",Q[0]):C.push("M",P[0],"A",O,",",O," 0 1,",p," ",Q[0])}else C.push("M",s,",",t);if(null!=y){var R=Math.min(o,(a-N)/(M-1)),S=mf([s,t],[y,z],a,-R,n),T=mf([w,x],null==u?[s,t]:[u,v],a,-R,n);o===R?C.push("L",T[0],"A",R,",",R," 0 0,",p," ",T[1],"A",a,",",a," 0 ",n^lf(T[1][0],T[1][1],S[1][0],S[1][1]),",",1-n," ",S[1],"A",R,",",R," 0 0,",p," ",S[0]):C.push("L",T[0],"A",R,",",R," 0 0,",p," ",S[0])}else C.push("L",w,",",x)}else C.push("M",s,",",t),null!=u&&C.push("A",j,",",j," 0 ",D,",",n," ",u,",",v),C.push("L",w,",",x),null!=y&&C.push("A",a,",",a," 0 ",F,",",1-n," ",y,",",z);return C.push("Z"),C.join("")}function b(a,b){return"M0,"+a+"A"+a+","+a+" 0 1,"+b+" 0,"+-a+"A"+a+","+a+" 0 1,"+b+" 0,"+a}var c=ff,d=gf,e=ef,f=zi,g=hf,h=jf,i=kf;return a.innerRadius=function(b){return arguments.length?(c=Aa(b),a):c},a.outerRadius=function(b){return arguments.length?(d=Aa(b),a):d},a.cornerRadius=function(b){return arguments.length?(e=Aa(b),a):e},a.padRadius=function(b){return arguments.length?(f=b==zi?zi:Aa(b),a):f},a.startAngle=function(b){return arguments.length?(g=Aa(b),a):g},a.endAngle=function(b){return arguments.length?(h=Aa(b),a):h},a.padAngle=function(b){return arguments.length?(i=Aa(b),a):i},a.centroid=function(){var a=(+c.apply(this,arguments)+ +d.apply(this,arguments))/2,b=(+g.apply(this,arguments)+ +h.apply(this,arguments))/2-Ig;return[Math.cos(b)*a,Math.sin(b)*a]},a};var zi="auto";bg.svg.line=function(){return nf(s)};var Ai=bg.map({linear:of,"linear-closed":pf,step:qf,"step-before":rf,"step-after":sf,basis:yf,"basis-open":zf,"basis-closed":Af,bundle:Bf,cardinal:vf,"cardinal-open":tf,"cardinal-closed":uf,monotone:Hf});Ai.forEach(function(a,b){b.key=a,b.closed=/-closed$/.test(a)});var Bi=[0,2/3,1/3,0],Ci=[0,1/3,2/3,0],Di=[0,1/6,2/3,1/6];bg.svg.line.radial=function(){var a=nf(If);return a.radius=a.x,delete a.x,a.angle=a.y,delete a.y,a},rf.reverse=sf,sf.reverse=rf,bg.svg.area=function(){return Jf(s)},bg.svg.area.radial=function(){var a=Jf(If);return a.radius=a.x,delete a.x,a.innerRadius=a.x0,delete a.x0,a.outerRadius=a.x1,delete a.x1,a.angle=a.y,delete a.y,a.startAngle=a.y0,delete a.y0,a.endAngle=a.y1,delete a.y1,a},bg.svg.chord=function(){function a(a,h){var i=b(this,f,a,h),j=b(this,g,a,h);return"M"+i.p0+d(i.r,i.p1,i.a1-i.a0)+(c(i,j)?e(i.r,i.p1,i.r,i.p0):e(i.r,i.p1,j.r,j.p0)+d(j.r,j.p1,j.a1-j.a0)+e(j.r,j.p1,i.r,i.p0))+"Z"}function b(a,b,c,d){var e=b.call(a,c,d),f=h.call(a,e,d),g=i.call(a,e,d)-Ig,k=j.call(a,e,d)-Ig;return{r:f,a0:g,a1:k,p0:[f*Math.cos(g),f*Math.sin(g)],p1:[f*Math.cos(k),f*Math.sin(k)]}}function c(a,b){return a.a0==b.a0&&a.a1==b.a1}function d(a,b,c){return"A"+a+","+a+" 0 "+ +(c>Fg)+",1 "+b}function e(a,b,c,d){return"Q 0,0 "+d}var f=rc,g=sc,h=Kf,i=hf,j=jf;return a.radius=function(b){return arguments.length?(h=Aa(b),a):h},a.source=function(b){return arguments.length?(f=Aa(b),a):f},a.target=function(b){return arguments.length?(g=Aa(b),a):g},a.startAngle=function(b){return arguments.length?(i=Aa(b),a):i},a.endAngle=function(b){return arguments.length?(j=Aa(b),a):j},a},bg.svg.diagonal=function(){function a(a,e){var f=b.call(this,a,e),g=c.call(this,a,e),h=(f.y+g.y)/2,i=[f,{x:f.x,y:h},{x:g.x,y:h},g];return i=i.map(d),"M"+i[0]+"C"+i[1]+" "+i[2]+" "+i[3]}var b=rc,c=sc,d=Lf;return a.source=function(c){return arguments.length?(b=Aa(c),a):b},a.target=function(b){return arguments.length?(c=Aa(b),a):c},a.projection=function(b){return arguments.length?(d=b,a):d},a},bg.svg.diagonal.radial=function(){var a=bg.svg.diagonal(),b=Lf,c=a.projection;return a.projection=function(a){return arguments.length?c(Mf(b=a)):b},a},bg.svg.symbol=function(){function a(a,d){return(Ei.get(b.call(this,a,d))||Pf)(c.call(this,a,d))}var b=Of,c=Nf;return a.type=function(c){return arguments.length?(b=Aa(c),a):b},a.size=function(b){return arguments.length?(c=Aa(b),a):c},a};var Ei=bg.map({circle:Pf,cross:function(a){var b=Math.sqrt(a/5)/2;return"M"+-3*b+","+-b+"H"+-b+"V"+-3*b+"H"+b+"V"+-b+"H"+3*b+"V"+b+"H"+b+"V"+3*b+"H"+-b+"V"+b+"H"+-3*b+"Z"},diamond:function(a){var b=Math.sqrt(a/(2*Gi)),c=b*Gi;return"M0,"+-b+"L"+c+",0 0,"+b+" "+-c+",0Z"},square:function(a){var b=Math.sqrt(a)/2;return"M"+-b+","+-b+"L"+b+","+-b+" "+b+","+b+" "+-b+","+b+"Z"},"triangle-down":function(a){var b=Math.sqrt(a/Fi),c=b*Fi/2;return"M0,"+c+"L"+b+","+-c+" "+-b+","+-c+"Z"},"triangle-up":function(a){var b=Math.sqrt(a/Fi),c=b*Fi/2;return"M0,"+-c+"L"+b+","+c+" "+-b+","+c+"Z"}});bg.svg.symbolTypes=Ei.keys();var Fi=Math.sqrt(3),Gi=Math.tan(30*Jg);wg.transition=function(a){for(var b,c,d=Hi||++Li,e=Uf(a),f=[],g=Ii||{time:Date.now(),ease:yd,delay:0,duration:250},h=-1,i=this.length;++hf;f++){e.push(b=[]);for(var c=this[f],h=0,i=c.length;i>h;h++)(d=c[h])&&a.call(d,d.__data__,h,f)&&b.push(d)}return Rf(e,this.namespace,this.id)},Ki.tween=function(a,b){var c=this.id,d=this.namespace;return arguments.length<2?this.node()[d][c].tween.get(a):R(this,null==b?function(b){b[d][c].tween.remove(a)}:function(e){e[d][c].tween.set(a,b)})},Ki.attr=function(a,b){function c(){this.removeAttribute(h)}function d(){this.removeAttributeNS(h.space,h.local)}function e(a){return null==a?c:(a+="",function(){var b,c=this.getAttribute(h);return c!==a&&(b=g(c,a),function(a){this.setAttribute(h,b(a))})})}function f(a){return null==a?d:(a+="",function(){var b,c=this.getAttributeNS(h.space,h.local);return c!==a&&(b=g(c,a),function(a){this.setAttributeNS(h.space,h.local,b(a))})})}if(arguments.length<2){for(b in a)this.attr(b,a[b]);return this}var g="transform"==a?Od:rd,h=bg.ns.qualify(a);return Sf(this,"attr."+a,b,h.local?f:e)},Ki.attrTween=function(a,b){function c(a,c){var d=b.call(this,a,c,this.getAttribute(e));return d&&function(a){this.setAttribute(e,d(a))}}function d(a,c){var d=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return d&&function(a){this.setAttributeNS(e.space,e.local,d(a))}}var e=bg.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)},Ki.style=function(a,c,d){function e(){this.style.removeProperty(a)}function f(c){return null==c?e:(c+="",function(){var e,f=b(this).getComputedStyle(this,null).getPropertyValue(a);return f!==c&&(e=rd(f,c),function(b){this.style.setProperty(a,e(b),d)})})}var g=arguments.length;if(3>g){if("string"!=typeof a){2>g&&(c="");for(d in a)this.style(d,a[d],c);return this}d=""}return Sf(this,"style."+a,c,f)},Ki.styleTween=function(a,c,d){function e(e,f){var g=c.call(this,e,f,b(this).getComputedStyle(this,null).getPropertyValue(a));return g&&function(b){this.style.setProperty(a,g(b),d)}}return arguments.length<3&&(d=""),this.tween("style."+a,e)},Ki.text=function(a){return Sf(this,"text",a,Tf)},Ki.remove=function(){var a=this.namespace;return this.each("end.transition",function(){var b;this[a].count<2&&(b=this.parentNode)&&b.removeChild(this)})},Ki.ease=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].ease:("function"!=typeof a&&(a=bg.ease.apply(bg,arguments)),R(this,function(d){d[c][b].ease=a}))},Ki.delay=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].delay:R(this,"function"==typeof a?function(d,e,f){d[c][b].delay=+a.call(d,d.__data__,e,f)}:(a=+a,function(d){d[c][b].delay=a}))},Ki.duration=function(a){var b=this.id,c=this.namespace;return arguments.length<1?this.node()[c][b].duration:R(this,"function"==typeof a?function(d,e,f){d[c][b].duration=Math.max(1,a.call(d,d.__data__,e,f))}:(a=Math.max(1,a),function(d){d[c][b].duration=a}))},Ki.each=function(a,b){var c=this.id,d=this.namespace;if(arguments.length<2){var e=Ii,f=Hi;try{Hi=c,R(this,function(b,e,f){Ii=b[d][c],a.call(b,b.__data__,e,f)})}finally{Ii=e,Hi=f}}else R(this,function(e){var f=e[d][c];(f.event||(f.event=bg.dispatch("start","end","interrupt"))).on(a,b)});return this},Ki.transition=function(){for(var a,b,c,d,e=this.id,f=++Li,g=this.namespace,h=[],i=0,j=this.length;j>i;i++){h.push(a=[]);for(var b=this[i],k=0,l=b.length;l>k;k++)(c=b[k])&&(d=c[g][e],Vf(c,k,g,f,{time:d.time,ease:d.ease,delay:d.delay+d.duration,duration:d.duration})),a.push(c)}return Rf(h,g,f)},bg.svg.axis=function(){function a(a){a.each(function(){var a,j=bg.select(this),k=this.__chart__||c,l=this.__chart__=c.copy(),m=null==i?l.ticks?l.ticks.apply(l,h):l.domain():i,n=null==b?l.tickFormat?l.tickFormat.apply(l,h):s:b,o=j.selectAll(".tick").data(m,l),p=o.enter().insert("g",".domain").attr("class","tick").style("opacity",Dg),q=bg.transition(o.exit()).style("opacity",Dg).remove(),r=bg.transition(o.order()).style("opacity",1),t=Math.max(e,0)+g,u=Le(l),v=j.selectAll(".domain").data([0]),w=(v.enter().append("path").attr("class","domain"),bg.transition(v));p.append("line"),p.append("text");var x,y,z,A,B=p.select("line"),C=r.select("line"),D=o.select("text").text(n),E=p.select("text"),F=r.select("text"),G="top"===d||"left"===d?-1:1;if("bottom"===d||"top"===d?(a=Wf,x="x",z="y",y="x2",A="y2",D.attr("dy",0>G?"0em":".71em").style("text-anchor","middle"),w.attr("d","M"+u[0]+","+G*f+"V0H"+u[1]+"V"+G*f)):(a=Xf,x="y",z="x",y="y2",A="x2",D.attr("dy",".32em").style("text-anchor",0>G?"end":"start"),w.attr("d","M"+G*f+","+u[0]+"H0V"+u[1]+"H"+G*f)),B.attr(A,G*e),E.attr(z,G*t),C.attr(y,0).attr(A,G*e),F.attr(x,0).attr(z,G*t),l.rangeBand){var H=l,I=H.rangeBand()/2;k=l=function(a){return H(a)+I}}else k.rangeBand?k=l:q.call(a,l,k);p.call(a,k,l),r.call(a,l,l)})}var b,c=bg.scale.linear(),d=Mi,e=6,f=6,g=3,h=[10],i=null;return a.scale=function(b){return arguments.length?(c=b,a):c},a.orient=function(b){return arguments.length?(d=b in Ni?b+"":Mi,a):d},a.ticks=function(){return arguments.length?(h=arguments,a):h},a.tickValues=function(b){return arguments.length?(i=b,a):i},a.tickFormat=function(c){return arguments.length?(b=c,a):b},a.tickSize=function(b){var c=arguments.length;return c?(e=+b,f=+arguments[c-1],a):e},a.innerTickSize=function(b){return arguments.length?(e=+b,a):e},a.outerTickSize=function(b){return arguments.length?(f=+b,a):f},a.tickPadding=function(b){return arguments.length?(g=+b,a):g},a.tickSubdivide=function(){return arguments.length&&a},a};var Mi="bottom",Ni={top:1,right:1,bottom:1,left:1};bg.svg.brush=function(){function a(b){b.each(function(){var b=bg.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",f).on("touchstart.brush",f),g=b.selectAll(".background").data([0]);g.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),b.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var h=b.selectAll(".resize").data(p,s);h.exit().remove(),h.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return Oi[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),h.style("display",a.empty()?"none":null);var i,l=bg.transition(b),m=bg.transition(g);j&&(i=Le(j),m.attr("x",i[0]).attr("width",i[1]-i[0]),d(l)),k&&(i=Le(k),m.attr("y",i[0]).attr("height",i[1]-i[0]),e(l)),c(l)})}function c(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+l[+/e$/.test(a)]+","+m[+/^s/.test(a)]+")"})}function d(a){a.select(".extent").attr("x",l[0]),a.selectAll(".extent,.n>rect,.s>rect").attr("width",l[1]-l[0])}function e(a){a.select(".extent").attr("y",m[0]),a.selectAll(".extent,.e>rect,.w>rect").attr("height",m[1]-m[0])}function f(){function f(){32==bg.event.keyCode&&(D||(t=null,F[0]-=l[1],F[1]-=m[1],D=2),y())}function p(){32==bg.event.keyCode&&2==D&&(F[0]+=l[1],F[1]+=m[1],D=0,y())}function q(){var a=bg.mouse(v),b=!1;u&&(a[0]+=u[0],a[1]+=u[1]),D||(bg.event.altKey?(t||(t=[(l[0]+l[1])/2,(m[0]+m[1])/2]),F[0]=l[+(a[0]k?(e=d,d=k):e=k),p[0]!=d||p[1]!=e?(c?h=null:g=null,p[0]=d,p[1]=e,!0):void 0}function s(){q(),z.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null),bg.select("body").style("cursor",null),G.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),E(),x({type:"brushend"})}var t,u,v=this,w=bg.select(bg.event.target),x=i.of(v,arguments),z=bg.select(v),A=w.datum(),B=!/^(n|s)$/.test(A)&&j,C=!/^(e|w)$/.test(A)&&k,D=w.classed("extent"),E=X(v),F=bg.mouse(v),G=bg.select(b(v)).on("keydown.brush",f).on("keyup.brush",p);if(bg.event.changedTouches?G.on("touchmove.brush",q).on("touchend.brush",s):G.on("mousemove.brush",q).on("mouseup.brush",s),z.interrupt().selectAll("*").interrupt(),D)F[0]=l[0]-F[0],F[1]=m[0]-F[1];else if(A){var H=+/w$/.test(A),I=+/^n/.test(A);u=[l[1-H]-F[0],m[1-I]-F[1]],F[0]=l[H],F[1]=m[I]}else bg.event.altKey&&(t=F.slice());z.style("pointer-events","none").selectAll(".resize").style("display",null),bg.select("body").style("cursor",w.style("cursor")),x({type:"brushstart"}),q()}var g,h,i=A(a,"brushstart","brush","brushend"),j=null,k=null,l=[0,0],m=[0,0],n=!0,o=!0,p=Pi[0];return a.event=function(a){a.each(function(){var a=i.of(this,arguments),b={x:l,y:m,i:g,j:h},c=this.__chart__||b;this.__chart__=b,Hi?bg.select(this).transition().each("start.brush",function(){g=c.i,h=c.j,l=c.x,m=c.y,a({type:"brushstart"})}).tween("brush:brush",function(){var c=sd(l,b.x),d=sd(m,b.y);return g=h=null,function(e){l=b.x=c(e),m=b.y=d(e),a({type:"brush",mode:"resize"})}}).each("end.brush",function(){g=b.i,h=b.j,a({type:"brush",mode:"resize"}),a({type:"brushend"})}):(a({type:"brushstart"}),a({type:"brush",mode:"resize"}),a({type:"brushend"}))})},a.x=function(b){return arguments.length?(j=b,p=Pi[!j<<1|!k],a):j},a.y=function(b){return arguments.length?(k=b,p=Pi[!j<<1|!k],a):k},a.clamp=function(b){return arguments.length?(j&&k?(n=!!b[0],o=!!b[1]):j?n=!!b:k&&(o=!!b),a):j&&k?[n,o]:j?n:k?o:null},a.extent=function(b){var c,d,e,f,i;return arguments.length?(j&&(c=b[0],d=b[1],k&&(c=c[0],d=d[0]),g=[c,d],j.invert&&(c=j(c),d=j(d)),c>d&&(i=c,c=d,d=i),(c!=l[0]||d!=l[1])&&(l=[c,d])),k&&(e=b[0],f=b[1],j&&(e=e[1],f=f[1]),h=[e,f],k.invert&&(e=k(e),f=k(f)),e>f&&(i=e,e=f,f=i),(e!=m[0]||f!=m[1])&&(m=[e,f])),a):(j&&(g?(c=g[0],d=g[1]):(c=l[0],d=l[1],j.invert&&(c=j.invert(c),d=j.invert(d)),c>d&&(i=c,c=d,d=i))),k&&(h?(e=h[0],f=h[1]):(e=m[0],f=m[1],k.invert&&(e=k.invert(e),f=k.invert(f)),e>f&&(i=e,e=f,f=i))),j&&k?[[c,e],[d,f]]:j?[c,d]:k&&[e,f])},a.clear=function(){return a.empty()||(l=[0,0],m=[0,0],g=h=null),a},a.empty=function(){return!!j&&l[0]==l[1]||!!k&&m[0]==m[1]},bg.rebind(a,i,"on")};var Oi={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Pi=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Qi=hh.format=nh.timeFormat,Ri=Qi.utc,Si=Ri("%Y-%m-%dT%H:%M:%S.%LZ");Qi.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Yf:Si,Yf.parse=function(a){var b=new Date(a);return isNaN(b)?null:b},Yf.toString=Si.toString,hh.second=Na(function(a){return new ih(1e3*Math.floor(a/1e3))},function(a,b){a.setTime(a.getTime()+1e3*Math.floor(b))},function(a){return a.getSeconds()}),hh.seconds=hh.second.range,hh.seconds.utc=hh.second.utc.range,hh.minute=Na(function(a){return new ih(6e4*Math.floor(a/6e4))},function(a,b){a.setTime(a.getTime()+6e4*Math.floor(b))},function(a){return a.getMinutes()}),hh.minutes=hh.minute.range,hh.minutes.utc=hh.minute.utc.range,hh.hour=Na(function(a){var b=a.getTimezoneOffset()/60;return new ih(36e5*(Math.floor(a/36e5-b)+b))},function(a,b){a.setTime(a.getTime()+36e5*Math.floor(b))},function(a){return a.getHours()}),hh.hours=hh.hour.range,hh.hours.utc=hh.hour.utc.range,hh.month=Na(function(a){return a=hh.day(a),a.setDate(1),a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()}),hh.months=hh.month.range,hh.months.utc=hh.month.utc.range;var Ti=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ui=[[hh.second,1],[hh.second,5],[hh.second,15],[hh.second,30],[hh.minute,1],[hh.minute,5],[hh.minute,15],[hh.minute,30],[hh.hour,1],[hh.hour,3],[hh.hour,6],[hh.hour,12],[hh.day,1],[hh.day,2],[hh.week,1],[hh.month,1],[hh.month,3],[hh.year,1]],Vi=Qi.multi([[".%L",function(a){return a.getMilliseconds()}],[":%S",function(a){return a.getSeconds()}],["%I:%M",function(a){return a.getMinutes()}],["%I %p",function(a){return a.getHours()}],["%a %d",function(a){return a.getDay()&&1!=a.getDate()}],["%b %d",function(a){return 1!=a.getDate()}],["%B",function(a){return a.getMonth()}],["%Y",Cb]]),Wi={range:function(a,b,c){return bg.range(Math.ceil(a/c)*c,+b,c).map($f)},floor:s,ceil:s};Ui.year=hh.year,hh.scale=function(){return Zf(bg.scale.linear(),Ui,Vi)};var Xi=Ui.map(function(a){return[a[0].utc,a[1]]}),Yi=Ri.multi([[".%L",function(a){return a.getUTCMilliseconds()}],[":%S",function(a){return a.getUTCSeconds()}],["%I:%M",function(a){return a.getUTCMinutes()}],["%I %p",function(a){return a.getUTCHours()}],["%a %d",function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],["%b %d",function(a){return 1!=a.getUTCDate()}],["%B",function(a){return a.getUTCMonth()}],["%Y",Cb]]);Xi.year=hh.year.utc,hh.scale.utc=function(){return Zf(bg.scale.linear(),Xi,Yi)},bg.text=Ba(function(a){return a.responseText}),bg.json=function(a,b){return Ca(a,"application/json",_f,b)},bg.html=function(a,b){return Ca(a,"text/html",ag,b)},bg.xml=Ba(function(a){return a.responseXML}),"function"==typeof define&&define.amd?define(bg):"object"==typeof module&&module.exports&&(module.exports=bg),this.d3=bg}(); //# sourceMappingURL=../../maps/libs/d3.js.map \ No newline at end of file diff --git a/static/scripts/libs/farbtastic.js b/static/scripts/libs/farbtastic.js index 20e75967932..624ccff311a 100644 --- a/static/scripts/libs/farbtastic.js +++ b/static/scripts/libs/farbtastic.js @@ -1,2 +1,2 @@ -!function(a){var b=!1;a.fn.farbtastic=function(b){return a.farbtastic(this,b),this},a.farbtastic=function(b,c){var b=a(b)[0];return b.farbtastic||(b.farbtastic=new a._farbtastic(b,c))},a._farbtastic=function(c,d){var e=this;e.linkTo=function(b){return"object"==typeof e.callback&&a(e.callback).unbind("keyup",e.updateValue),e.color=null,"function"==typeof b?e.callback=b:("object"==typeof b||"string"==typeof b)&&(e.callback=a(b),e.callback.bind("keyup",e.updateValue),e.callback[0].value&&e.setColor(e.callback[0].value)),this},e.updateValue=function(){this.value&&this.value!=e.color&&e.setColor(this.value)},e.setColor=function(a){var b=e.unpack(a);return e.color!=a&&b&&(e.color=a,e.rgb=b,e.hsl=e.RGBToHSL(e.rgb),e.updateDisplay()),this},e.setHSL=function(a){return e.hsl=a,e.rgb=e.HSLToRGB(a),e.color=e.pack(e.rgb),e.updateDisplay(),this},e.initWidget=function(){var b={width:d.width,height:d.width};a(c).html('
').find("*").attr(b).css(b).end().find("div>*").css("position","absolute"),navigator.userAgent.match(/msie/i)&&a("canvas",c).each(function(){var c={"class":a(this).attr("class"),style:this.getAttribute("style")},d=document.createElement("canvas");a(this).before(a(d).attr(c)).remove(),G_vmlCanvasManager&&G_vmlCanvasManager.initElement(d),a(d).attr(b).css(b).css("position","absolute").find("*").attr(b).css(b)}),e.radius=(d.width-d.wheelWidth)/2-1,e.square=Math.floor(.7*(e.radius-d.wheelWidth/2))-1,e.mid=Math.floor(d.width/2),e.markerSize=.3*d.wheelWidth,e.solidFill=a(".farbtastic-solid",c).css({width:2*e.square-1,height:2*e.square-1,left:e.mid-e.square,top:e.mid-e.square}),e.cnvMask=a(".farbtastic-mask",c),e.ctxMask=e.cnvMask[0].getContext("2d"),e.cnvOverlay=a(".farbtastic-overlay",c),e.ctxOverlay=e.cnvOverlay[0].getContext("2d"),e.ctxMask.translate(e.mid,e.mid),e.ctxOverlay.translate(e.mid,e.mid),e.drawCircle(),e.drawMask()},e.drawCircle=function(){var c,f,g=+new Date,h=24,i=e.radius,j=d.wheelWidth,k=8/i/h*Math.PI,l=e.ctxMask,m=0;l.save(),l.lineWidth=j/i,l.scale(i,i);for(var n=0;h>=n;++n){var o=n/h,p=o*Math.PI*2,q=Math.sin(m),r=-Math.cos(m);if(x2=Math.sin(p),y2=-Math.cos(p),am=(m+p)/2,tan=1/Math.cos((p-m)/2),xm=Math.sin(am)*tan,ym=-Math.cos(am)*tan,color2=e.pack(e.HSLToRGB([o,1,.5])),n>0)if(navigator.userAgent.match(/msie/i)){var s=(1+Math.min(Math.abs(Math.tan(m)),Math.abs(Math.tan(Math.PI/2-m))))/h;c=e.pack(e.HSLToRGB([f-.15*s,1,.5])),color2=e.pack(e.HSLToRGB([o+.15*s,1,.5]));var t=l.createLinearGradient(q,r,x2,y2);t.addColorStop(0,c),t.addColorStop(1,color2),l.fillStyle=t;var u=(i+j/2)/i,v=(i-j/2)/i;l.beginPath(),l.moveTo(q*u,r*u),l.quadraticCurveTo(xm*u,ym*u,x2*u,y2*u),l.lineTo(x2*v,y2*v),l.quadraticCurveTo(xm*v,ym*v,q*v,r*v),l.fill()}else{var t=l.createLinearGradient(q,r,x2,y2);t.addColorStop(0,c),t.addColorStop(1,color2),l.strokeStyle=t,l.beginPath(),l.moveTo(q,r),l.quadraticCurveTo(xm,ym,x2,y2),l.stroke()}m=p-k,c=color2,f=o}l.restore(),b&&a("body").append("
drawCircle "+(+new Date-g)+"ms")},e.drawMask=function(){function c(a,b,c){for(var d=1/a,e=1/b,f=0;b>=f;++f)for(var g=1-f*e,h=0;a>=h;++h){var i=1-h*d,j=1-2*Math.min(g*i,(1-g)*i),k=j>0?.5*(2*g-1+j)/j:0;c(h,f,k,j)}}var d=+new Date,f=2*e.square,g=e.square;if(e.ctxMask.getImageData){var h=Math.floor(f/2),i=document.createElement("canvas");i.width=i.height=h+1;var j=i.getContext("2d"),k=j.getImageData(0,0,h+1,h+1),l=0;c(h,h,function(a,b,c,d){k.data[l++]=k.data[l++]=k.data[l++]=255*c,k.data[l++]=255*d}),j.putImageData(k,0,0),e.ctxMask.drawImage(i,0,0,h+1,h+1,-g,-g,2*g,2*g)}else if(navigator.userAgent.match(/msie/i)){var m,n,o=6,p=Math.floor(f/o);c(p,6,function(b,c,d,f){if(0==b&&(m=n,n=[]),d=Math.round(255*d),f=Math.round(255*f),c>0){var h=m[b][0],i=m[b][1],j=e.packDX(h,i),k=e.packDX(d,f),l=Math.round(e.mid+(.333*(c-1)-1)*g),q=Math.round(e.mid+(.333*c-1)*g);a("
").css({position:"absolute",filter:"progid:DXImageTransform.Microsoft.Gradient(StartColorStr="+j+", EndColorStr="+k+", GradientType=0)",top:l,height:q-l,left:e.mid+(b*o-g-1),width:o-(b==p?Math.round(o/2):0)}).appendTo(e.cnvMask)}n.push([d,f])})}else{var h=Math.floor(f/2);c(h,h,function(a,b,c,d){c=Math.round(255*c),e.ctxMask.fillStyle="rgba("+c+", "+c+", "+c+", "+d+")",e.ctxMask.fillRect(2*a-g-1,2*b-g-1,2,2)})}b&&a("body").append("
drawMask "+(+new Date-d)+"ms")},e.drawMarkers=function(){var a=d.width,b=Math.ceil(e.markerSize/4),c=e.markerSize-b+1,f=6.28*e.hsl[0],g=Math.sin(f)*e.radius,h=-Math.cos(f)*e.radius,j=2*e.square*(.5-e.hsl[1]),k=2*e.square*(.5-e.hsl[2]),l=e.invert?"#fff":"#000",m=e.invert?"#000":"#fff",n=[{x:g,y:h,r:c,c:"#000",lw:b+1},{x:g,y:h,r:e.markerSize,c:"#fff",lw:b},{x:j,y:k,r:c,c:m,lw:b+1},{x:j,y:k,r:e.markerSize,c:l,lw:b}];e.ctxOverlay.clearRect(-e.mid,-e.mid,a,a);for(i in n){var o=n[i];e.ctxOverlay.lineWidth=o.lw,e.ctxOverlay.strokeStyle=o.c,e.ctxOverlay.beginPath(),e.ctxOverlay.arc(o.x,o.y,o.r,0,2*Math.PI,!0),e.ctxOverlay.stroke()}},e.updateDisplay=function(){e.invert=.3*e.rgb[0]+.59*e.rgb[1]+.11*e.rgb[2]<=.6,e.solidFill.css("backgroundColor",e.pack(e.HSLToRGB([e.hsl[0],1,.5]))),e.drawMarkers(),"object"==typeof e.callback?(a(e.callback).css({backgroundColor:e.color,color:e.invert?"#fff":"#000"}),a(e.callback).each(function(){"string"==typeof this.value&&this.value!=e.color&&(this.value=e.color)})):"function"==typeof e.callback&&e.callback.call(e,e.color)},e.widgetCoords=function(a){return{x:a.pageX-e.offset.left-e.mid,y:a.pageY-e.offset.top-e.mid}},e.mousedown=function(b){a._farbtastic.dragging||(a(document).bind("mousemove",e.mousemove).bind("mouseup",e.mouseup),a._farbtastic.dragging=!0),e.offset=a(c).offset();var d=e.widgetCoords(b);return e.circleDrag=Math.max(Math.abs(d.x),Math.abs(d.y))>e.square+2,e.mousemove(b),!1},e.mousemove=function(a){var b=e.widgetCoords(a);if(e.circleDrag){var c=Math.atan2(b.x,-b.y)/6.28;e.setHSL([(c+1)%1,e.hsl[1],e.hsl[2]])}else{var d=Math.max(0,Math.min(1,-(b.x/e.square/2)+.5)),f=Math.max(0,Math.min(1,-(b.y/e.square/2)+.5));e.setHSL([e.hsl[0],d,f])}return!1},e.mouseup=function(){a(document).unbind("mousemove",e.mousemove),a(document).unbind("mouseup",e.mouseup),a._farbtastic.dragging=!1},e.dec2hex=function(a){return(16>a?"0":"")+a.toString(16)},e.packDX=function(a,b){return"#"+e.dec2hex(b)+e.dec2hex(a)+e.dec2hex(a)+e.dec2hex(a)},e.pack=function(a){var b=Math.round(255*a[0]),c=Math.round(255*a[1]),d=Math.round(255*a[2]);return"#"+e.dec2hex(b)+e.dec2hex(c)+e.dec2hex(d)},e.unpack=function(a){function b(b){return parseInt(a.substring(b,b+2),16)/255}function b(b){return parseInt(a.substring(b,b+1),16)/15}return 7==a.length?[b(1),b(3),b(5)]:4==a.length?[b(1),b(2),b(3)]:void 0},e.HSLToRGB=function(a){var b,c,d=a[0],e=a[1],f=a[2];return c=.5>=f?f*(e+1):f+e-f*e,b=2*f-c,[this.hueToRGB(b,c,d+.33333),this.hueToRGB(b,c,d),this.hueToRGB(b,c,d-.33333)]},e.hueToRGB=function(a,b,c){return c=(c+1)%1,1>6*c?a+(b-a)*c*6:1>2*c?b:2>3*c?a+(b-a)*(.66666-c)*6:a},e.RGBToHSL=function(a){var b=a[0],c=a[1],d=a[2],e=Math.min(b,c,d),f=Math.max(b,c,d),g=f-e,h=0,i=0,j=(e+f)/2;return j>0&&1>j&&(i=g/(.5>j?2*j:2-2*j)),g>0&&(f==b&&f!=c&&(h+=(c-d)/g),f==c&&f!=d&&(h+=2+(d-b)/g),f==d&&f!=b&&(h+=4+(b-c)/g),h/=6),[h,i,j]},d.callback||(d={callback:d}),d=a.extend({width:300,wheelWidth:(d.width||300)/10,callback:null,color:"#808080"},d),e.initWidget(),a("canvas.farbtastic-overlay",c).mousedown(e.mousedown),d.callback&&e.linkTo(d.callback),e.setColor("#808080"),e.setColor(d.color)}}(jQuery); +!function(a){var b=!1;a.fn.farbtastic=function(b){return a.farbtastic(this,b),this},a.farbtastic=function(b,c){var b=a(b)[0];return b.farbtastic||(b.farbtastic=new a._farbtastic(b,c))},a._farbtastic=function(c,d){var e=this;e.linkTo=function(b){return"object"==typeof e.callback&&a(e.callback).unbind("keyup",e.updateValue),e.color=null,"function"==typeof b?e.callback=b:("object"==typeof b||"string"==typeof b)&&(e.callback=a(b),e.callback.bind("keyup",e.updateValue),e.callback[0].value&&e.setColor(e.callback[0].value)),this},e.updateValue=function(){this.value&&this.value!=e.color&&e.setColor(this.value)},e.setColor=function(a){var b=e.unpack(a);return e.color!=a&&b&&(e.color=a,e.rgb=b,e.hsl=e.RGBToHSL(e.rgb),e.updateDisplay()),this},e.setHSL=function(a){return e.hsl=a,e.rgb=e.HSLToRGB(a),e.color=e.pack(e.rgb),e.updateDisplay(),this},e.initWidget=function(){var b={width:d.width,height:d.width};a(c).html('
').find("*").attr(b).css(b).end().find("div>*").css("position","absolute"),a.browser.msie||!1,e.radius=(d.width-d.wheelWidth)/2-1,e.square=Math.floor(.7*(e.radius-d.wheelWidth/2))-1,e.mid=Math.floor(d.width/2),e.markerSize=.3*d.wheelWidth,e.solidFill=a(".farbtastic-solid",c).css({width:2*e.square-1,height:2*e.square-1,left:e.mid-e.square,top:e.mid-e.square}),e.cnvMask=a(".farbtastic-mask",c),e.ctxMask=e.cnvMask[0].getContext("2d"),e.cnvOverlay=a(".farbtastic-overlay",c),e.ctxOverlay=e.cnvOverlay[0].getContext("2d"),e.ctxMask.translate(e.mid,e.mid),e.ctxOverlay.translate(e.mid,e.mid),e.drawCircle(),e.drawMask()},e.drawCircle=function(){var c,f,g=+new Date,h=24,i=e.radius,j=d.wheelWidth,k=8/i/h*Math.PI,l=e.ctxMask,m=0;l.save(),l.lineWidth=j/i,l.scale(i,i);for(var n=0;h>=n;++n){var o=n/h,p=o*Math.PI*2,q=Math.sin(m),r=-Math.cos(m);if(x2=Math.sin(p),y2=-Math.cos(p),am=(m+p)/2,tan=1/Math.cos((p-m)/2),xm=Math.sin(am)*tan,ym=-Math.cos(am)*tan,color2=e.pack(e.HSLToRGB([o,1,.5])),n>0)if(a.browser.msie){var s=(1+Math.min(Math.abs(Math.tan(m)),Math.abs(Math.tan(Math.PI/2-m))))/h;c=e.pack(e.HSLToRGB([f-.15*s,1,.5])),color2=e.pack(e.HSLToRGB([o+.15*s,1,.5]));var t=l.createLinearGradient(q,r,x2,y2);t.addColorStop(0,c),t.addColorStop(1,color2),l.fillStyle=t;var u=(i+j/2)/i,v=(i-j/2)/i;l.beginPath(),l.moveTo(q*u,r*u),l.quadraticCurveTo(xm*u,ym*u,x2*u,y2*u),l.lineTo(x2*v,y2*v),l.quadraticCurveTo(xm*v,ym*v,q*v,r*v),l.fill()}else{var t=l.createLinearGradient(q,r,x2,y2);t.addColorStop(0,c),t.addColorStop(1,color2),l.strokeStyle=t,l.beginPath(),l.moveTo(q,r),l.quadraticCurveTo(xm,ym,x2,y2),l.stroke()}m=p-k,c=color2,f=o}l.restore(),b&&a("body").append("
drawCircle "+(+new Date-g)+"ms")},e.drawMask=function(){function c(a,b,c){for(var d=1/a,e=1/b,f=0;b>=f;++f)for(var g=1-f*e,h=0;a>=h;++h){var i=1-h*d,j=1-2*Math.min(g*i,(1-g)*i),k=j>0?.5*(2*g-1+j)/j:0;c(h,f,k,j)}}var d=+new Date,f=2*e.square,g=e.square;if(e.ctxMask.getImageData){var h=Math.floor(f/2),i=document.createElement("canvas");i.width=i.height=h+1;var j=i.getContext("2d"),k=j.getImageData(0,0,h+1,h+1),l=0;c(h,h,function(a,b,c,d){k.data[l++]=k.data[l++]=k.data[l++]=255*c,k.data[l++]=255*d}),j.putImageData(k,0,0),e.ctxMask.drawImage(i,0,0,h+1,h+1,-g,-g,2*g,2*g)}else if(a.browser.msie){var m,n,o=6,p=Math.floor(f/o);c(p,6,function(b,c,d,f){if(0==b&&(m=n,n=[]),d=Math.round(255*d),f=Math.round(255*f),c>0){var h=m[b][0],i=m[b][1],j=e.packDX(h,i),k=e.packDX(d,f),l=Math.round(e.mid+(.333*(c-1)-1)*g),q=Math.round(e.mid+(.333*c-1)*g);a("
").css({position:"absolute",filter:"progid:DXImageTransform.Microsoft.Gradient(StartColorStr="+j+", EndColorStr="+k+", GradientType=0)",top:l,height:q-l,left:e.mid+(b*o-g-1),width:o-(b==p?Math.round(o/2):0)}).appendTo(e.cnvMask)}n.push([d,f])})}else{var h=Math.floor(f/2);c(h,h,function(a,b,c,d){c=Math.round(255*c),e.ctxMask.fillStyle="rgba("+c+", "+c+", "+c+", "+d+")",e.ctxMask.fillRect(2*a-g-1,2*b-g-1,2,2)})}b&&a("body").append("
drawMask "+(+new Date-d)+"ms")},e.drawMarkers=function(){var a=d.width,b=Math.ceil(e.markerSize/4),c=e.markerSize-b+1,f=6.28*e.hsl[0],g=Math.sin(f)*e.radius,h=-Math.cos(f)*e.radius,i=2*e.square*(.5-e.hsl[1]),j=2*e.square*(.5-e.hsl[2]),k=e.invert?"#fff":"#000",l=e.invert?"#000":"#fff",m=[{x:g,y:h,r:c,c:"#000",lw:b+1},{x:g,y:h,r:e.markerSize,c:"#fff",lw:b},{x:i,y:j,r:c,c:l,lw:b+1},{x:i,y:j,r:e.markerSize,c:k,lw:b}];e.ctxOverlay.clearRect(-e.mid,-e.mid,a,a);for(var n=0;ne.square+2,e.mousemove(b),!1},e.mousemove=function(a){var b=e.widgetCoords(a);if(e.circleDrag){var c=Math.atan2(b.x,-b.y)/6.28;e.setHSL([(c+1)%1,e.hsl[1],e.hsl[2]])}else{var d=Math.max(0,Math.min(1,-(b.x/e.square/2)+.5)),f=Math.max(0,Math.min(1,-(b.y/e.square/2)+.5));e.setHSL([e.hsl[0],d,f])}return!1},e.mouseup=function(){a(document).unbind("mousemove",e.mousemove),a(document).unbind("mouseup",e.mouseup),a._farbtastic.dragging=!1},e.dec2hex=function(a){return(16>a?"0":"")+a.toString(16)},e.packDX=function(a,b){return"#"+e.dec2hex(b)+e.dec2hex(a)+e.dec2hex(a)+e.dec2hex(a)},e.pack=function(a){var b=Math.round(255*a[0]),c=Math.round(255*a[1]),d=Math.round(255*a[2]);return"#"+e.dec2hex(b)+e.dec2hex(c)+e.dec2hex(d)},e.unpack=function(a){function b(b){return parseInt(a.substring(b,b+2),16)/255}function b(b){return parseInt(a.substring(b,b+1),16)/15}return 7==a.length?[b(1),b(3),b(5)]:4==a.length?[b(1),b(2),b(3)]:void 0},e.HSLToRGB=function(a){var b,c,d=a[0],e=a[1],f=a[2];return c=.5>=f?f*(e+1):f+e-f*e,b=2*f-c,[this.hueToRGB(b,c,d+.33333),this.hueToRGB(b,c,d),this.hueToRGB(b,c,d-.33333)]},e.hueToRGB=function(a,b,c){return c=(c+1)%1,1>6*c?a+(b-a)*c*6:1>2*c?b:2>3*c?a+(b-a)*(.66666-c)*6:a},e.RGBToHSL=function(a){var b=a[0],c=a[1],d=a[2],e=Math.min(b,c,d),f=Math.max(b,c,d),g=f-e,h=0,i=0,j=(e+f)/2;return j>0&&1>j&&(i=g/(.5>j?2*j:2-2*j)),g>0&&(f==b&&f!=c&&(h+=(c-d)/g),f==c&&f!=d&&(h+=2+(d-b)/g),f==d&&f!=b&&(h+=4+(b-c)/g),h/=6),[h,i,j]},d.callback||(d={callback:d}),d=a.extend({width:300,wheelWidth:(d.width||300)/10,callback:null},d),e.initWidget(),a("canvas.farbtastic-overlay",c).mousedown(e.mousedown),d.callback&&e.linkTo(d.callback),e.color||e.setColor("#808080")}}(jQuery); //# sourceMappingURL=../../maps/libs/farbtastic.js.map \ No newline at end of file diff --git a/static/scripts/libs/jquery.sparklines.js b/static/scripts/libs/jquery.sparklines.js new file mode 100644 index 00000000000..7254f9a3725 --- /dev/null +++ b/static/scripts/libs/jquery.sparklines.js @@ -0,0 +1,3 @@ +!function(a,b,c){!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.sparkline&&a(jQuery)}(function(d){"use strict";var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K={},L=0;e=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:!1,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:!1,enableHighlight:!0,highlightLighten:1.4,tooltipSkipNull:!0,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:!1,numberFormatter:!1,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:!1,disableInteraction:!1},line:{spotColor:"#f80",highlightSpotColor:"#5f5",highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:c,normalRangeMax:c,normalRangeColor:"#ccc",drawNormalOnTop:!1,chartRangeMin:c,chartRangeMax:c,chartRangeMinX:c,chartRangeMaxX:c,tooltipFormat:new g('● {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:c,nullColor:c,zeroAxis:!0,barWidth:4,barSpacing:1,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,colorMap:c,tooltipFormat:new g('● {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new g('● {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:c,thresholdValue:0,chartRangeMax:c,chartRangeMin:c,chartRangeClip:!1,tooltipFormat:new g("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:c,tooltipFormat:new g("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new g('● {{value}} ({{percent.1}}%)')},box:{raw:!1,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:!0,outlierIQR:1.5,spotRadius:1.5,target:c,targetColor:"#4a2",chartRangeMax:c,chartRangeMin:c,tooltipFormat:new g("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}},D='.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;background: rgb(0, 0, 0) transparent;background-color: rgba(0,0,0,0.6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";color: white;font: 10px arial, san serif;text-align: left;white-space: nowrap;padding: 5px;border: 1px solid white;z-index: 10000;}.jqsfield { color: white;font: 10px arial, san serif;text-align: left;}',f=function(){var a,b;return a=function(){this.init.apply(this,arguments)},arguments.length>1?(arguments[0]?(a.prototype=d.extend(new arguments[0],arguments[arguments.length-1]),a._super=arguments[0].prototype):a.prototype=arguments[arguments.length-1],arguments.length>2&&(b=Array.prototype.slice.call(arguments,1,-1),b.unshift(a.prototype),d.extend.apply(d,b))):a.prototype=arguments[0],a.prototype.cls=a,a},d.SPFormatClass=g=f({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(a,b){this.format=a,this.fclass=b},render:function(a,b,d){var e,f,g,h,i,j=this,k=a;return this.format.replace(this.fre,function(){var a;return f=arguments[1],g=arguments[3],e=j.precre.exec(f),e?(i=e[2],f=e[1]):i=!1,h=k[f],h===c?"":g&&b&&b[g]?(a=b[g],a.get?b[g].get(h)||h:b[g][h]||h):(m(h)&&(h=d.get("numberFormatter")?d.get("numberFormatter")(h):r(h,i,d.get("numberDigitGroupCount"),d.get("numberDigitGroupSep"),d.get("numberDecimalMark"))),h)})}}),d.spformat=function(a,b){return new g(a,b)},h=function(a,b,c){return b>a?b:a>c?c:a},i=function(a,c){var d;return 2===c?(d=b.floor(a.length/2),a.length%2?a[d]:(a[d-1]+a[d])/2):a.length%2?(d=(a.length*c+c)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1]):(d=(a.length*c+2)/4,d%1?(a[b.floor(d)]+a[b.floor(d)-1])/2:a[d-1])},j=function(a){var b;switch(a){case"undefined":a=c;break;case"null":a=null;break;case"true":a=!0;break;case"false":a=!1;break;default:b=parseFloat(a),a==b&&(a=b)}return a},k=function(a){var b,c=[];for(b=a.length;b--;)c[b]=j(a[b]);return c},l=function(a,b){var c,d,e=[];for(c=0,d=a.length;d>c;c++)a[c]!==b&&e.push(a[c]);return e},m=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},r=function(a,b,c,e,f){var g,h;for(a=(b===!1?parseFloat(a).toString():a.toFixed(b)).split(""),g=(g=d.inArray(".",a))<0?a.length:g,g0;h-=c)a.splice(h,0,e);return a.join("")},n=function(a,b,c){var d;for(d=b.length;d--;)if((!c||null!==b[d])&&b[d]!==a)return!1;return!0},o=function(a){var b,c=0;for(b=a.length;b--;)c+="number"==typeof a[b]?a[b]:0;return c},q=function(a){return d.isArray(a)?a:[a]},p=function(b){var c;a.createStyleSheet?a.createStyleSheet().cssText=b:(c=a.createElement("style"),c.type="text/css",a.getElementsByTagName("head")[0].appendChild(c),c["string"==typeof a.body.style.WebkitAppearance?"innerText":"innerHTML"]=b)},d.fn.simpledraw=function(b,e,f,g){var h,i;if(f&&(h=this.data("_jqs_vcanvas")))return h;if(d.fn.sparkline.canvas===!1)return!1;if(d.fn.sparkline.canvas===c){var j=a.createElement("canvas");if(j.getContext&&j.getContext("2d"))d.fn.sparkline.canvas=function(a,b,c,d){return new H(a,b,c,d)};else{if(!a.namespaces||a.namespaces.v)return d.fn.sparkline.canvas=!1,!1;a.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML"),d.fn.sparkline.canvas=function(a,b,c){return new I(a,b,c)}}}return b===c&&(b=d(this).innerWidth()),e===c&&(e=d(this).innerHeight()),h=d.fn.sparkline.canvas(b,e,this,g),i=d(this).data("_jqs_mhandler"),i&&i.registerCanvas(h),h},d.fn.cleardraw=function(){var a=this.data("_jqs_vcanvas");a&&a.reset()},d.RangeMapClass=s=f({init:function(a){var b,c,d=[];for(b in a)a.hasOwnProperty(b)&&"string"==typeof b&&b.indexOf(":")>-1&&(c=b.split(":"),c[0]=0===c[0].length?-(1/0):parseFloat(c[0]),c[1]=0===c[1].length?1/0:parseFloat(c[1]),c[2]=a[b],d.push(c));this.map=a,this.rangelist=d||!1},get:function(a){var b,d,e,f=this.rangelist;if((e=this.map[a])!==c)return e;if(f)for(b=f.length;b--;)if(d=f[b],d[0]<=a&&d[1]>=a)return d[2];return c}}),d.range_map=function(a){return new s(a)},t=f({init:function(a,b){var c=d(a);this.$el=c,this.options=b,this.currentPageX=0,this.currentPageY=0,this.el=a,this.splist=[],this.tooltip=null,this.over=!1,this.displayTooltips=!b.get("disableTooltips"),this.highlightEnabled=!b.get("disableHighlight")},registerSparkline:function(a){this.splist.push(a),this.over&&this.updateDisplay()},registerCanvas:function(a){var b=d(a.canvas);this.canvas=a,this.$canvas=b,b.mouseenter(d.proxy(this.mouseenter,this)),b.mouseleave(d.proxy(this.mouseleave,this)),b.click(d.proxy(this.mouseclick,this))},reset:function(a){this.splist=[],this.tooltip&&a&&(this.tooltip.remove(),this.tooltip=c)},mouseclick:function(a){var b=d.Event("sparklineClick");b.originalEvent=a,b.sparklines=this.splist,this.$el.trigger(b)},mouseenter:function(b){d(a.body).unbind("mousemove.jqs"),d(a.body).bind("mousemove.jqs",d.proxy(this.mousemove,this)),this.over=!0,this.currentPageX=b.pageX,this.currentPageY=b.pageY,this.currentEl=b.target,!this.tooltip&&this.displayTooltips&&(this.tooltip=new u(this.options),this.tooltip.updatePosition(b.pageX,b.pageY)),this.updateDisplay()},mouseleave:function(){d(a.body).unbind("mousemove.jqs");var b,c,e=this.splist,f=e.length,g=!1;for(this.over=!1,this.currentEl=null,this.tooltip&&(this.tooltip.remove(),this.tooltip=null),c=0;f>c;c++)b=e[c],b.clearRegionHighlight()&&(g=!0);g&&this.canvas.render()},mousemove:function(a){this.currentPageX=a.pageX,this.currentPageY=a.pageY,this.currentEl=a.target,this.tooltip&&this.tooltip.updatePosition(a.pageX,a.pageY),this.updateDisplay()},updateDisplay:function(){var a,b,c,e,f,g=this.splist,h=g.length,i=!1,j=this.$canvas.offset(),k=this.currentPageX-j.left,l=this.currentPageY-j.top;if(this.over){for(c=0;h>c;c++)b=g[c],e=b.setRegionHighlight(this.currentEl,k,l),e&&(i=!0);if(i){if(f=d.Event("sparklineRegionChange"),f.sparklines=this.splist,this.$el.trigger(f),this.tooltip){for(a="",c=0;h>c;c++)b=g[c],a+=b.getCurrentRegionTooltip();this.tooltip.setContent(a)}this.disableHighlight||this.canvas.render()}null===e&&this.mouseleave()}}}),u=f({sizeStyle:"position: static !important;display: block !important;visibility: hidden !important;float: left !important;",init:function(b){var c,e=b.get("tooltipClassname","jqstooltip"),f=this.sizeStyle;this.container=b.get("tooltipContainer")||a.body,this.tooltipOffsetX=b.get("tooltipOffsetX",10),this.tooltipOffsetY=b.get("tooltipOffsetY",12),d("#jqssizetip").remove(),d("#jqstooltip").remove(),this.sizetip=d("
",{id:"jqssizetip",style:f,"class":e}),this.tooltip=d("
",{id:"jqstooltip","class":e}).appendTo(this.container),c=this.tooltip.offset(),this.offsetLeft=c.left,this.offsetTop=c.top,this.hidden=!0,d(window).unbind("resize.jqs scroll.jqs"),d(window).bind("resize.jqs scroll.jqs",d.proxy(this.updateWindowDims,this)),this.updateWindowDims()},updateWindowDims:function(){this.scrollTop=d(window).scrollTop(),this.scrollLeft=d(window).scrollLeft(),this.scrollRight=this.scrollLeft+d(window).width(),this.updatePosition()},getSize:function(a){this.sizetip.html(a).appendTo(this.container),this.width=this.sizetip.width()+1,this.height=this.sizetip.height(),this.sizetip.remove()},setContent:function(a){return a?(this.getSize(a),this.tooltip.html(a).css({width:this.width,height:this.height,visibility:"visible"}),void(this.hidden&&(this.hidden=!1,this.updatePosition()))):(this.tooltip.css("visibility","hidden"),void(this.hidden=!0))},updatePosition:function(a,b){if(a===c){if(this.mousex===c)return;a=this.mousex-this.offsetLeft,b=this.mousey-this.offsetTop}else this.mousex=a-=this.offsetLeft,this.mousey=b-=this.offsetTop;this.height&&this.width&&!this.hidden&&(b-=this.height+this.tooltipOffsetY,a+=this.tooltipOffsetX,bthis.scrollRight&&(a=this.scrollRight-this.width),this.tooltip.css({left:a,top:b}))},remove:function(){this.tooltip.remove(),this.sizetip.remove(),this.sizetip=this.tooltip=c,d(window).unbind("resize.jqs scroll.jqs")}}),E=function(){p(D)},d(E),J=[],d.fn.sparkline=function(b,e){return this.each(function(){var f,g,h=new d.fn.sparkline.options(this,e),i=d(this);if(f=function(){var e,f,g,j,k,l,m;return"html"===b||b===c?(m=this.getAttribute(h.get("tagValuesAttribute")),(m===c||null===m)&&(m=i.html()),e=m.replace(/(^\s*\s*$)|\s+/g,"").split(",")):e=b,f="auto"===h.get("width")?e.length*h.get("defaultPixelsPerValue"):h.get("width"),"auto"===h.get("height")?h.get("composite")&&d.data(this,"_jqs_vcanvas")||(j=a.createElement("span"),j.innerHTML="a",i.html(j),g=d(j).innerHeight()||d(j).height(),d(j).remove(),j=null):g=h.get("height"),h.get("disableInteraction")?k=!1:(k=d.data(this,"_jqs_mhandler"),k?h.get("composite")||k.reset():(k=new t(this,h),d.data(this,"_jqs_mhandler",k))),h.get("composite")&&!d.data(this,"_jqs_vcanvas")?void(d.data(this,"_jqs_errnotify")||(alert("Attempted to attach a composite sparkline to an element with no existing sparkline"),d.data(this,"_jqs_errnotify",!0))):(l=new(d.fn.sparkline[h.get("type")])(this,e,h,f,g),l.render(),void(k&&k.registerSparkline(l)))},d(this).html()&&!h.get("disableHiddenCheck")&&d(this).is(":hidden")||!d(this).parents("body").length){if(!h.get("composite")&&d.data(this,"_jqs_pending"))for(g=J.length;g;g--)J[g-1][0]==this&&J.splice(g-1,1);J.push([this,f]),d.data(this,"_jqs_pending",!0)}else f.call(this)})},d.fn.sparkline.defaults=e(),d.sparkline_display_visible=function(){var a,b,c,e=[];for(b=0,c=J.length;c>b;b++)a=J[b][0],d(a).is(":visible")&&!d(a).parents().is(":hidden")?(J[b][1].call(a),d.data(J[b][0],"_jqs_pending",!1),e.push(b)):d(a).closest("html").length||d.data(a,"_jqs_pending")||(d.data(J[b][0],"_jqs_pending",!1),e.push(b));for(b=e.length;b;b--)J.splice(e[b-1],1)},d.fn.sparkline.options=f({init:function(a,b){var c,e,f,g;this.userOptions=b=b||{},this.tag=a,this.tagValCache={},e=d.fn.sparkline.defaults,f=e.common,this.tagOptionsPrefix=b.enableTagOptions&&(b.tagOptionsPrefix||f.tagOptionsPrefix),g=this.getTagSetting("type"),c=g===K?e[b.type||f.type]:e[g],this.mergedOptions=d.extend({},f,c,b)},getTagSetting:function(a){var b,d,e,f,g=this.tagOptionsPrefix;if(g===!1||g===c)return K;if(this.tagValCache.hasOwnProperty(a))b=this.tagValCache.key;else{if(b=this.tag.getAttribute(g+a),b===c||null===b)b=K;else if("["===b.substr(0,1))for(b=b.substr(1,b.length-2).split(","),d=b.length;d--;)b[d]=j(b[d].replace(/(^\s*)|(\s*$)/g,""));else if("{"===b.substr(0,1))for(e=b.substr(1,b.length-2).split(","),b={},d=e.length;d--;)f=e[d].split(":",2),b[f[0].replace(/(^\s*)|(\s*$)/g,"")]=j(f[1].replace(/(^\s*)|(\s*$)/g,""));else b=j(b);this.tagValCache.key=b}return b},get:function(a,b){var d,e=this.getTagSetting(a);return e!==K?e:(d=this.mergedOptions[a])===c?b:d}}),d.fn.sparkline._base=f({disabled:!1,init:function(a,b,e,f,g){this.el=a,this.$el=d(a),this.values=b,this.options=e,this.width=f,this.height=g,this.currentRegion=c},initTarget:function(){var a=!this.options.get("disableInteraction");(this.target=this.$el.simpledraw(this.width,this.height,this.options.get("composite"),a))?(this.canvasWidth=this.target.pixelWidth,this.canvasHeight=this.target.pixelHeight):this.disabled=!0},render:function(){return this.disabled?(this.el.innerHTML="",!1):!0},getRegion:function(){},setRegionHighlight:function(a,b,d){var e,f=this.currentRegion,g=!this.options.get("disableHighlight");return b>this.canvasWidth||d>this.canvasHeight||0>b||0>d?null:(e=this.getRegion(a,b,d),f!==e?(f!==c&&g&&this.removeHighlight(),this.currentRegion=e,e!==c&&g&&this.renderHighlight(),!0):!1)},clearRegionHighlight:function(){return this.currentRegion!==c?(this.removeHighlight(),this.currentRegion=c,!0):!1},renderHighlight:function(){this.changeHighlight(!0)},removeHighlight:function(){this.changeHighlight(!1)},changeHighlight:function(){},getCurrentRegionTooltip:function(){var a,b,e,f,h,i,j,k,l,m,n,o,p,q,r=this.options,s="",t=[];if(this.currentRegion===c)return"";if(a=this.getCurrentRegionFields(),n=r.get("tooltipFormatter"))return n(this,r,a);if(r.get("tooltipChartTitle")&&(s+='
'+r.get("tooltipChartTitle")+"
\n"),b=this.options.get("tooltipFormat"),!b)return"";if(d.isArray(b)||(b=[b]),d.isArray(a)||(a=[a]),j=this.options.get("tooltipFormatFieldlist"),k=this.options.get("tooltipFormatFieldlistKey"),j&&k){for(l=[],i=a.length;i--;)m=a[i][k],-1!=(q=d.inArray(m,j))&&(l[q]=a[i]);a=l}for(e=b.length,p=a.length,i=0;e>i;i++)for(o=b[i],"string"==typeof o&&(o=new g(o)),f=o.fclass||"jqsfield",q=0;p>q;q++)a[q].isNull&&r.get("tooltipSkipNull")||(d.extend(a[q],{prefix:r.get("tooltipPrefix"),suffix:r.get("tooltipSuffix")}),h=o.render(a[q],r.get("tooltipValueLookups"),r),t.push('
'+h+"
"));return t.length?s+t.join("\n"):""},getCurrentRegionFields:function(){},calcHighlightColor:function(a,c){var d,e,f,g,i=c.get("highlightColor"),j=c.get("highlightLighten");if(i)return i;if(j&&(d=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(a)||/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(a))){for(f=[],e=4===a.length?16:1,g=0;3>g;g++)f[g]=h(b.round(parseInt(d[g+1],16)*e*j),0,255);return"rgb("+f.join(",")+")"}return a}}),v={changeHighlight:function(a){var b,c=this.currentRegion,e=this.target,f=this.regionShapes[c];f&&(b=this.renderRegion(c,a),d.isArray(b)||d.isArray(f)?(e.replaceWithShapes(f,b),this.regionShapes[c]=d.map(b,function(a){return a.id})):(e.replaceWithShape(f,b),this.regionShapes[c]=b.id))},render:function(){var a,b,c,e,f=this.values,g=this.target,h=this.regionShapes;if(this.cls._super.render.call(this)){for(c=f.length;c--;)if(a=this.renderRegion(c))if(d.isArray(a)){for(b=[],e=a.length;e--;)a[e].append(),b.push(a[e].id);h[c]=b}else a.append(),h[c]=a.id;else h[c]=null;g.render()}}},d.fn.sparkline.line=w=f(d.fn.sparkline._base,{type:"line",init:function(a,b,c,d,e){w._super.init.call(this,a,b,c,d,e),this.vertices=[],this.regionMap=[],this.xvalues=[],this.yvalues=[],this.yminmax=[],this.hightlightSpotId=null,this.lastShapeId=null,this.initTarget()},getRegion:function(a,b){var d,e=this.regionMap;for(d=e.length;d--;)if(null!==e[d]&&b>=e[d][0]&&b<=e[d][1])return e[d][2];return c},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:null===this.yvalues[a],x:this.xvalues[a],y:this.yvalues[a],color:this.options.get("lineColor"),fillColor:this.options.get("fillColor"),offset:a}},renderHighlight:function(){var a,b,d=this.currentRegion,e=this.target,f=this.vertices[d],g=this.options,h=g.get("spotRadius"),i=g.get("highlightSpotColor"),j=g.get("highlightLineColor");f&&(h&&i&&(a=e.drawCircle(f[0],f[1],h,c,i),this.highlightSpotId=a.id,e.insertAfterShape(this.lastShapeId,a)),j&&(b=e.drawLine(f[0],this.canvasTop,f[0],this.canvasTop+this.canvasHeight,j),this.highlightLineId=b.id,e.insertAfterShape(this.lastShapeId,b)))},removeHighlight:function(){var a=this.target;this.highlightSpotId&&(a.removeShapeId(this.highlightSpotId),this.highlightSpotId=null),this.highlightLineId&&(a.removeShapeId(this.highlightLineId),this.highlightLineId=null)},scanValues:function(){var a,c,d,e,f,g=this.values,h=g.length,i=this.xvalues,j=this.yvalues,k=this.yminmax;for(a=0;h>a;a++)c=g[a],d="string"==typeof g[a],e="object"==typeof g[a]&&g[a]instanceof Array,f=d&&g[a].split(":"),d&&2===f.length?(i.push(Number(f[0])),j.push(Number(f[1])),k.push(Number(f[1]))):e?(i.push(c[0]),j.push(c[1]),k.push(c[1])):(i.push(a),null===g[a]||"null"===g[a]?j.push(null):(j.push(Number(c)),k.push(Number(c))));this.options.get("xvalues")&&(i=this.options.get("xvalues")),this.maxy=this.maxyorg=b.max.apply(b,k),this.miny=this.minyorg=b.min.apply(b,k),this.maxx=b.max.apply(b,i),this.minx=b.min.apply(b,i),this.xvalues=i,this.yvalues=j,this.yminmax=k},processRangeOptions:function(){var a=this.options,b=a.get("normalRangeMin"),d=a.get("normalRangeMax");b!==c&&(bthis.maxy&&(this.maxy=d)),a.get("chartRangeMin")!==c&&(a.get("chartRangeClip")||a.get("chartRangeMin")this.maxy)&&(this.maxy=a.get("chartRangeMax")),a.get("chartRangeMinX")!==c&&(a.get("chartRangeClipX")||a.get("chartRangeMinX")this.maxx)&&(this.maxx=a.get("chartRangeMaxX"))},drawNormalRange:function(a,d,e,f,g){var h=this.options.get("normalRangeMin"),i=this.options.get("normalRangeMax"),j=d+b.round(e-e*((i-this.miny)/g)),k=b.round(e*(i-h)/g);this.target.drawRect(a,j,f,k,c,this.options.get("normalRangeColor")).append()},render:function(){var a,e,f,g,h,i,j,k,l,m,n,o,p,q,r,t,u,v,x,y,z,A,B,C,D,E=this.options,F=this.target,G=this.canvasWidth,H=this.canvasHeight,I=this.vertices,J=E.get("spotRadius"),K=this.regionMap;if(w._super.render.call(this)&&(this.scanValues(),this.processRangeOptions(),B=this.xvalues,C=this.yvalues,this.yminmax.length&&!(this.yvalues.length<2))){for(g=h=0,a=this.maxx-this.minx===0?1:this.maxx-this.minx,e=this.maxy-this.miny===0?1:this.maxy-this.miny,f=this.yvalues.length-1,J&&(4*J>G||4*J>H)&&(J=0),J&&(z=E.get("highlightSpotColor")&&!E.get("disableInteraction"),(z||E.get("minSpotColor")||E.get("spotColor")&&C[f]===this.miny)&&(H-=b.ceil(J)),(z||E.get("maxSpotColor")||E.get("spotColor")&&C[f]===this.maxy)&&(H-=b.ceil(J),g+=b.ceil(J)),(z||(E.get("minSpotColor")||E.get("maxSpotColor"))&&(C[0]===this.miny||C[0]===this.maxy))&&(h+=b.ceil(J),G-=b.ceil(J)),(z||E.get("spotColor")||E.get("minSpotColor")||E.get("maxSpotColor")&&(C[f]===this.miny||C[f]===this.maxy))&&(G-=b.ceil(J))),H--,E.get("normalRangeMin")===c||E.get("drawNormalOnTop")||this.drawNormalRange(h,g,H,G,e),j=[],k=[j],q=r=null,t=C.length,D=0;t>D;D++)l=B[D],n=B[D+1],m=C[D],o=h+b.round((l-this.minx)*(G/a)),p=t-1>D?h+b.round((n-this.minx)*(G/a)):G,r=o+(p-o)/2,K[D]=[q||0,r,D],q=r,null===m?D&&(null!==C[D-1]&&(j=[],k.push(j)),I.push(null)):(mthis.maxy&&(m=this.maxy),j.length||j.push([o,g+H]),i=[o,g+b.round(H-H*((m-this.miny)/e))],j.push(i),I.push(i));for(u=[],v=[],x=k.length,D=0;x>D;D++)j=k[D],j.length&&(E.get("fillColor")&&(j.push([j[j.length-1][0],g+H]),v.push(j.slice(0)),j.pop()),j.length>2&&(j[0]=[j[0][0],j[1][1]]),u.push(j));for(x=v.length,D=0;x>D;D++)F.drawShape(v[D],E.get("fillColor"),E.get("fillColor")).append();for(E.get("normalRangeMin")!==c&&E.get("drawNormalOnTop")&&this.drawNormalRange(h,g,H,G,e),x=u.length,D=0;x>D;D++)F.drawShape(u[D],E.get("lineColor"),c,E.get("lineWidth")).append();if(J&&E.get("valueSpots"))for(y=E.get("valueSpots"),y.get===c&&(y=new s(y)),D=0;t>D;D++)A=y.get(C[D]),A&&F.drawCircle(h+b.round((B[D]-this.minx)*(G/a)),g+b.round(H-H*((C[D]-this.miny)/e)),J,c,A).append();J&&E.get("spotColor")&&null!==C[f]&&F.drawCircle(h+b.round((B[B.length-1]-this.minx)*(G/a)),g+b.round(H-H*((C[f]-this.miny)/e)),J,c,E.get("spotColor")).append(),this.maxy!==this.minyorg&&(J&&E.get("minSpotColor")&&(l=B[d.inArray(this.minyorg,C)],F.drawCircle(h+b.round((l-this.minx)*(G/a)),g+b.round(H-H*((this.minyorg-this.miny)/e)),J,c,E.get("minSpotColor")).append()),J&&E.get("maxSpotColor")&&(l=B[d.inArray(this.maxyorg,C)],F.drawCircle(h+b.round((l-this.minx)*(G/a)),g+b.round(H-H*((this.maxyorg-this.miny)/e)),J,c,E.get("maxSpotColor")).append())),this.lastShapeId=F.getLastShapeId(),this.canvasTop=g,F.render()}}}),d.fn.sparkline.bar=x=f(d.fn.sparkline._base,v,{type:"bar",init:function(a,e,f,g,i){var m,n,o,p,q,r,t,u,v,w,y,z,A,B,C,D,E,F,G,H,I,J,K=parseInt(f.get("barWidth"),10),L=parseInt(f.get("barSpacing"),10),M=f.get("chartRangeMin"),N=f.get("chartRangeMax"),O=f.get("chartRangeClip"),P=1/0,Q=-(1/0);for(x._super.init.call(this,a,e,f,g,i),r=0,t=e.length;t>r;r++)H=e[r],m="string"==typeof H&&H.indexOf(":")>-1,(m||d.isArray(H))&&(C=!0,m&&(H=e[r]=k(H.split(":"))),H=l(H,null),n=b.min.apply(b,H),o=b.max.apply(b,H),P>n&&(P=n),o>Q&&(Q=o));this.stacked=C,this.regionShapes={},this.barWidth=K,this.barSpacing=L,this.totalBarWidth=K+L,this.width=g=e.length*K+(e.length-1)*L,this.initTarget(),O&&(A=M===c?-(1/0):M,B=N===c?1/0:N),q=[],p=C?[]:q;var R=[],S=[];for(r=0,t=e.length;t>r;r++)if(C)for(D=e[r],e[r]=G=[],R[r]=0,p[r]=S[r]=0,E=0,F=D.length;F>E;E++)H=G[E]=O?h(D[E],A,B):D[E],null!==H&&(H>0&&(R[r]+=H),0>P&&Q>0?0>H?S[r]+=b.abs(H):p[r]+=H:p[r]+=b.abs(H-(0>H?Q:P)),q.push(H));else H=O?h(e[r],A,B):e[r],H=e[r]=j(H),null!==H&&q.push(H);this.max=z=b.max.apply(b,q),this.min=y=b.min.apply(b,q),this.stackMax=Q=C?b.max.apply(b,R):z,this.stackMin=P=C?b.min.apply(b,q):y,f.get("chartRangeMin")!==c&&(f.get("chartRangeClip")||f.get("chartRangeMin")z)&&(z=f.get("chartRangeMax")),this.zeroAxis=v=f.get("zeroAxis",!0),w=0>=y&&z>=0&&v?0:0==v?y:y>0?y:z,this.xaxisOffset=w,u=C?b.max.apply(b,p)+b.max.apply(b,S):z-y,this.canvasHeightEf=v&&0>y?this.canvasHeight-2:this.canvasHeight-1,w>y?(J=C&&z>=0?Q:z,I=(J-w)/u*this.canvasHeight,I!==b.ceil(I)&&(this.canvasHeightEf-=2,I=b.ceil(I))):I=this.canvasHeight,this.yoffset=I,d.isArray(f.get("colorMap"))?(this.colorMapByIndex=f.get("colorMap"),this.colorMapByValue=null):(this.colorMapByIndex=null,this.colorMapByValue=f.get("colorMap"),this.colorMapByValue&&this.colorMapByValue.get===c&&(this.colorMapByValue=new s(this.colorMapByValue))),this.range=u},getRegion:function(a,d){var e=b.floor(d/this.totalBarWidth);return 0>e||e>=this.values.length?c:e},getCurrentRegionFields:function(){var a,b,c=this.currentRegion,d=q(this.values[c]),e=[];for(b=d.length;b--;)a=d[b],e.push({isNull:null===a,value:a,color:this.calcColor(b,a,c),offset:c});return e},calcColor:function(a,b,e){var f,g,h=this.colorMapByIndex,i=this.colorMapByValue,j=this.options;return f=j.get(this.stacked?"stackedBarColor":0>b?"negBarColor":"barColor"),0===b&&j.get("zeroColor")!==c&&(f=j.get("zeroColor")),i&&(g=i.get(b))?f=g:h&&h.length>e&&(f=h[e]),d.isArray(f)?f[a%f.length]:f},renderRegion:function(a,e){var f,g,h,i,j,k,l,m,o,p,q=this.values[a],r=this.options,s=this.xaxisOffset,t=[],u=this.range,v=this.stacked,w=this.target,x=a*this.totalBarWidth,y=this.canvasHeightEf,z=this.yoffset;if(q=d.isArray(q)?q:[q],l=q.length,m=q[0],i=n(null,q),p=n(s,q,!0),i)return r.get("nullColor")?(h=e?r.get("nullColor"):this.calcHighlightColor(r.get("nullColor"),r),f=z>0?z-1:z,w.drawRect(x,f,this.barWidth-1,0,h,h)):c;for(j=z,k=0;l>k;k++){if(m=q[k],v&&m===s){if(!p||o)continue;o=!0}g=u>0?b.floor(y*(b.abs(m-s)/u))+1:1,s>m||m===s&&0===z?(f=j,j+=g):(f=z-g,z-=g),h=this.calcColor(k,m,a),e&&(h=this.calcHighlightColor(h,r)),t.push(w.drawRect(x,f,this.barWidth-1,g-1,h,h))}return 1===t.length?t[0]:t}}),d.fn.sparkline.tristate=y=f(d.fn.sparkline._base,v,{type:"tristate",init:function(a,b,e,f,g){var h=parseInt(e.get("barWidth"),10),i=parseInt(e.get("barSpacing"),10);y._super.init.call(this,a,b,e,f,g),this.regionShapes={},this.barWidth=h,this.barSpacing=i,this.totalBarWidth=h+i,this.values=d.map(b,Number),this.width=f=b.length*h+(b.length-1)*i,d.isArray(e.get("colorMap"))?(this.colorMapByIndex=e.get("colorMap"),this.colorMapByValue=null):(this.colorMapByIndex=null,this.colorMapByValue=e.get("colorMap"),this.colorMapByValue&&this.colorMapByValue.get===c&&(this.colorMapByValue=new s(this.colorMapByValue))),this.initTarget()},getRegion:function(a,c){return b.floor(c/this.totalBarWidth)},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],color:this.calcColor(this.values[a],a),offset:a}},calcColor:function(a,b){var c,d,e=this.values,f=this.options,g=this.colorMapByIndex,h=this.colorMapByValue;return c=h&&(d=h.get(a))?d:g&&g.length>b?g[b]:f.get(e[b]<0?"negBarColor":e[b]>0?"posBarColor":"zeroBarColor")},renderRegion:function(a,c){var d,e,f,g,h,i,j=this.values,k=this.options,l=this.target;return d=l.pixelHeight,f=b.round(d/2),g=a*this.totalBarWidth,j[a]<0?(h=f,e=f-1):j[a]>0?(h=0,e=f-1):(h=f-1,e=2),i=this.calcColor(j[a],a),null!==i?(c&&(i=this.calcHighlightColor(i,k)),l.drawRect(g,h,this.barWidth-1,e-1,i,i)):void 0}}),d.fn.sparkline.discrete=z=f(d.fn.sparkline._base,v,{type:"discrete",init:function(a,e,f,g,h){z._super.init.call(this,a,e,f,g,h),this.regionShapes={},this.values=e=d.map(e,Number),this.min=b.min.apply(b,e),this.max=b.max.apply(b,e),this.range=this.max-this.min,this.width=g="auto"===f.get("width")?2*e.length:this.width,this.interval=b.floor(g/e.length),this.itemWidth=g/e.length,f.get("chartRangeMin")!==c&&(f.get("chartRangeClip")||f.get("chartRangeMin")this.max)&&(this.max=f.get("chartRangeMax")),this.initTarget(),this.target&&(this.lineHeight="auto"===f.get("lineHeight")?b.round(.3*this.canvasHeight):f.get("lineHeight"))},getRegion:function(a,c){return b.floor(c/this.itemWidth)},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],offset:a}},renderRegion:function(a,c){var d,e,f,g,i=this.values,j=this.options,k=this.min,l=this.max,m=this.range,n=this.interval,o=this.target,p=this.canvasHeight,q=this.lineHeight,r=p-q;return e=h(i[a],k,l),g=a*n,d=b.round(r-r*((e-k)/m)),f=j.get(j.get("thresholdColor")&&eh?h:0:e.get("base"),this.min=h,this.max=i,this.range=i-h,this.shapes={},this.valueShapes={},this.regiondata={},this.width=f="auto"===e.get("width")?"4.0em":f,this.target=this.$el.simpledraw(f,g,e.get("composite")),d.length||(this.disabled=!0),this.initTarget()},getRegion:function(a,b,d){var e=this.target.getShapeAt(a,b,d);return e!==c&&this.shapes[e]!==c?this.shapes[e]:c},getCurrentRegionFields:function(){var a=this.currentRegion;return{fieldkey:a.substr(0,1),value:this.values[a.substr(1)],region:a}},changeHighlight:function(a){var b,c=this.currentRegion,d=this.valueShapes[c];switch(delete this.shapes[d],c.substr(0,1)){case"r":b=this.renderRange(c.substr(1),a);break;case"p":b=this.renderPerformance(a);break;case"t":b=this.renderTarget(a)}this.valueShapes[c]=b.id,this.shapes[b.id]=c,this.target.replaceWithShape(d,b)},renderRange:function(a,c){var d=this.values[a],e=b.round(this.canvasWidth*((d-this.min)/this.range)),f=this.options.get("rangeColors")[a-2];return c&&(f=this.calcHighlightColor(f,this.options)),this.target.drawRect(0,0,e-1,this.canvasHeight-1,f,f)},renderPerformance:function(a){var c=this.values[1],d=b.round(this.canvasWidth*((c-this.min)/this.range)),e=this.options.get("performanceColor");return a&&(e=this.calcHighlightColor(e,this.options)),this.target.drawRect(0,b.round(.3*this.canvasHeight),d-1,b.round(.4*this.canvasHeight)-1,e,e)},renderTarget:function(a){var c=this.values[0],d=b.round(this.canvasWidth*((c-this.min)/this.range)-this.options.get("targetWidth")/2),e=b.round(.1*this.canvasHeight),f=this.canvasHeight-2*e,g=this.options.get("targetColor");return a&&(g=this.calcHighlightColor(g,this.options)),this.target.drawRect(d,e,this.options.get("targetWidth")-1,f-1,g,g)},render:function(){var a,b,c=this.values.length,d=this.target;if(A._super.render.call(this)){for(a=2;c>a;a++)b=this.renderRange(a).append(),this.shapes[b.id]="r"+a,this.valueShapes["r"+a]=b.id;null!==this.values[1]&&(b=this.renderPerformance().append(),this.shapes[b.id]="p1",this.valueShapes.p1=b.id),null!==this.values[0]&&(b=this.renderTarget().append(),this.shapes[b.id]="t0",this.valueShapes.t0=b.id),d.render()}}}),d.fn.sparkline.pie=B=f(d.fn.sparkline._base,{type:"pie",init:function(a,c,e,f,g){var h,i=0;if(B._super.init.call(this,a,c,e,f,g),this.shapes={},this.valueShapes={},this.values=c=d.map(c,Number),"auto"===e.get("width")&&(this.width=this.height),c.length>0)for(h=c.length;h--;)i+=c[h];this.total=i,this.initTarget(),this.radius=b.floor(b.min(this.canvasWidth,this.canvasHeight)/2)},getRegion:function(a,b,d){var e=this.target.getShapeAt(a,b,d);return e!==c&&this.shapes[e]!==c?this.shapes[e]:c},getCurrentRegionFields:function(){var a=this.currentRegion;return{isNull:this.values[a]===c,value:this.values[a],percent:this.values[a]/this.total*100,color:this.options.get("sliceColors")[a%this.options.get("sliceColors").length],offset:a}},changeHighlight:function(a){var b=this.currentRegion,c=this.renderSlice(b,a),d=this.valueShapes[b];delete this.shapes[d],this.target.replaceWithShape(d,c),this.valueShapes[b]=c.id,this.shapes[c.id]=b},renderSlice:function(a,d){var e,f,g,h,i,j=this.target,k=this.options,l=this.radius,m=k.get("borderWidth"),n=k.get("offset"),o=2*b.PI,p=this.values,q=this.total,r=n?2*b.PI*(n/360):0;for(h=p.length,g=0;h>g;g++){if(e=r,f=r,q>0&&(f=r+o*(p[g]/q)),a===g)return i=k.get("sliceColors")[g%k.get("sliceColors").length],d&&(i=this.calcHighlightColor(i,k)),j.drawPieSlice(l,l,l-m,e,f,c,i);r=f}},render:function(){var a,d,e=this.target,f=this.values,g=this.options,h=this.radius,i=g.get("borderWidth");if(B._super.render.call(this)){ +for(i&&e.drawCircle(h,h,b.floor(h-i/2),g.get("borderColor"),c,i).append(),d=f.length;d--;)f[d]&&(a=this.renderSlice(d).append(),this.valueShapes[d]=a.id,this.shapes[a.id]=d);e.render()}}}),d.fn.sparkline.box=C=f(d.fn.sparkline._base,{type:"box",init:function(a,b,c,e,f){C._super.init.call(this,a,b,c,e,f),this.values=d.map(b,Number),this.width="auto"===c.get("width")?"4.0em":e,this.initTarget(),this.values.length||(this.disabled=1)},getRegion:function(){return 1},getCurrentRegionFields:function(){var a=[{field:"lq",value:this.quartiles[0]},{field:"med",value:this.quartiles[1]},{field:"uq",value:this.quartiles[2]}];return this.loutlier!==c&&a.push({field:"lo",value:this.loutlier}),this.routlier!==c&&a.push({field:"ro",value:this.routlier}),this.lwhisker!==c&&a.push({field:"lw",value:this.lwhisker}),this.rwhisker!==c&&a.push({field:"rw",value:this.rwhisker}),a},render:function(){var a,d,e,f,g,h,j,k,l,m,n,o=this.target,p=this.values,q=p.length,r=this.options,s=this.canvasWidth,t=this.canvasHeight,u=r.get("chartRangeMin")===c?b.min.apply(b,p):r.get("chartRangeMin"),v=r.get("chartRangeMax")===c?b.max.apply(b,p):r.get("chartRangeMax"),w=0;if(C._super.render.call(this)){if(r.get("raw"))r.get("showOutliers")&&p.length>5?(d=p[0],a=p[1],f=p[2],g=p[3],h=p[4],j=p[5],k=p[6]):(a=p[0],f=p[1],g=p[2],h=p[3],j=p[4]);else if(p.sort(function(a,b){return a-b}),f=i(p,1),g=i(p,2),h=i(p,3),e=h-f,r.get("showOutliers")){for(a=j=c,l=0;q>l;l++)a===c&&p[l]>f-e*r.get("outlierIQR")&&(a=p[l]),p[l]d&&o.drawCircle((d-u)*n+w,t/2,r.get("spotRadius"),r.get("outlierLineColor"),r.get("outlierFillColor")).append(),k>j&&o.drawCircle((k-u)*n+w,t/2,r.get("spotRadius"),r.get("outlierLineColor"),r.get("outlierFillColor")).append()),o.drawRect(b.round((f-u)*n+w),b.round(.1*t),b.round((h-f)*n),b.round(.8*t),r.get("boxLineColor"),r.get("boxFillColor")).append(),o.drawLine(b.round((a-u)*n+w),b.round(t/2),b.round((f-u)*n+w),b.round(t/2),r.get("lineColor")).append(),o.drawLine(b.round((a-u)*n+w),b.round(t/4),b.round((a-u)*n+w),b.round(t-t/4),r.get("whiskerColor")).append(),o.drawLine(b.round((j-u)*n+w),b.round(t/2),b.round((h-u)*n+w),b.round(t/2),r.get("lineColor")).append(),o.drawLine(b.round((j-u)*n+w),b.round(t/4),b.round((j-u)*n+w),b.round(t-t/4),r.get("whiskerColor")).append(),o.drawLine(b.round((g-u)*n+w),b.round(.1*t),b.round((g-u)*n+w),b.round(.9*t),r.get("medianColor")).append(),r.get("target")&&(m=b.ceil(r.get("spotRadius")),o.drawLine(b.round((r.get("target")-u)*n+w),b.round(t/2-m),b.round((r.get("target")-u)*n+w),b.round(t/2+m),r.get("targetColor")).append(),o.drawLine(b.round((r.get("target")-u)*n+w-m),b.round(t/2),b.round((r.get("target")-u)*n+w+m),b.round(t/2),r.get("targetColor")).append()),o.render()}}}),F=f({init:function(a,b,c,d){this.target=a,this.id=b,this.type=c,this.args=d},append:function(){return this.target.appendShape(this),this}}),G=f({_pxregex:/(\d+)(px)?\s*$/i,init:function(a,b,c){a&&(this.width=a,this.height=b,this.target=c,this.lastShapeId=null,c[0]&&(c=c[0]),d.data(c,"_jqs_vcanvas",this))},drawLine:function(a,b,c,d,e,f){return this.drawShape([[a,b],[c,d]],e,f)},drawShape:function(a,b,c,d){return this._genShape("Shape",[a,b,c,d])},drawCircle:function(a,b,c,d,e,f){return this._genShape("Circle",[a,b,c,d,e,f])},drawPieSlice:function(a,b,c,d,e,f,g){return this._genShape("PieSlice",[a,b,c,d,e,f,g])},drawRect:function(a,b,c,d,e,f){return this._genShape("Rect",[a,b,c,d,e,f])},getElement:function(){return this.canvas},getLastShapeId:function(){return this.lastShapeId},reset:function(){alert("reset not implemented")},_insert:function(a,b){d(b).html(a)},_calculatePixelDims:function(a,b,c){var e;e=this._pxregex.exec(b),this.pixelHeight=e?e[1]:d(c).height(),e=this._pxregex.exec(a),this.pixelWidth=e?e[1]:d(c).width()},_genShape:function(a,b){var c=L++;return b.unshift(c),new F(this,c,a,b)},appendShape:function(){alert("appendShape not implemented")},replaceWithShape:function(){alert("replaceWithShape not implemented")},insertAfterShape:function(){alert("insertAfterShape not implemented")},removeShapeId:function(){alert("removeShapeId not implemented")},getShapeAt:function(){alert("getShapeAt not implemented")},render:function(){alert("render not implemented")}}),H=f(G,{init:function(b,e,f,g){H._super.init.call(this,b,e,f),this.canvas=a.createElement("canvas"),f[0]&&(f=f[0]),d.data(f,"_jqs_vcanvas",this),d(this.canvas).css({display:"inline-block",width:b,height:e,verticalAlign:"top"}),this._insert(this.canvas,f),this._calculatePixelDims(b,e,this.canvas),this.canvas.width=this.pixelWidth,this.canvas.height=this.pixelHeight,this.interact=g,this.shapes={},this.shapeseq=[],this.currentTargetShapeId=c,d(this.canvas).css({width:this.pixelWidth,height:this.pixelHeight})},_getContext:function(a,b,d){var e=this.canvas.getContext("2d");return a!==c&&(e.strokeStyle=a),e.lineWidth=d===c?1:d,b!==c&&(e.fillStyle=b),e},reset:function(){var a=this._getContext();a.clearRect(0,0,this.pixelWidth,this.pixelHeight),this.shapes={},this.shapeseq=[],this.currentTargetShapeId=c},_drawShape:function(a,b,d,e,f){var g,h,i=this._getContext(d,e,f);for(i.beginPath(),i.moveTo(b[0][0]+.5,b[0][1]+.5),g=1,h=b.length;h>g;g++)i.lineTo(b[g][0]+.5,b[g][1]+.5);d!==c&&i.stroke(),e!==c&&i.fill(),this.targetX!==c&&this.targetY!==c&&i.isPointInPath(this.targetX,this.targetY)&&(this.currentTargetShapeId=a)},_drawCircle:function(a,d,e,f,g,h,i){var j=this._getContext(g,h,i);j.beginPath(),j.arc(d,e,f,0,2*b.PI,!1),this.targetX!==c&&this.targetY!==c&&j.isPointInPath(this.targetX,this.targetY)&&(this.currentTargetShapeId=a),g!==c&&j.stroke(),h!==c&&j.fill()},_drawPieSlice:function(a,b,d,e,f,g,h,i){var j=this._getContext(h,i);j.beginPath(),j.moveTo(b,d),j.arc(b,d,e,f,g,!1),j.lineTo(b,d),j.closePath(),h!==c&&j.stroke(),i&&j.fill(),this.targetX!==c&&this.targetY!==c&&j.isPointInPath(this.targetX,this.targetY)&&(this.currentTargetShapeId=a)},_drawRect:function(a,b,c,d,e,f,g){return this._drawShape(a,[[b,c],[b+d,c],[b+d,c+e],[b,c+e],[b,c]],f,g)},appendShape:function(a){return this.shapes[a.id]=a,this.shapeseq.push(a.id),this.lastShapeId=a.id,a.id},replaceWithShape:function(a,b){var c,d=this.shapeseq;for(this.shapes[b.id]=b,c=d.length;c--;)d[c]==a&&(d[c]=b.id);delete this.shapes[a]},replaceWithShapes:function(a,b){var c,d,e,f=this.shapeseq,g={};for(d=a.length;d--;)g[a[d]]=!0;for(d=f.length;d--;)c=f[d],g[c]&&(f.splice(d,1),delete this.shapes[c],e=d);for(d=b.length;d--;)f.splice(e,0,b[d].id),this.shapes[b[d].id]=b[d]},insertAfterShape:function(a,b){var c,d=this.shapeseq;for(c=d.length;c--;)if(d[c]===a)return d.splice(c+1,0,b.id),void(this.shapes[b.id]=b)},removeShapeId:function(a){var b,c=this.shapeseq;for(b=c.length;b--;)if(c[b]===a){c.splice(b,1);break}delete this.shapes[a]},getShapeAt:function(a,b,c){return this.targetX=b,this.targetY=c,this.render(),this.currentTargetShapeId},render:function(){var a,b,c,d=this.shapeseq,e=this.shapes,f=d.length,g=this._getContext();for(g.clearRect(0,0,this.pixelWidth,this.pixelHeight),c=0;f>c;c++)a=d[c],b=e[a],this["_draw"+b.type].apply(this,b.args);this.interact||(this.shapes={},this.shapeseq=[])}}),I=f(G,{init:function(b,c,e){var f;I._super.init.call(this,b,c,e),e[0]&&(e=e[0]),d.data(e,"_jqs_vcanvas",this),this.canvas=a.createElement("span"),d(this.canvas).css({display:"inline-block",position:"relative",overflow:"hidden",width:b,height:c,margin:"0px",padding:"0px",verticalAlign:"top"}),this._insert(this.canvas,e),this._calculatePixelDims(b,c,this.canvas),this.canvas.width=this.pixelWidth,this.canvas.height=this.pixelHeight,f='',this.canvas.insertAdjacentHTML("beforeEnd",f),this.group=d(this.canvas).children()[0],this.rendered=!1,this.prerender=""},_drawShape:function(a,b,d,e,f){var g,h,i,j,k,l,m,n=[];for(m=0,l=b.length;l>m;m++)n[m]=""+b[m][0]+","+b[m][1];return g=n.splice(0,1),f=f===c?1:f,h=d===c?' stroked="false" ':' strokeWeight="'+f+'px" strokeColor="'+d+'" ',i=e===c?' filled="false"':' fillColor="'+e+'" filled="true" ',j=n[0]===n[n.length-1]?"x ":"",k=' '},_drawCircle:function(a,b,d,e,f,g,h){var i,j,k;return b-=e,d-=e,i=f===c?' stroked="false" ':' strokeWeight="'+h+'px" strokeColor="'+f+'" ',j=g===c?' filled="false"':' fillColor="'+g+'" filled="true" ',k=''},_drawPieSlice:function(a,d,e,f,g,h,i,j){var k,l,m,n,o,p,q,r;if(g===h)return"";if(h-g===2*b.PI&&(g=0,h=2*b.PI),l=d+b.round(b.cos(g)*f),m=e+b.round(b.sin(g)*f),n=d+b.round(b.cos(h)*f),o=e+b.round(b.sin(h)*f),l===n&&m===o){if(h-g ')},_drawRect:function(a,b,c,d,e,f,g){return this._drawShape(a,[[b,c],[b,c+e],[b+d,c+e],[b+d,c],[b,c]],f,g)},reset:function(){this.group.innerHTML=""},appendShape:function(a){var b=this["_draw"+a.type].apply(this,a.args);return this.rendered?this.group.insertAdjacentHTML("beforeEnd",b):this.prerender+=b,this.lastShapeId=a.id,a.id},replaceWithShape:function(a,b){var c=d("#jqsshape"+a),e=this["_draw"+b.type].apply(this,b.args);c[0].outerHTML=e},replaceWithShapes:function(a,b){var c,e=d("#jqsshape"+a[0]),f="",g=b.length;for(c=0;g>c;c++)f+=this["_draw"+b[c].type].apply(this,b[c].args);for(e[0].outerHTML=f,c=1;c')}d.fixedViewport&&e.append(''),d.fullScreen&&(e.append(''),d.statusBar&&e.append(''));var g=[];d.slideInSelector&&g.push(d.slideInSelector),d.flipSelector&&g.push(d.flipSelector),d.slideUpSelector&&g.push(d.slideUpSelector),g.length>0&&(a(g.join(", ")).live("click",function(){var b=a(this),c=b.attr("hash"),e="slideInOut";if(a(this).is(d.flipSelector)&&(e="flip"),a(this).is(d.slideUpSelector)&&(e="slideUp"),c&&"#"!=c)b.attr("selected","true"),a.fn.jQTouch.showPage(a(c),e),setTimeout(a.fn.unselect,350,a(this));else if("#"!=b.attr("href")){b.attr("selected","progress");try{a.fn.jQTouch.showPageByHref(a(this).attr("href"),null,null,null,e,function(){setTimeout(a.fn.unselect,350,b)})}catch(f){console.log(f)}}return!1}),a(function(){var b=a.fn.jQTouch.getSelectedPage();b&&a.fn.jQTouch.showPage(b),a.fn.jQTouch.startCheck()}))},a.fn.ianimate=function(a,b,c){if(0===b)this.css(a),window.setTimeout(c,0);else{var d=[];for(var e in a)d.push(e);this.css({webkitTransitionProperty:d.join(", "),webkitTransitionDuration:b+"ms",webkitTransitionTimingFunction:"ease-in-out"}),window.setTimeout(function(a,b){a.css(b)},0,this,a),window.setTimeout(c,b)}return this},a.fn.jQTouch.checkOrientAndLocation=function(){if(window.innerWidth!=g){g=window.innerWidth,currentHeight=window.innerHeight;var b=g *[selected!=false]").slice(0,1)},a.fn.jQTouch.showPage=function(b,e,f){if(b){d&&(d.attr("selected",null),d=null);var g=c;c=b,g?a.fn.jQTouch.animatePages(g,b,e,f):a.fn.jQTouch.updatePage(b,g,e)}},a.fn.jQTouch.showPageById=function(b){var c=a(b);if(c){var d,f=h.indexOf(e),g=h.indexOf(b),j=-1!=g;j&&(d=i[f].transition,h.splice(g,h.length),i.splice(g,i.length)),a.fn.jQTouch.showPage(c,d,j)}},a.fn.jQTouch.insertPages=function(b,c){var d;b.each(function(){a(this).attr("id")||a(this).attr("id",++j),a(this).appendTo(a("body")),("true"==a(this).attr("selected")||!d&&!a(this).hasClass("btn"))&&(d=a(this))}),d&&a.fn.jQTouch.showPage(d,c)},a.fn.jQTouch.showPageByHref=function(b,c,d,e,f,g){a.ajax({url:b,data:c,type:d||"GET",success:function(b){a('a[selected="progress"]').attr("selected","true"),e?a(e).replaceWith(b):a.fn.jQTouch.insertPages(a(b)),g&&g(!0)},error:function(){g&&g(!1)}})},a.fn.jQTouch.submitForm=function(){return a.fn.jQTouch.showPageByHref(a(this).attr("action")||"POST",a(this).serialize(),a(this).attr("method")),!1},a.fn.showForm=function(){return this.each(function(){a(this).submit(a.fn.jQTouch.submitForm)})},a.fn.jQTouch.animatePages=function(c,d,e,f){clearInterval(b),"flip"==e?(d.flip({backwards:f}),c.flip({backwards:f})):"slideUp"==e?f?(d.attr("selected",!0),c.slideUpDown({backwards:f})):d.slideUpDown({backwards:f}):(d.slideInOut({backwards:f}),c.slideInOut({backwards:f})),setTimeout(function(){c.attr("selected","false"),a.fn.jQTouch.updatePage(d,c,e),a.fn.jQTouch.startCheck()},500)},a.fn.jQTouch.startCheck=function(){b=setInterval(a.fn.jQTouch.checkOrientAndLocation,350)},a.fn.jQTouch.updatePage=function(a,b,c){a&&(a.attr("id")||a.attr("id",++j),location.replace(f+a.attr("id")),e=location.hash,h.push(e),i.push({page:a,transition:c}),"form"!=a.attr("localName")||a.attr("target")||a.showForm())},a.fn.unselect=function(a){a.attr("selected",!1)},a.preloadImages=function(a){for(var b=a.length-1;b>=0;b--)(new Image).src=a[b]},a.fn.flip=function(b){this.each(function(){var c={direction:"toggle",backwards:!1},d=a.extend({},c,b),e="toggle"==d.direction&&"true"==a(this).attr("selected")||"out"==d.direction?1:-1;-1==e&&a(this).attr("selected","true"),a(this).parent().css({webkitPerspective:"2000"}),a(this).css({"-webkit-backface-visibility":"hidden","-webkit-transform":"rotateY("+(1==e?"0":(d.backwards?"":"-")+"180")+"deg)"}).ianimate({"-webkit-transform":"rotateY("+(1==e?(d.backwards?"-":"")+"180":"0")+"deg)"},350)})},a.fn.slideInOut=function(b){var c={direction:"toggle",backwards:!1},d=a.extend({},c,b);this.each(function(){var b="toggle"==d.direction&&"true"==a(this).attr("selected")||"out"==d.direction?1:-1;-1==b?a(this).attr("selected","true").css({"-webkit-transform":"translateX("+(d.backwards?-1:1)*g+"px)"}).ianimate({"-webkit-transform":"translateX(0px)"},350).find("h1, .button").css("opacity",0).ianimate({opacity:1},100):a(this).ianimate({"-webkit-transform":"translateX("+(d.backwards?1:-1)*b*g+"px)"},350).find("h1, .button").ianimate({opacity:0},100)})},a.fn.slideUpDown=function(b){var c={direction:"toggle",backwards:!1},d=a.extend({},c,b);this.each(function(){var b="toggle"==d.direction&&"true"==a(this).attr("selected")||"out"==d.direction?1:-1;-1==b?a(this).attr("selected","true").css({"-webkit-transform":"translateY("+(d.backwards?-1:1)*currentHeight+"px)"}).ianimate({"-webkit-transform":"translateY(0px)"},350).find("h1, .button").css("opacity",0).ianimate({opacity:1},100):a(this).ianimate({"-webkit-transform":"translateY("+currentHeight+"px)"},350).find("h1, .button").ianimate({opacity:0},100)})}}(jQuery); +!function(){$.jQTouch=function(a){function b(a){void 0!==window.console&&F.debug===!0&&console.warn(a)}function c(a){"string"==typeof a.selector&&"string"==typeof a.name&&O.push(a)}function d(a){"string"==typeof a.name&&"function"==typeof a.isSupported&&"function"==typeof a.fn&&N.push(a)}function e(a,b){D.unshift({page:a,animation:b,hash:"#"+a.attr("id"),id:a.attr("id")})}function f(a){var c=$(a.target);c.is(I.join(", "))||(c=$(a.target).closest(I.join(", "))),c&&c.attr("href")&&!c.isExternalLink()?(b("Need to prevent default click behavior."),a.preventDefault()):b("No need to prevent default click behavior."),$.support.touch?b("Not converting click to a tap event because touch handler is on the job."):(b("Converting click event to a tap event because touch handlers are not present or off."),$(a.target).trigger("tap",a))}function g(a,c,d,f){function g(){var b=K;$.support.animationEvents&&d&&F.useAnimations?(a.unbind("webkitAnimationEnd",g),a.removeClass(i+" out inmotion"),i&&c.removeClass(i),B.removeClass("animating animating3d"),F.trackScrollPositions===!0&&(c.css("top",-c.data("lastScroll")),setTimeout(function(){c.css("top",0),window.scroll(0,c.data("lastScroll")),$(".scroll",c).each(function(){this.scrollTop=-$(this).data("lastScroll")})},0))):(a.removeClass(i+" out inmotion"),i&&c.removeClass(i),b+=260),setTimeout(function(){c.removeClass("in"),window.scroll(0,0)},b),a.unselect(),c.trigger("pageAnimationEnd",{direction:"in",animation:d,back:f}),a.trigger("pageAnimationEnd",{direction:"out",animation:d,back:f})}if(f=f?f:!1,void 0===c||0===c.length)return $.fn.unselect(),b("Target element is missing."),!1;if(c.hasClass("current"))return $.fn.unselect(),b("You are already on the page you are trying to navigate to."),!1;if($(":focus").trigger("blur"),a.trigger("pageAnimationStart",{direction:"out",back:f}),c.trigger("pageAnimationStart",{direction:"in",back:f}),$.support.animationEvents&&d&&F.useAnimations){!$.support.transform3d&&d.is3d&&(b("Did not detect support for 3d animations, falling back to "+F.defaultAnimation+"."),d.name=F.defaultAnimation);var i=d.name,j=d.is3d?"animating3d":"";f&&(i=i.replace(/left|right|up|down|in|out/,h)),b("finalAnimationName is "+i+"."),a.bind("webkitAnimationEnd",g),B.addClass("animating "+j);var k=window.pageYOffset;F.trackScrollPositions===!0&&c.css("top",window.pageYOffset-(c.data("lastScroll")||0)),c.addClass(i+" in current"),a.removeClass("current").addClass(i+" out inmotion"),F.trackScrollPositions===!0&&(a.data("lastScroll",k),$(".scroll",a).each(function(){$(this).data("lastScroll",this.scrollTop)}))}else c.addClass("current in"),a.removeClass("current"),g();return G=c,f?D.shift():e(G,d),r(G.attr("id")),!0}function h(a){var b={up:"down",down:"up",left:"right",right:"left","in":"out",out:"in"};return b[a]||a}function i(){return H}function j(){D.length<1&&b("History is empty."),1===D.length&&(b("You are on the first panel."),window.history.go(-1));var a=D[0],c=D[1];return g(a.page,c.page,a.animation,!0)?J:(b("Could not go back."),!1)}function k(a,c){var d=D[0].page;if("string"==typeof c)for(var e=0,f=O.length;f>e;e++)if(O[e].name===c){c=O[e];break}if("string"==typeof a){var h=$(a);if(h.length<1)return void t(a,{animation:c});a=h}return g(d,a,c)?J:(b("Could not animate pages."),!1)}function l(){return location.hash===D[0].hash?(b("We are on the right panel."),!0):""===location.hash?(j(),!0):D[1]&&location.hash===D[1].hash?(j(),!0):(b("Could not find ID in history, just forwarding to DOM element."),void k($(location.hash),F.defaultAnimation))}function m(){if(F.preloadImages)for(var a=F.preloadImages.length-1;a>=0;a--)(new Image).src=F.preloadImages[a];var b=F.addGlossToIcon?"":"-precomposed";F.icon&&(P+=''),F.icon4&&(P+=''),F.startupScreen&&(P+=''),F.fixedViewport&&(P+=''),F.fullScreen&&(P+='',F.statusBar&&(P+='')),P&&C.prepend(P)}function n(){$.fn.isExternalLink=function(){var a=$(this);return"_blank"===a.attr("target")||"external"===a.attr("rel")||a.is('a[href^="http://maps.google.com"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]')},$.fn.makeActive=function(){return $(this).addClass("active")},$.fn.unselect=function(a){a?a.removeClass("active"):$(".active").removeClass("active")}}function o(a){for(var c,d=0,e=O.length;e>d;d++)if(a.is(O[d].selector)){c=O[d];break}return c||(b("Animation could not be found. Using "+F.defaultAnimation+"."),c=F.defaultAnimation),c}function p(a,b){var c=null,d=document.createElement("div");return d.innerHTML=a,$(d).children().each(function(){var a=$(this);a.attr("id")||a.attr("id","page-"+ ++E),$("#"+a.attr("id")).remove(),B.append(a),B.trigger("pageInserted",{page:a}),(a.hasClass("current")||!c)&&(c=a)}),null!==c?(k(c,b),c):!1}function q(){scrollTo(0,0),H=90===Math.abs(window.orientation)?"landscape":"portrait",B.removeClass("portrait landscape").addClass(H).trigger("turn",{orientation:H})}function r(a){F.updateHash&&(location.hash="#"+a.replace(/^#/,""))}function s(){$.support||($.support={}),$.support.animationEvents="undefined"!=typeof window.WebKitAnimationEvent,$.support.touch="undefined"!=typeof window.TouchEvent&&window.navigator.userAgent.indexOf("Mobile")>-1&&F.useFastTouch,$.support.transform3d=w(),$.support.ios5=x(),$.support.touch||b("This device does not support touch interaction, or it has been deactivated by the developer. Some features might be unavailable."),$.support.transform3d||b("This device does not support 3d animation. 2d animations will be used instead.");for(var a=0,g=L.length;g>a;a++){var h=L[a];$.isFunction(h)&&$.extend(J,h(J))}for(var i=0,j=M.length;j>i;i++)d(M[i]);A();for(var m=0,n=Q.animations.length;n>m;m++){var o=Q.animations[m];void 0!==F[o.name+"Selector"]&&(o.selector=F[o.name+"Selector"]),c(o)}I.push(F.touchSelector),I.push(F.backSelector),I.push(F.submitSelector),$(I.join(", ")).css("-webkit-touch-callout","none"),B=$("#jqt");var p=[];0===B.length&&(b('Could not find an element with the id "jqt", so the body id has been set to "jqt". If you are having any problems, wrapping your panels in a div with the id "jqt" might help.'),B=$(document.body).attr("id","jqt")),$.support.transform3d&&p.push("supports3d"),F.useTouchScroll&&p.push($.support.ios5?"touchscroll":"autoscroll"),F.fullScreenClass&&window.navigator.standalone===!0&&p.push(F.fullScreenClass,F.statusBar),B.addClass(p.join(" ")).bind("click",f).bind("orientationchange",q).bind("submit",u).bind("tap",z).bind($.support.touch?"touchstart":"mousedown",y).trigger("orientationchange"),$(window).bind("hashchange",l);var s=location.hash;G=0===$("#jqt > .current").length?$("#jqt > *:first-child").addClass("current"):$("#jqt > .current"),r(G.attr("id")),e(G),1===$(s).length&&k(s)}function t(a,b){var c={data:null,method:"GET",animation:null,callback:null,$referrer:null},d=$.extend({},c,b);"#"!==a?$.ajax({url:a,data:d.data,type:d.method,success:function(a){var b=p(a,d.animation);b&&("GET"===d.method&&F.cacheGetRequests===!0&&d.$referrer&&d.$referrer.attr("href","#"+b.attr("id")),d.callback&&d.callback(!0))},error:function(){d.$referrer&&d.$referrer.unselect(),d.callback&&d.callback(!1)}}):d.$referrer&&d.$referrer.unselect()}function u(a,b){$(":focus").trigger("blur"),a.preventDefault();var c="string"==typeof a?$(a).eq(0):$(a.target?a.target:a);return c.length&&c.is(F.formSelector)&&c.attr("action")?(t(c.attr("action"),{data:c.serialize(),method:c.attr("method")||"POST",animation:o(c),callback:b}),!1):!0}function v(a){var c=a.closest("form");return 0!==c.length?(b("About to submit parent form."),c.trigger("submit"),!1):(b("No parent form found."),!0)}function w(){var a,c,d,e,f;return a=document.getElementsByTagName("head")[0],c=document.body,d=document.createElement("style"),d.textContent="@media (transform-3d),(-o-transform-3d),(-moz-transform-3d),(-webkit-transform-3d){#jqt-3dtest{height:3px}}",e=document.createElement("div"),e.id="jqt-3dtest",a.appendChild(d),c.appendChild(e),f=3===e.offsetHeight,d.parentNode.removeChild(d),e.parentNode.removeChild(e),b("Support for 3d transforms: "+f+"."),f}function x(){var a=!1,b=/OS (\d+)(_\d+)* like Mac OS X/i,c=window.navigator.userAgent;return b.test(c)&&(a=b.exec(c)[1]>=5),a}function y(a){var b=$(a.target),c=I.join(", ");b.is(c)||(b=b.closest(c)),b.length&&b.attr("href")&&b.addClass("active"),b.on($.support.touch?"touchmove":"mousemove",function(){b.removeClass("active")}),b.on("touchend",function(){b.unbind("touchmove mousemove")})}function z(a){if(a.isDefaultPrevented())return!0;var c=$(a.target);if(c.is(I.join(", "))||(c=c.closest(I.join(", "))),!c.length||!c.attr("href"))return b("Could not find a link related to tapped element."),!0;for(var d=c.attr("target"),e=c.prop("hash"),f=c.attr("href"),g={e:a,$el:c,target:d,hash:e,href:f,jQTSettings:F},h=0,i=N.length;i>h;h++){var j=N[h],k=j.isSupported(a,g);if(k){var l=j.fn(a,g);return l}}}function A(){d({name:"external-link",isSupported:function(a,b){return b.$el.isExternalLink()},fn:function(a,b){return b.$el.unselect(),!0}}),d({name:"back-selector",isSupported:function(a,b){return b.$el.is(b.jQTSettings.backSelector)},fn:function(a,b){j(b.hash)}}),d({name:"submit-selector",isSupported:function(a,b){return b.$el.is(b.jQTSettings.submitSelector)},fn:function(a,b){v(b.$el)}}),d({name:"webapp",isSupported:function(a,b){return"_webapp"===b.target},fn:function(a,b){return window.location=b.href,!1}}),d({name:"no-op",isSupported:function(a,b){return"#"===b.href},fn:function(a,b){return b.$el.unselect(),!0}}),d({name:"standard",isSupported:function(a,b){return b.hash&&"#"!==b.hash},fn:function(a,b){var c=o(b.$el);return b.$el.addClass("active"),k($(b.hash).data("referrer",b.$el),c,b.$el.hasClass("reverse")),!1}}),d({name:"external",isSupported:function(){return!0},fn:function(a,b){var c=o(b.$el);return b.$el.addClass("loading active"),t(b.$el.attr("href"),{animation:c,callback:function(){b.$el.removeClass("loading"),setTimeout($.fn.unselect,250,b.$el)},$referrer:b.$el}),!1}})}var B,C=$("head"),D=[],E=0,F={},G="",H="portrait",I=[],J={},K=100,L=$.jQTouch.prototype.extensions,M=$.jQTouch.prototype.tapHandlers,N=[],O=[],P="",Q={addGlossToIcon:!0,backSelector:".back, .cancel, .goback",cacheGetRequests:!0,debug:!0,defaultAnimation:"slideleft",fixedViewport:!0,formSelector:"form",fullScreen:!0,fullScreenClass:"fullscreen",icon:null,icon4:null,preloadImages:!1,starter:$(document).ready,startupScreen:null,statusBar:"default",submitSelector:".submit",touchSelector:"a, .touch",trackScrollPositions:!0,updateHash:!0,useAnimations:!0,useFastTouch:!0,useTouchScroll:!0,animations:[{name:"cubeleft",selector:".cubeleft, .cube",is3d:!0},{name:"cuberight",selector:".cuberight",is3d:!0},{name:"dissolve",selector:".dissolve"},{name:"fade",selector:".fade"},{name:"flipleft",selector:".flipleft, .flip",is3d:!0},{name:"flipright",selector:".flipright",is3d:!0},{name:"pop",selector:".pop",is3d:!0},{name:"swapleft",selector:".swapleft, .swap",is3d:!0},{name:"swapright",selector:".swapright",is3d:!0},{name:"slidedown",selector:".slidedown"},{name:"slideright",selector:".slideright"},{name:"slideup",selector:".slideup"},{name:"slideleft",selector:".slideleft, .slide, #jqt > * > ul li a"}]};return F=$.extend({},Q,a),m(a),n(),J={addAnimation:c,animations:O,getOrientation:i,goBack:j,insertPages:p,goTo:k,history:D,settings:F,submitForm:u},F.starter(s),J},$.jQTouch.prototype.extensions=[],$.jQTouch.prototype.tapHandlers=[],$.jQTouch.addExtension=function(a){$.jQTouch.prototype.extensions.push(a)},$.jQTouch.addTapHandler=function(a){$.jQTouch.prototype.tapHandlers.push(a)}}(); //# sourceMappingURL=../../../maps/libs/jquery/jqtouch.js.map \ No newline at end of file diff --git a/static/scripts/libs/raven.js b/static/scripts/libs/raven.js index cdfa01fc6eb..dac5e7207b6 100644 --- a/static/scripts/libs/raven.js +++ b/static/scripts/libs/raven.js @@ -1,2 +1,2 @@ -!function(a,b){"use strict";function c(a,b){var c,d;b=b||{},a="raven"+a.substr(0,1).toUpperCase()+a.substr(1),document.createEvent?(c=document.createEvent("HTMLEvents"),c.initEvent(a,!0,!0)):(c=document.createEventObject(),c.eventType=a);for(d in b)l(b,d)&&(c[d]=b[d]);if(document.createEvent)document.dispatchEvent(c);else try{document.fireEvent("on"+c.eventType.toLowerCase(),c)}catch(e){}}function d(a){this.name="RavenConfigError",this.message=a}function e(a){var b=V.exec(a),c={},e=7;try{for(;e--;)c[U[e]]=b[e]||""}catch(f){throw new d("Invalid DSN: "+a)}if(c.pass)throw new d("Do not specify your private key in the DSN!");return c}function f(a){return"undefined"==typeof a}function g(a){return"function"==typeof a}function h(a){return"string"==typeof a}function i(a){return"object"==typeof a&&null!==a}function j(a){for(var b in a)return!1;return!0}function k(a){return i(a)&&"[object Error]"===R.toString.call(a)||a instanceof Error}function l(a,b){return R.hasOwnProperty.call(a,b)}function m(a,b){var c,d;if(f(a.length))for(c in a)l(a,c)&&b.call(null,c,a[c]);else if(d=a.length)for(c=0;d>c;c++)b.call(null,c,a[c])}function n(){M="?sentry_version=4&sentry_client=raven-js/"+T.VERSION+"&sentry_key="+K}function o(a,b){var d=[];a.stack&&a.stack.length&&m(a.stack,function(a,b){var c=p(b);c&&d.push(c)}),c("handle",{stackInfo:a,options:b}),r(a.name,a.message,a.url,a.lineno,d,b)}function p(a){if(a.url){var b,c={filename:a.url,lineno:a.line,colno:a.column,"function":a.func||"?"},d=q(a);if(d){var e=["pre_context","context_line","post_context"];for(b=3;b--;)c[e[b]]=d[b]}return c.in_app=!(!P.includePaths.test(c.filename)||/(Raven|TraceKit)\./.test(c.function)||/raven\.(min\.)?js$/.test(c.filename)),c}}function q(a){if(a.context&&P.fetchContext){for(var b=a.context,c=~~(b.length/2),d=b.length,e=!1;d--;)if(b[d].length>300){e=!0;break}if(e){if(f(a.column))return;return[[],b[c].substr(a.column,50),[]]}return[b.slice(0,c),b[c],b.slice(c+1)]}}function r(a,b,c,d,e,f){var g,h;b+="",("Error"!==a||b)&&(P.ignoreErrors.test(b)||(e&&e.length?(c=e[0].filename||c,e.reverse(),g={frames:e}):c&&(g={frames:[{filename:c,lineno:d,in_app:!0}]}),b=t(b,P.maxMessageLength),P.ignoreUrls&&P.ignoreUrls.test(c)||(!P.whitelistUrls||P.whitelistUrls.test(c))&&(h=d?b+" at "+d:b,w(s({exception:{type:a,value:b},stacktrace:g,culprit:c,message:h},f)))))}function s(a,b){return b?(m(b,function(b,c){a[b]=c}),a):a}function t(a,b){return a.length<=b?a:a.substr(0,b)+"…"}function u(){return+new Date}function v(){var a={url:document.location.href,headers:{"User-Agent":navigator.userAgent}};return document.referrer&&(a.headers.Referer=document.referrer),a}function w(a){y()&&(a=s({project:L,logger:P.logger,platform:"javascript",request:v()},a),a.tags=s(s({},P.tags),a.tags),a.extra=s(s({},P.extra),a.extra),a.extra=s({"session:duration":u()-S},a.extra),j(a.tags)&&delete a.tags,J&&(a.user=J),P.release&&(a.release=P.release),g(P.dataCallback)&&(a=P.dataCallback(a)),(!g(P.shouldSendCallback)||P.shouldSendCallback(a))&&(H=a.event_id||(a.event_id=A()),x(a)))}function x(a){var b=new Image,d=I+M+"&sentry_data="+encodeURIComponent(JSON.stringify(a));b.crossOrigin="anonymous",b.onload=function(){c("success",{data:a,src:d})},b.onerror=b.onabort=function(){c("failure",{data:a,src:d})},b.src=d}function y(){return O?I?!0:(B("error","Error: Raven has not been configured."),!1):!1}function z(a){for(var b,c=[],d=0,e=a.length;e>d;d++)b=a[d],h(b)?c.push(b.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")):b&&b.source&&c.push(b.source);return new RegExp(c.join("|"),"i")}function A(){return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}function B(b,c){a.console&&console[b]&&T.debug&&console[b](c)}function C(){var b=a.RavenConfig;b&&T.config(b.dsn,b.config).install()}var D={remoteFetching:!1,collectWindowErrors:!0,linesOfContext:7},E=[].slice,F="?";D.wrap=function(a){function b(){try{return a.apply(this,arguments)}catch(b){throw D.report(b),b}}return b},D.report=function(){function c(a){h(),o.push(a)}function d(a){for(var b=o.length-1;b>=0;--b)o[b]===a&&o.splice(b,1)}function e(){i(),o=[]}function f(a,b){var c=null;if(!b||D.collectWindowErrors){for(var d in o)if(l(o,d))try{o[d].apply(null,[a].concat(E.call(arguments,2)))}catch(e){c=e}if(c)throw c}}function g(a,b,c,d,e){var g=null;if(r)D.computeStackTrace.augmentStackTraceWithInitialElement(r,b,c,a),j();else if(e)g=D.computeStackTrace(e),f(g,!0);else{var h={url:b,line:c,column:d};h.func=D.computeStackTrace.guessFunctionName(h.url,h.line),h.context=D.computeStackTrace.gatherContext(h.url,h.line),g={message:a,url:document.location.href,stack:[h]},f(g,!0)}return m?m.apply(this,arguments):!1}function h(){n||(m=a.onerror,a.onerror=g,n=!0)}function i(){n&&(a.onerror=m,n=!1,m=b)}function j(){var a=r,b=p;p=null,r=null,q=null,f.apply(null,[a,!1].concat(b))}function k(b,c){var d=E.call(arguments,1);if(r){if(q===b)return;j()}var e=D.computeStackTrace(b);if(r=e,q=b,p=d,a.setTimeout(function(){q===b&&j()},e.incomplete?2e3:0),c!==!1)throw b}var m,n,o=[],p=null,q=null,r=null;return k.subscribe=c,k.unsubscribe=d,k.uninstall=e,k}(),D.computeStackTrace=function(){function b(b){if(!D.remoteFetching)return"";try{var c=function(){try{return new a.XMLHttpRequest}catch(b){return new a.ActiveXObject("Microsoft.XMLHTTP")}},d=c();return d.open("GET",b,!1),d.send(""),d.responseText}catch(e){return""}}function c(a){if(!h(a))return[];if(!l(u,a)){var c="";-1!==a.indexOf(document.domain)&&(c=b(a)),u[a]=c?c.split("\n"):[]}return u[a]}function d(a,b){var d,e=/function ([^(]*)\(([^)]*)\)/,g=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,h="",i=10,j=c(a);if(!j.length)return F;for(var k=0;i>k;++k)if(h=j[b-k]+h,!f(h)){if(d=g.exec(h))return d[1];if(d=e.exec(h))return d[1]}return F}function e(a,b){var d=c(a);if(!d.length)return null;var e=[],g=Math.floor(D.linesOfContext/2),h=g+D.linesOfContext%2,i=Math.max(0,b-g-1),j=Math.min(d.length,b+h-1);b-=1;for(var k=i;j>k;++k)f(d[k])||e.push(d[k]);return e.length>0?e:null}function g(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function i(a){return g(a).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function j(a,b){for(var d,e,f=0,g=b.length;g>f;++f)if((d=c(b[f])).length&&(d=d.join("\n"),e=a.exec(d)))return{url:b[f],line:d.substring(0,e.index).split("\n").length,column:e.index-d.lastIndexOf("\n",e.index)-1};return null}function k(a,b,d){var e,f=c(b),h=new RegExp("\\b"+g(a)+"\\b");return d-=1,f&&f.length>d&&(e=h.exec(f[d]))?e.index:null}function m(b){for(var c,d,e,f,h=[a.location.href],k=document.getElementsByTagName("script"),l=""+b,m=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,n=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,o=0;om;++m){if(b=h.exec(i[m]))c={url:b[3],func:b[1]||F,args:b[2]?b[2].split(","):"",line:+b[4],column:b[5]?+b[5]:null};else{if(!(b=g.exec(i[m])))continue;c={url:b[2],func:b[1]||F,line:+b[3],column:b[4]?+b[4]:null}}!c.func&&c.line&&(c.func=d(c.url,c.line)),c.line&&(c.context=e(c.url,c.line)),j.push(c)}return j.length?(j[0].line&&!j[0].column&&l?j[0].column=k(l[1],j[0].url,j[0].line):j[0].column||f(a.columnNumber)||(j[0].column=a.columnNumber+1),{name:a.name,message:a.message,url:document.location.href,stack:j}):null}function o(a){for(var b,c=a.stacktrace,f=/ line (\d+), column (\d+) in (?:]+)>|([^\)]+))\((.*)\) in (.*):\s*$/i,g=c.split("\n"),h=[],i=0,j=g.length;j>i;i+=2)if(b=f.exec(g[i])){var k={line:+b[1],column:+b[2],func:b[3]||b[4],args:b[5]?b[5].split(","):[],url:b[6]};if(!k.func&&k.line&&(k.func=d(k.url,k.line)),k.line)try{k.context=e(k.url,k.line)}catch(l){}k.context||(k.context=[g[i+1]]),h.push(k)}return h.length?{name:a.name,message:a.message,url:document.location.href,stack:h}:null}function p(b){var f=b.message.split("\n");if(f.length<4)return null;var g,h,k,m,n=/^\s*Line (\d+) of linked script ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,o=/^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,p=/^\s*Line (\d+) of function script\s*$/i,q=[],r=document.getElementsByTagName("script"),s=[];for(h in r)l(r,h)&&!r[h].src&&s.push(r[h]);for(h=2,k=f.length;k>h;h+=2){var t=null;if(g=n.exec(f[h]))t={url:g[2],func:g[3],line:+g[1]};else if(g=o.exec(f[h])){t={url:g[3],func:g[4]};var u=+g[1],v=s[g[2]-1];if(v&&(m=c(t.url))){m=m.join("\n");var w=m.indexOf(v.innerText);w>=0&&(t.line=u+m.substring(0,w).split("\n").length)}}else if(g=p.exec(f[h])){var x=a.location.href.replace(/#.*$/,""),y=g[1],z=new RegExp(i(f[h+1]));m=j(z,[x]),t={url:x,line:m?m.line:y,func:""}}if(t){t.func||(t.func=d(t.url,t.line));var A=e(t.url,t.line),B=A?A[Math.floor(A.length/2)]:null;t.context=A&&B.replace(/^\s*/,"")===f[h+1].replace(/^\s*/,"")?A:[f[h+1]],q.push(t)}}return q.length?{name:b.name,message:f[0],url:document.location.href,stack:q}:null}function q(a,b,c,f){var g={url:b,line:c};if(g.url&&g.line){a.incomplete=!1,g.func||(g.func=d(g.url,g.line)),g.context||(g.context=e(g.url,g.line));var h=/ '([^']+)' /.exec(f);if(h&&(g.column=k(h[1],g.url,g.line)),a.stack.length>0&&a.stack[0].url===g.url){if(a.stack[0].line===g.line)return!1;if(!a.stack[0].line&&a.stack[0].func===g.func)return a.stack[0].line=g.line,a.stack[0].context=g.context,!1}return a.stack.unshift(g),a.partial=!0,!0}return a.incomplete=!0,!1}function r(a,b){for(var c,e,f,g=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,h=[],i={},j=!1,l=r.caller;l&&!j;l=l.caller)if(l!==s&&l!==D.report){if(e={url:null,func:F,line:null,column:null},l.name?e.func=l.name:(c=g.exec(l.toString()))&&(e.func=c[1]),f=m(l)){e.url=f.url,e.line=f.line,e.func===F&&(e.func=d(e.url,e.line));var n=/ '([^']+)' /.exec(a.message||a.description);n&&(e.column=k(n[1],f.url,f.line))}i[""+l]?j=!0:i[""+l]=!0,h.push(e)}b&&h.splice(0,b);var o={name:a.name,message:a.message,url:document.location.href,stack:h};return q(o,a.sourceURL||a.fileName,a.line||a.lineNumber,a.message||a.description),o}function s(a,b){var c=null;b=null==b?0:+b;try{if(c=o(a))return c}catch(d){if(t)throw d}try{if(c=n(a))return c}catch(d){if(t)throw d}try{if(c=p(a))return c}catch(d){if(t)throw d}try{if(c=r(a,b+1))return c}catch(d){if(t)throw d}return{}}var t=!1,u={};return s.augmentStackTraceWithInitialElement=q,s.computeStackTraceFromStackProp=n,s.guessFunctionName=d,s.gatherContext=e,s}();var G,H,I,J,K,L,M,N=a.Raven,O=!("object"!=typeof JSON||!JSON.stringify),P={logger:"javascript",ignoreErrors:[],ignoreUrls:[],whitelistUrls:[],includePaths:[],collectWindowErrors:!0,tags:{},maxMessageLength:100,extra:{}},Q=!1,R=Object.prototype,S=u(),T={VERSION:"1.1.18",debug:!0,noConflict:function(){return a.Raven=N,T},config:function(a,b){if(I)return B("error","Error: Raven has already been configured"),T;if(!a)return T;var c=e(a),d=c.path.lastIndexOf("/"),f=c.path.substr(1,d);return b&&m(b,function(a,b){P[a]=b}),P.ignoreErrors.push(/^Script error\.?$/),P.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/),P.ignoreErrors=z(P.ignoreErrors),P.ignoreUrls=P.ignoreUrls.length?z(P.ignoreUrls):!1,P.whitelistUrls=P.whitelistUrls.length?z(P.whitelistUrls):!1,P.includePaths=z(P.includePaths),K=c.user,L=c.path.substr(d+1),I="//"+c.host+(c.port?":"+c.port:"")+"/"+f+"api/"+L+"/store/",c.protocol&&(I=c.protocol+":"+I),P.fetchContext&&(D.remoteFetching=!0),P.linesOfContext&&(D.linesOfContext=P.linesOfContext),D.collectWindowErrors=!!P.collectWindowErrors,n(),T},install:function(){return y()&&!Q&&(D.report.subscribe(o),Q=!0),T},context:function(a,c,d){return g(a)&&(d=c||[],c=a,a=b),T.wrap(a,c).apply(this,d)},wrap:function(a,c){function d(){for(var b=[],d=arguments.length,e=!a||a&&a.deep!==!1;d--;)b[d]=e?T.wrap(a,arguments[d]):arguments[d];try{return c.apply(this,b)}catch(f){throw T.captureException(f,a),f}}if(f(c)&&!g(a))return a;if(g(a)&&(c=a,a=b),!g(c))return c;if(c.__raven__)return c;for(var e in c)l(c,e)&&(d[e]=c[e]);return d.__raven__=!0,d.__inner__=c,d},uninstall:function(){return D.report.uninstall(),Q=!1,T},captureException:function(a,b){if(!k(a))return T.captureMessage(a,b);G=a;try{D.report(a,b)}catch(c){if(a!==c)throw c}return T},captureMessage:function(a,b){return P.ignoreErrors.test&&P.ignoreErrors.test(a)?void 0:(w(s({message:a+""},b)),T)},setUserContext:function(a){return J=a,T},setExtraContext:function(a){return P.extra=a||{},T},setTagsContext:function(a){return P.tags=a||{},T},setReleaseContext:function(a){return P.release=a,T},lastException:function(){return G},lastEventId:function(){return H},isSetup:function(){return y()}};T.setUser=T.setUserContext;var U="source protocol user pass host port path".split(" "),V=/^(?:(\w+):)?\/\/(\w+)(:\w+)?@([\w\.-]+)(?::(\d+))?(\/.*)/;d.prototype=new Error,d.prototype.constructor=d,C(),"function"==typeof define&&define.amd?(a.Raven=T,define("raven",[],function(){return T})):"object"==typeof module?module.exports=T:"object"==typeof exports?exports=T:a.Raven=T}(window); +!function(a,b){"use strict";function c(a,b){var c,d;b=b||{},a="raven"+a.substr(0,1).toUpperCase()+a.substr(1),document.createEvent?(c=document.createEvent("HTMLEvents"),c.initEvent(a,!0,!0)):(c=document.createEventObject(),c.eventType=a);for(d in b)l(b,d)&&(c[d]=b[d]);if(document.createEvent)document.dispatchEvent(c);else try{document.fireEvent("on"+c.eventType.toLowerCase(),c)}catch(e){}}function d(a){this.name="RavenConfigError",this.message=a}function e(a){var b=W.exec(a),c={},e=7;try{for(;e--;)c[V[e]]=b[e]||""}catch(f){throw new d("Invalid DSN: "+a)}if(c.pass)throw new d("Do not specify your private key in the DSN!");return c}function f(a){return void 0===a}function g(a){return"function"==typeof a}function h(a){return"[object String]"===S.toString.call(a)}function i(a){return"object"==typeof a&&null!==a}function j(a){for(var b in a)return!1;return!0}function k(a){return i(a)&&"[object Error]"===S.toString.call(a)||a instanceof Error}function l(a,b){return S.hasOwnProperty.call(a,b)}function m(a,b){var c,d;if(f(a.length))for(c in a)l(a,c)&&b.call(null,c,a[c]);else if(d=a.length)for(c=0;d>c;c++)b.call(null,c,a[c])}function n(){N="?sentry_version=4&sentry_client=raven-js/"+U.VERSION+"&sentry_key="+L}function o(a,b){var d=[];a.stack&&a.stack.length&&m(a.stack,function(a,b){var c=p(b);c&&d.push(c)}),c("handle",{stackInfo:a,options:b}),r(a.name,a.message,a.url,a.lineno,d,b)}function p(a){if(a.url){var b,c={filename:a.url,lineno:a.line,colno:a.column,"function":a.func||"?"},d=q(a);if(d){var e=["pre_context","context_line","post_context"];for(b=3;b--;)c[e[b]]=d[b]}return c.in_app=!(!Q.includePaths.test(c.filename)||/(Raven|TraceKit)\./.test(c.function)||/raven\.(min\.)?js$/.test(c.filename)),c}}function q(a){if(a.context&&Q.fetchContext){for(var b=a.context,c=~~(b.length/2),d=b.length,e=!1;d--;)if(b[d].length>300){e=!0;break}if(e){if(f(a.column))return;return[[],b[c].substr(a.column,50),[]]}return[b.slice(0,c),b[c],b.slice(c+1)]}}function r(a,b,c,d,e,f){var g,h;b+="",("Error"!==a||b)&&(Q.ignoreErrors.test(b)||(e&&e.length?(c=e[0].filename||c,e.reverse(),g={frames:e}):c&&(g={frames:[{filename:c,lineno:d,in_app:!0}]}),b=t(b,Q.maxMessageLength),Q.ignoreUrls&&Q.ignoreUrls.test(c)||(!Q.whitelistUrls||Q.whitelistUrls.test(c))&&(h=d?b+" at "+d:b,w(s({exception:{type:a,value:b},stacktrace:g,culprit:c,message:h},f)))))}function s(a,b){return b?(m(b,function(b,c){a[b]=c}),a):a}function t(a,b){return a.length<=b?a:a.substr(0,b)+"…"}function u(){return+new Date}function v(){var a={url:document.location.href,headers:{"User-Agent":navigator.userAgent}};return document.referrer&&(a.headers.Referer=document.referrer),a}function w(a){z()&&(a=s({project:M,logger:Q.logger,platform:"javascript",request:v()},a),a.tags=s(s({},Q.tags),a.tags),a.extra=s(s({},Q.extra),a.extra),a.extra=s({"session:duration":u()-T},a.extra),j(a.tags)&&delete a.tags,K&&(a.user=K),Q.release&&(a.release=Q.release),g(Q.dataCallback)&&(a=Q.dataCallback(a)||a),a&&!j(a)&&(!g(Q.shouldSendCallback)||Q.shouldSendCallback(a))&&(I=a.event_id||(a.event_id=B()),x(a)))}function x(a){var b=y(),d=J+N+"&sentry_data="+encodeURIComponent(JSON.stringify(a));b.crossOrigin="anonymous",b.onload=function(){c("success",{data:a,src:d})},b.onerror=b.onabort=function(){c("failure",{data:a,src:d})},b.src=d}function y(){return document.createElement("img")}function z(){return P?J?!0:(C("error","Error: Raven has not been configured."),!1):!1}function A(a){for(var b,c=[],d=0,e=a.length;e>d;d++)b=a[d],h(b)?c.push(b.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")):b&&b.source&&c.push(b.source);return new RegExp(c.join("|"),"i")}function B(){return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}function C(b,c){a.console&&console[b]&&U.debug&&console[b](c)}function D(){var b=a.RavenConfig;b&&U.config(b.dsn,b.config).install()}var E={remoteFetching:!1,collectWindowErrors:!0,linesOfContext:7},F=[].slice,G="?";E.wrap=function(a){function b(){try{return a.apply(this,arguments)}catch(b){throw E.report(b),b}}return b},E.report=function(){function c(a){h(),o.push(a)}function d(a){for(var b=o.length-1;b>=0;--b)o[b]===a&&o.splice(b,1)}function e(){i(),o=[]}function f(a,b){var c=null;if(!b||E.collectWindowErrors){for(var d in o)if(l(o,d))try{o[d].apply(null,[a].concat(F.call(arguments,2)))}catch(e){c=e}if(c)throw c}}function g(a,b,c,d,e){var g=null;if(r)E.computeStackTrace.augmentStackTraceWithInitialElement(r,b,c,a),j();else if(e)g=E.computeStackTrace(e),f(g,!0);else{var h={url:b,line:c,column:d};h.func=E.computeStackTrace.guessFunctionName(h.url,h.line),h.context=E.computeStackTrace.gatherContext(h.url,h.line),g={message:a,url:document.location.href,stack:[h]},f(g,!0)}return m?m.apply(this,arguments):!1}function h(){n||(m=a.onerror,a.onerror=g,n=!0)}function i(){n&&(a.onerror=m,n=!1,m=b)}function j(){var a=r,b=p;p=null,r=null,q=null,f.apply(null,[a,!1].concat(b))}function k(b,c){var d=F.call(arguments,1);if(r){if(q===b)return;j()}var e=E.computeStackTrace(b);if(r=e,q=b,p=d,a.setTimeout(function(){q===b&&j()},e.incomplete?2e3:0),c!==!1)throw b}var m,n,o=[],p=null,q=null,r=null;return k.subscribe=c,k.unsubscribe=d,k.uninstall=e,k}(),E.computeStackTrace=function(){function b(b){if(!E.remoteFetching)return"";try{var c=function(){try{return new a.XMLHttpRequest}catch(b){return new a.ActiveXObject("Microsoft.XMLHTTP")}},d=c();return d.open("GET",b,!1),d.send(""),d.responseText}catch(e){return""}}function c(a){if(!h(a))return[];if(!l(u,a)){var c="";-1!==a.indexOf(document.domain)&&(c=b(a)),u[a]=c?c.split("\n"):[]}return u[a]}function d(a,b){var d,e=/function ([^(]*)\(([^)]*)\)/,g=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,h="",i=10,j=c(a);if(!j.length)return G;for(var k=0;i>k;++k)if(h=j[b-k]+h,!f(h)){if(d=g.exec(h))return d[1];if(d=e.exec(h))return d[1]}return G}function e(a,b){var d=c(a);if(!d.length)return null;var e=[],g=Math.floor(E.linesOfContext/2),h=g+E.linesOfContext%2,i=Math.max(0,b-g-1),j=Math.min(d.length,b+h-1);b-=1;for(var k=i;j>k;++k)f(d[k])||e.push(d[k]);return e.length>0?e:null}function g(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function i(a){return g(a).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function j(a,b){for(var d,e,f=0,g=b.length;g>f;++f)if((d=c(b[f])).length&&(d=d.join("\n"),e=a.exec(d)))return{url:b[f],line:d.substring(0,e.index).split("\n").length,column:e.index-d.lastIndexOf("\n",e.index)-1};return null}function k(a,b,d){var e,f=c(b),h=new RegExp("\\b"+g(a)+"\\b");return d-=1,f&&f.length>d&&(e=h.exec(f[d]))?e.index:null}function m(b){for(var c,d,e,f,h=[a.location.href],k=document.getElementsByTagName("script"),l=""+b,m=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,n=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,o=0;om;++m){if(b=h.exec(i[m]))c={url:b[3],func:b[1]||G,args:b[2]?b[2].split(","):"",line:+b[4],column:b[5]?+b[5]:null};else{if(!(b=g.exec(i[m])))continue;c={url:b[2],func:b[1]||G,line:+b[3],column:b[4]?+b[4]:null}}!c.func&&c.line&&(c.func=d(c.url,c.line)),c.line&&(c.context=e(c.url,c.line)),j.push(c)}return j.length?(j[0].line&&!j[0].column&&l?j[0].column=k(l[1],j[0].url,j[0].line):j[0].column||f(a.columnNumber)||(j[0].column=a.columnNumber+1),{name:a.name,message:a.message,url:document.location.href,stack:j}):null}function o(a){for(var b,c=a.stacktrace,f=/ line (\d+), column (\d+) in (?:]+)>|([^\)]+))\((.*)\) in (.*):\s*$/i,g=c.split("\n"),h=[],i=0,j=g.length;j>i;i+=2)if(b=f.exec(g[i])){var k={line:+b[1],column:+b[2],func:b[3]||b[4],args:b[5]?b[5].split(","):[],url:b[6]};if(!k.func&&k.line&&(k.func=d(k.url,k.line)),k.line)try{k.context=e(k.url,k.line)}catch(l){}k.context||(k.context=[g[i+1]]),h.push(k)}return h.length?{name:a.name,message:a.message,url:document.location.href,stack:h}:null}function p(b){var f=b.message.split("\n");if(f.length<4)return null;var g,h,k,m,n=/^\s*Line (\d+) of linked script ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,o=/^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,p=/^\s*Line (\d+) of function script\s*$/i,q=[],r=document.getElementsByTagName("script"),s=[];for(h in r)l(r,h)&&!r[h].src&&s.push(r[h]);for(h=2,k=f.length;k>h;h+=2){var t=null;if(g=n.exec(f[h]))t={url:g[2],func:g[3],line:+g[1]};else if(g=o.exec(f[h])){t={url:g[3],func:g[4]};var u=+g[1],v=s[g[2]-1];if(v&&(m=c(t.url))){m=m.join("\n");var w=m.indexOf(v.innerText);w>=0&&(t.line=u+m.substring(0,w).split("\n").length)}}else if(g=p.exec(f[h])){var x=a.location.href.replace(/#.*$/,""),y=g[1],z=new RegExp(i(f[h+1]));m=j(z,[x]),t={url:x,line:m?m.line:y,func:""}}if(t){t.func||(t.func=d(t.url,t.line));var A=e(t.url,t.line),B=A?A[Math.floor(A.length/2)]:null;t.context=A&&B.replace(/^\s*/,"")===f[h+1].replace(/^\s*/,"")?A:[f[h+1]],q.push(t)}}return q.length?{name:b.name,message:f[0],url:document.location.href,stack:q}:null}function q(a,b,c,f){var g={url:b,line:c};if(g.url&&g.line){a.incomplete=!1,g.func||(g.func=d(g.url,g.line)),g.context||(g.context=e(g.url,g.line));var h=/ '([^']+)' /.exec(f);if(h&&(g.column=k(h[1],g.url,g.line)),a.stack.length>0&&a.stack[0].url===g.url){if(a.stack[0].line===g.line)return!1;if(!a.stack[0].line&&a.stack[0].func===g.func)return a.stack[0].line=g.line,a.stack[0].context=g.context,!1}return a.stack.unshift(g),a.partial=!0,!0}return a.incomplete=!0,!1}function r(a,b){for(var c,e,f,g=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,h=[],i={},j=!1,l=r.caller;l&&!j;l=l.caller)if(l!==s&&l!==E.report){if(e={url:null,func:G,line:null,column:null},l.name?e.func=l.name:(c=g.exec(l.toString()))&&(e.func=c[1]),f=m(l)){e.url=f.url,e.line=f.line,e.func===G&&(e.func=d(e.url,e.line));var n=/ '([^']+)' /.exec(a.message||a.description);n&&(e.column=k(n[1],f.url,f.line))}i[""+l]?j=!0:i[""+l]=!0,h.push(e)}b&&h.splice(0,b);var o={name:a.name,message:a.message,url:document.location.href,stack:h};return q(o,a.sourceURL||a.fileName,a.line||a.lineNumber,a.message||a.description),o}function s(a,b){var c=null;b=null==b?0:+b;try{if(c=o(a))return c}catch(d){if(t)throw d}try{if(c=n(a))return c}catch(d){if(t)throw d}try{if(c=p(a))return c}catch(d){if(t)throw d}try{if(c=r(a,b+1))return c}catch(d){if(t)throw d}return{}}var t=!1,u={};return s.augmentStackTraceWithInitialElement=q,s.computeStackTraceFromStackProp=n,s.guessFunctionName=d,s.gatherContext=e,s}();var H,I,J,K,L,M,N,O=a.Raven,P=!("object"!=typeof JSON||!JSON.stringify),Q={logger:"javascript",ignoreErrors:[],ignoreUrls:[],whitelistUrls:[],includePaths:[],collectWindowErrors:!0,tags:{},maxMessageLength:100,extra:{}},R=!1,S=Object.prototype,T=u(),U={VERSION:"1.1.19",debug:!0,noConflict:function(){return a.Raven=O,U},config:function(a,b){if(J)return C("error","Error: Raven has already been configured"),U;if(!a)return U;var c=e(a),d=c.path.lastIndexOf("/"),f=c.path.substr(1,d);return b&&m(b,function(a,b){Q[a]=b}),Q.ignoreErrors.push(/^Script error\.?$/),Q.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/),Q.ignoreErrors=A(Q.ignoreErrors),Q.ignoreUrls=Q.ignoreUrls.length?A(Q.ignoreUrls):!1,Q.whitelistUrls=Q.whitelistUrls.length?A(Q.whitelistUrls):!1,Q.includePaths=A(Q.includePaths),L=c.user,M=c.path.substr(d+1),J="//"+c.host+(c.port?":"+c.port:"")+"/"+f+"api/"+M+"/store/",c.protocol&&(J=c.protocol+":"+J),Q.fetchContext&&(E.remoteFetching=!0),Q.linesOfContext&&(E.linesOfContext=Q.linesOfContext),E.collectWindowErrors=!!Q.collectWindowErrors,n(),U},install:function(){return z()&&!R&&(E.report.subscribe(o),R=!0),U},context:function(a,c,d){return g(a)&&(d=c||[],c=a,a=b),U.wrap(a,c).apply(this,d)},wrap:function(a,c){function d(){for(var b=[],d=arguments.length,e=!a||a&&a.deep!==!1;d--;)b[d]=e?U.wrap(a,arguments[d]):arguments[d];try{return c.apply(this,b)}catch(f){throw U.captureException(f,a),f}}if(f(c)&&!g(a))return a;if(g(a)&&(c=a,a=b),!g(c))return c;if(c.__raven__)return c;for(var e in c)l(c,e)&&(d[e]=c[e]);return d.__raven__=!0,d.__inner__=c,d},uninstall:function(){return E.report.uninstall(),R=!1,U},captureException:function(a,b){if(!k(a))return U.captureMessage(a,b);H=a;try{E.report(a,b)}catch(c){if(a!==c)throw c}return U},captureMessage:function(a,b){return Q.ignoreErrors.test&&Q.ignoreErrors.test(a)?void 0:(w(s({message:a+""},b)),U)},setUserContext:function(a){return K=a,U},setExtraContext:function(a){return Q.extra=a||{},U},setTagsContext:function(a){return Q.tags=a||{},U},setReleaseContext:function(a){return Q.release=a,U},setDataCallback:function(a){return Q.dataCallback=a,U},setShouldSendCallback:function(a){return Q.shouldSendCallback=a,U},lastException:function(){return H},lastEventId:function(){return I},isSetup:function(){return z()}};U.setUser=U.setUserContext;var V="source protocol user pass host port path".split(" "),W=/^(?:(\w+):)?\/\/(\w+)(:\w+)?@([\w\.-]+)(?::(\d+))?(\/.*)/;d.prototype=new Error,d.prototype.constructor=d,D(),"function"==typeof define&&define.amd?(a.Raven=U,define("raven",[],function(){return U})):"object"==typeof module?module.exports=U:"object"==typeof exports?exports=U:a.Raven=U}("undefined"!=typeof window?window:this); //# sourceMappingURL=../../maps/libs/raven.js.map \ No newline at end of file diff --git a/static/scripts/libs/require.js b/static/scripts/libs/require.js index 01275ef459a..c0b35557e94 100644 --- a/static/scripts/libs/require.js +++ b/static/scripts/libs/require.js @@ -1,2 +1,2 @@ -var requirejs,require,define;!function(global){function isFunction(a){return"[object Function]"===ostring.call(a)}function isArray(a){return"[object Array]"===ostring.call(a)}function each(a,b){if(a){var c;for(c=0;c-1&&(!a[c]||!b(a[c],c,a));c-=1);}}function hasProp(a,b){return hasOwn.call(a,b)}function getOwn(a,b){return hasProp(a,b)&&a[b]}function eachProp(a,b){var c;for(c in a)if(hasProp(a,c)&&b(a[c],c))break}function mixin(a,b,c,d){return b&&eachProp(b,function(b,e){(c||!hasProp(a,e))&&(!d||"object"!=typeof b||!b||isArray(b)||isFunction(b)||b instanceof RegExp?a[e]=b:(a[e]||(a[e]={}),mixin(a[e],b,c,d)))}),a}function bind(a,b){return function(){return b.apply(a,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(a){throw a}function getGlobal(a){if(!a)return a;var b=global;return each(a.split("."),function(a){b=b[a]}),b}function makeError(a,b,c,d){var e=new Error(b+"\nhttp://requirejs.org/docs/errors.html#"+a);return e.requireType=a,e.requireModules=d,c&&(e.originalError=c),e}function newContext(a){function b(a){var b,c;for(b=0;b0&&(a.splice(b-1,2),b-=2)}}function c(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q=c&&c.split("/"),r=x.map,s=r&&r["*"];if(a&&(a=a.split("/"),k=a.length-1,x.nodeIdCompat&&jsSuffixRegExp.test(a[k])&&(a[k]=a[k].replace(jsSuffixRegExp,"")),"."===a[0].charAt(0)&&q&&(p=q.slice(0,q.length-1),a=p.concat(a)),b(a),a=a.join("/")),d&&r&&(q||s)){g=a.split("/");a:for(h=g.length;h>0;h-=1){if(j=g.slice(0,h).join("/"),q)for(i=q.length;i>0;i-=1)if(f=getOwn(r,q.slice(0,i).join("/")),f&&(f=getOwn(f,j))){l=f,m=h;break a}!n&&s&&getOwn(s,j)&&(n=getOwn(s,j),o=h)}!l&&n&&(l=n,m=o),l&&(g.splice(0,m,l),a=g.join("/"))}return e=getOwn(x.pkgs,a),e?e:a}function d(a){isBrowser&&each(scripts(),function(b){return b.getAttribute("data-requiremodule")===a&&b.getAttribute("data-requirecontext")===u.contextName?(b.parentNode.removeChild(b),!0):void 0})}function e(a){var b=getOwn(x.paths,a);return b&&isArray(b)&&b.length>1?(b.shift(),u.require.undef(a),u.makeRequire(null,{skipMap:!0})([a]),!0):void 0}function f(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 g(a,b,d,e){var g,h,i,j,k=null,l=b?b.name:null,m=a,n=!0,o="";return a||(n=!1,a="_@r"+(F+=1)),j=f(a),k=j[0],a=j[1],k&&(k=c(k,l,e),h=getOwn(C,k)),a&&(k?o=h&&h.normalize?h.normalize(a,function(a){return c(a,l,e)}):-1===a.indexOf("!")?c(a,l,e):a:(o=c(a,l,e),j=f(o),k=j[0],o=j[1],d=!0,g=u.nameToUrl(o))),i=!k||h||d?"":"_unnormalized"+(G+=1),{prefix:k,name:o,parentMap:b,unnormalized:!!i,url:g,originalName:m,isDefine:n,id:(k?k+"!"+o:o)+i}}function h(a){var b=a.id,c=getOwn(y,b);return c||(c=y[b]=new u.Module(a)),c}function i(a,b,c){var d=a.id,e=getOwn(y,d);!hasProp(C,d)||e&&!e.defineEmitComplete?(e=h(a),e.error&&"error"===b?c(e.error):e.on(b,c)):"defined"===b&&c(C[d])}function j(a,b){var c=a.requireModules,d=!1;b?b(a):(each(c,function(b){var c=getOwn(y,b);c&&(c.error=a,c.events.error&&(d=!0,c.emit("error",a)))}),d||req.onError(a))}function k(){globalDefQueue.length&&(apsp.apply(B,[B.length,0].concat(globalDefQueue)),globalDefQueue=[])}function l(a){delete y[a],delete z[a]}function m(a,b,c){var d=a.map.id;a.error?a.emit("error",a.error):(b[d]=!0,each(a.depMaps,function(d,e){var f=d.id,g=getOwn(y,f);!g||a.depMatched[e]||c[f]||(getOwn(b,f)?(a.defineDep(e,C[f]),a.check()):m(g,b,c))}),c[d]=!0)}function n(){var a,b,c=1e3*x.waitSeconds,f=c&&u.startTime+c<(new Date).getTime(),g=[],h=[],i=!1,k=!0;if(!s){if(s=!0,eachProp(z,function(a){var c=a.map,j=c.id;if(a.enabled&&(c.isDefine||h.push(a),!a.error))if(!a.inited&&f)e(j)?(b=!0,i=!0):(g.push(j),d(j));else if(!a.inited&&a.fetched&&c.isDefine&&(i=!0,!c.prefix))return k=!1}),f&&g.length)return a=makeError("timeout","Load timeout for modules: "+g,null,g),a.contextName=u.contextName,j(a);k&&each(h,function(a){m(a,{},{})}),f&&!b||!i||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,n()},50)),s=!1}}function o(a){hasProp(C,a[0])||h(g(a[0],null,!0)).init(a[1],a[2])}function p(a,b,c,d){a.detachEvent&&!isOpera?d&&a.detachEvent(d,b):a.removeEventListener(c,b,!1)}function q(a){var b=a.currentTarget||a.srcElement;return p(b,u.onScriptLoad,"load","onreadystatechange"),p(b,u.onScriptError,"error"),{node:b,id:b&&b.getAttribute("data-requiremodule")}}function r(){var a;for(k();B.length;){if(a=B.shift(),null===a[0])return j(makeError("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));o(a)}}var s,t,u,v,w,x={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},y={},z={},A={},B=[],C={},D={},E={},F=1,G=1;return v={require:function(a){return a.require?a.require:a.require=u.makeRequire(a.map)},exports:function(a){return a.usingExports=!0,a.map.isDefine?a.exports?C[a.map.id]=a.exports:a.exports=C[a.map.id]={}:void 0},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return getOwn(x.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}},t=function(a){this.events=getOwn(A,a.id)||{},this.map=a,this.shim=getOwn(x.shim,a.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},t.prototype={init:function(a,b,c,d){d=d||{},this.inited||(this.factory=b,c?this.on("error",c):this.events.error&&(c=bind(this,function(a){this.emit("error",a)})),this.depMaps=a&&a.slice(0),this.errback=c,this.inited=!0,this.ignore=d.ignore,d.enabled||this.enabled?this.enable():this.check())},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0,u.startTime=(new Date).getTime();var a=this.map;return this.shim?void u.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return a.prefix?this.callPlugin():this.load()})):a.prefix?this.callPlugin():this.load()}},load:function(){var a=this.map.url;D[a]||(D[a]=!0,u.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id,d=this.depExports,e=this.exports,f=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(f)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{e=u.execCb(c,f,d,e)}catch(g){a=g}else e=u.execCb(c,f,d,e);if(this.map.isDefine&&void 0===e&&(b=this.module,b?e=b.exports:this.usingExports&&(e=this.exports)),a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",j(this.error=a)}else e=f;this.exports=e,this.map.isDefine&&!this.ignore&&(C[c]=e,req.onResourceLoad&&req.onResourceLoad(u,this.map,this.depMaps)),l(c),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=g(a.prefix);this.depMaps.push(d),i(d,"defined",bind(this,function(d){var e,f,k,m=getOwn(E,this.map.id),n=this.map.name,o=this.map.parentMap?this.map.parentMap.name:null,p=u.makeRequire(a.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(d.normalize&&(n=d.normalize(n,function(a){return c(a,o,!0)})||""),f=g(a.prefix+"!"+n,this.map.parentMap),i(f,"defined",bind(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),k=getOwn(y,f.id),void(k&&(this.depMaps.push(f),this.events.error&&k.on("error",bind(this,function(a){this.emit("error",a)})),k.enable()))):m?(this.map.url=u.nameToUrl(m),void this.load()):(e=bind(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),e.error=bind(this,function(a){this.inited=!0,this.error=a,a.requireModules=[b],eachProp(y,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&l(a.map.id)}),j(a)}),e.fromText=bind(this,function(c,d){var f=a.name,i=g(f),k=useInteractive;d&&(c=d),k&&(useInteractive=!1),h(i),hasProp(x.config,b)&&(x.config[f]=x.config[b]);try{req.exec(c)}catch(l){return j(makeError("fromtexteval","fromText eval for "+b+" failed: "+l,l,[b]))}k&&(useInteractive=!0),this.depMaps.push(i),u.completeLoad(f),p([f],e)}),void d.load(a.name,p,e,x))})),u.enable(d,this),this.pluginMaps[d.id]=d},enable:function(){z[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(a,b){var c,d,e;if("string"==typeof a){if(a=g(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[b]=a,e=getOwn(v,a.id))return void(this.depExports[b]=e(this));this.depCount+=1,i(a,"defined",bind(this,function(a){this.defineDep(b,a),this.check()})),this.errback?i(a,"error",bind(this,this.errback)):this.events.error&&i(a,"error",bind(this,function(a){this.emit("error",a)}))}c=a.id,d=y[c],hasProp(v,c)||!d||d.enabled||u.enable(a,this)})),eachProp(this.pluginMaps,bind(this,function(a){var b=getOwn(y,a.id);b&&!b.enabled&&u.enable(a,this)})),this.enabling=!1,this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]),c.push(b)},emit:function(a,b){each(this.events[a],function(a){a(b)}),"error"===a&&delete this.events[a]}},u={config:x,contextName:a,registry:y,defined:C,urlFetched:D,defQueue:B,Module:t,makeModuleMap:g,nextTick:req.nextTick,onError:j,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=x.shim,c={paths:!0,bundles:!0,config:!0,map:!0};eachProp(a,function(a,b){c[b]?(x[b]||(x[b]={}),mixin(x[b],a,!0,!0)):x[b]=a}),a.bundles&&eachProp(a.bundles,function(a,b){each(a,function(a){a!==b&&(E[a]=b)})}),a.shim&&(eachProp(a.shim,function(a,c){isArray(a)&&(a={deps:a}),!a.exports&&!a.init||a.exportsFn||(a.exportsFn=u.makeShimExports(a)),b[c]=a}),x.shim=b),a.packages&&each(a.packages,function(a){var b,c;a="string"==typeof a?{name:a}:a,c=a.name,b=a.location,b&&(x.paths[c]=a.location),x.pkgs[c]=a.name+"/"+(a.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(y,function(a,b){a.inited||a.map.unnormalized||(a.map=g(b))}),(a.deps||a.callback)&&u.require(a.deps||[],a.callback)},makeShimExports:function(a){function b(){var b;return a.init&&(b=a.init.apply(global,arguments)),b||a.exports&&getGlobal(a.exports)}return b},makeRequire:function(b,e){function f(c,d,i){var k,l,m;return e.enableBuildCallback&&d&&isFunction(d)&&(d.__requireJsBuild=!0),"string"==typeof c?isFunction(d)?j(makeError("requireargs","Invalid require call"),i):b&&hasProp(v,c)?v[c](y[b.id]):req.get?req.get(u,c,b,f):(l=g(c,b,!1,!0),k=l.id,hasProp(C,k)?C[k]:j(makeError("notloaded",'Module name "'+k+'" has not been loaded yet for context: '+a+(b?"":". Use require([])")))):(r(),u.nextTick(function(){r(),m=h(g(null,b)),m.skipMap=e.skipMap,m.init(c,d,i,{enabled:!0}),n()}),f)}return e=e||{},mixin(f,{isBrowser:isBrowser,toUrl:function(a){var d,e=a.lastIndexOf("."),f=a.split("/")[0],g="."===f||".."===f;return-1!==e&&(!g||e>1)&&(d=a.substring(e,a.length),a=a.substring(0,e)),u.nameToUrl(c(a,b&&b.id,!0),d,!0)},defined:function(a){return hasProp(C,g(a,b,!1,!0).id)},specified:function(a){return a=g(a,b,!1,!0).id,hasProp(C,a)||hasProp(y,a)}}),b||(f.undef=function(a){k();var c=g(a,b,!0),e=getOwn(y,a);d(a),delete C[a],delete D[c.url],delete A[a],eachReverse(B,function(b,c){b[0]===a&&B.splice(c,1)}),e&&(e.events.defined&&(A[a]=e.events),l(a))}),f},enable:function(a){var b=getOwn(y,a.id);b&&h(a).enable()},completeLoad:function(a){var b,c,d,f=getOwn(x.shim,a)||{},g=f.exports;for(k();B.length;){if(c=B.shift(),null===c[0]){if(c[0]=a,b)break;b=!0}else c[0]===a&&(b=!0);o(c)}if(d=getOwn(y,a),!b&&!hasProp(C,a)&&d&&!d.inited){if(!(!x.enforceDefine||g&&getGlobal(g)))return e(a)?void 0:j(makeError("nodefine","No define call for "+a,null,[a]));o([a,f.deps||[],f.exportsFn])}n()},nameToUrl:function(a,b,c){var d,e,f,g,h,i,j,k=getOwn(x.pkgs,a);if(k&&(a=k),j=getOwn(E,a))return u.nameToUrl(j,b,c);if(req.jsExtRegExp.test(a))h=a+(b||"");else{for(d=x.paths,e=a.split("/"),f=e.length;f>0;f-=1)if(g=e.slice(0,f).join("/"),i=getOwn(d,g)){isArray(i)&&(i=i[0]),e.splice(0,f,i);break}h=e.join("/"),h+=b||(/^data\:|\?/.test(h)||c?"":".js"),h=("/"===h.charAt(0)||h.match(/^[\w\+\.\-]+:/)?"":x.baseUrl)+h}return x.urlArgs?h+((-1===h.indexOf("?")?"?":"&")+x.urlArgs):h},load:function(a,b){req.load(u,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||readyRegExp.test((a.currentTarget||a.srcElement).readyState)){interactiveScript=null;var b=q(a);u.completeLoad(b.id)}},onScriptError:function(a){var b=q(a);return e(b.id)?void 0:j(makeError("scripterror","Script error for: "+b.id,a,[b.id]))}},u.require=u.makeRequire(),u}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(a){return"interactive"===a.readyState?interactiveScript=a:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.17",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,apsp=ap.splice,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(a,b,c,d){var e,f,g=defContextName;return isArray(a)||"string"==typeof a||(f=a,isArray(b)?(a=b,b=c,c=d):a=[]),f&&f.context&&(g=f.context),e=getOwn(contexts,g),e||(e=contexts[g]=req.s.newContext(g)),f&&e.configure(f),e.require(a,b,c)},req.config=function(a){return req(a)},req.nextTick="undefined"!=typeof setTimeout?function(a){setTimeout(a,4)}:function(a){a()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(a){req[a]=function(){var b=contexts[defContextName];return b.require[a].apply(b,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(a){var b=a.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return b.type=a.scriptType||"text/javascript",b.charset="utf-8",b.async=!0,b},req.load=function(a,b,c){var d,e=a&&a.config||{};if(isBrowser)return d=req.createNode(e,b,c),d.setAttribute("data-requirecontext",a.contextName),d.setAttribute("data-requiremodule",b),!d.attachEvent||d.attachEvent.toString&&d.attachEvent.toString().indexOf("[native code")<0||isOpera?(d.addEventListener("load",a.onScriptLoad,!1),d.addEventListener("error",a.onScriptError,!1)):(useInteractive=!0,d.attachEvent("onreadystatechange",a.onScriptLoad)),d.src=c,currentlyAddingScript=d,baseElement?head.insertBefore(d,baseElement):head.appendChild(d),currentlyAddingScript=null,d;if(isWebWorker)try{importScripts(c),a.completeLoad(b)}catch(f){a.onError(makeError("importscripts","importScripts failed for "+b+" at "+c,f,[b]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(a){return head||(head=a.parentNode),dataMain=a.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(a,b,c){var d,e;"string"!=typeof a&&(c=b,b=a,a=null),isArray(b)||(c=b,b=null),!b&&isFunction(c)&&(b=[],c.length&&(c.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(a,c){b.push(c)}),b=(1===c.length?["require"]:["require","exports","module"]).concat(b))),useInteractive&&(d=currentlyAddingScript||getInteractiveScript(),d&&(a||(a=d.getAttribute("data-requiremodule")),e=contexts[d.getAttribute("data-requirecontext")])),(e?e.defQueue:globalDefQueue).push([a,b,c])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this); +var requirejs,require,define;!function(global){function isFunction(a){return"[object Function]"===ostring.call(a)}function isArray(a){return"[object Array]"===ostring.call(a)}function each(a,b){if(a){var c;for(c=0;c-1&&(!a[c]||!b(a[c],c,a));c-=1);}}function hasProp(a,b){return hasOwn.call(a,b)}function getOwn(a,b){return hasProp(a,b)&&a[b]}function eachProp(a,b){var c;for(c in a)if(hasProp(a,c)&&b(a[c],c))break}function mixin(a,b,c,d){return b&&eachProp(b,function(b,e){(c||!hasProp(a,e))&&(!d||"object"!=typeof b||!b||isArray(b)||isFunction(b)||b instanceof RegExp?a[e]=b:(a[e]||(a[e]={}),mixin(a[e],b,c,d)))}),a}function bind(a,b){return function(){return b.apply(a,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(a){throw a}function getGlobal(a){if(!a)return a;var b=global;return each(a.split("."),function(a){b=b[a]}),b}function makeError(a,b,c,d){var e=new Error(b+"\nhttp://requirejs.org/docs/errors.html#"+a);return e.requireType=a,e.requireModules=d,c&&(e.originalError=c),e}function newContext(a){function b(a){var b,c;for(b=0;b0&&(a.splice(b-1,2),b-=2)}}function c(a,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q=c&&c.split("/"),r=x.map,s=r&&r["*"];if(a&&(a=a.split("/"),k=a.length-1,x.nodeIdCompat&&jsSuffixRegExp.test(a[k])&&(a[k]=a[k].replace(jsSuffixRegExp,"")),"."===a[0].charAt(0)&&q&&(p=q.slice(0,q.length-1),a=p.concat(a)),b(a),a=a.join("/")),d&&r&&(q||s)){g=a.split("/");a:for(h=g.length;h>0;h-=1){if(j=g.slice(0,h).join("/"),q)for(i=q.length;i>0;i-=1)if(f=getOwn(r,q.slice(0,i).join("/")),f&&(f=getOwn(f,j))){l=f,m=h;break a}!n&&s&&getOwn(s,j)&&(n=getOwn(s,j),o=h)}!l&&n&&(l=n,m=o),l&&(g.splice(0,m,l),a=g.join("/"))}return e=getOwn(x.pkgs,a),e?e:a}function d(a){isBrowser&&each(scripts(),function(b){return b.getAttribute("data-requiremodule")===a&&b.getAttribute("data-requirecontext")===u.contextName?(b.parentNode.removeChild(b),!0):void 0})}function e(a){var b=getOwn(x.paths,a);return b&&isArray(b)&&b.length>1?(b.shift(),u.require.undef(a),u.makeRequire(null,{skipMap:!0})([a]),!0):void 0}function f(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 g(a,b,d,e){var g,h,i,j,k=null,l=b?b.name:null,m=a,n=!0,o="";return a||(n=!1,a="_@r"+(F+=1)),j=f(a),k=j[0],a=j[1],k&&(k=c(k,l,e),h=getOwn(C,k)),a&&(k?o=h&&h.normalize?h.normalize(a,function(a){return c(a,l,e)}):-1===a.indexOf("!")?c(a,l,e):a:(o=c(a,l,e),j=f(o),k=j[0],o=j[1],d=!0,g=u.nameToUrl(o))),i=!k||h||d?"":"_unnormalized"+(G+=1),{prefix:k,name:o,parentMap:b,unnormalized:!!i,url:g,originalName:m,isDefine:n,id:(k?k+"!"+o:o)+i}}function h(a){var b=a.id,c=getOwn(y,b);return c||(c=y[b]=new u.Module(a)),c}function i(a,b,c){var d=a.id,e=getOwn(y,d);!hasProp(C,d)||e&&!e.defineEmitComplete?(e=h(a),e.error&&"error"===b?c(e.error):e.on(b,c)):"defined"===b&&c(C[d])}function j(a,b){var c=a.requireModules,d=!1;b?b(a):(each(c,function(b){var c=getOwn(y,b);c&&(c.error=a,c.events.error&&(d=!0,c.emit("error",a)))}),d||req.onError(a))}function k(){globalDefQueue.length&&(each(globalDefQueue,function(a){var b=a[0];"string"==typeof b&&(u.defQueueMap[b]=!0),B.push(a)}),globalDefQueue=[])}function l(a){delete y[a],delete z[a]}function m(a,b,c){var d=a.map.id;a.error?a.emit("error",a.error):(b[d]=!0,each(a.depMaps,function(d,e){var f=d.id,g=getOwn(y,f);!g||a.depMatched[e]||c[f]||(getOwn(b,f)?(a.defineDep(e,C[f]),a.check()):m(g,b,c))}),c[d]=!0)}function n(){var a,b,c=1e3*x.waitSeconds,f=c&&u.startTime+c<(new Date).getTime(),g=[],h=[],i=!1,k=!0;if(!s){if(s=!0,eachProp(z,function(a){var c=a.map,j=c.id;if(a.enabled&&(c.isDefine||h.push(a),!a.error))if(!a.inited&&f)e(j)?(b=!0,i=!0):(g.push(j),d(j));else if(!a.inited&&a.fetched&&c.isDefine&&(i=!0,!c.prefix))return k=!1}),f&&g.length)return a=makeError("timeout","Load timeout for modules: "+g,null,g),a.contextName=u.contextName,j(a);k&&each(h,function(a){m(a,{},{})}),f&&!b||!i||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,n()},50)),s=!1}}function o(a){hasProp(C,a[0])||h(g(a[0],null,!0)).init(a[1],a[2])}function p(a,b,c,d){a.detachEvent&&!isOpera?d&&a.detachEvent(d,b):a.removeEventListener(c,b,!1)}function q(a){var b=a.currentTarget||a.srcElement;return p(b,u.onScriptLoad,"load","onreadystatechange"),p(b,u.onScriptError,"error"),{node:b,id:b&&b.getAttribute("data-requiremodule")}}function r(){var a;for(k();B.length;){if(a=B.shift(),null===a[0])return j(makeError("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));o(a)}u.defQueueMap={}}var s,t,u,v,w,x={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},y={},z={},A={},B=[],C={},D={},E={},F=1,G=1;return v={require:function(a){return a.require?a.require:a.require=u.makeRequire(a.map)},exports:function(a){return a.usingExports=!0,a.map.isDefine?a.exports?C[a.map.id]=a.exports:a.exports=C[a.map.id]={}:void 0},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return getOwn(x.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}},t=function(a){this.events=getOwn(A,a.id)||{},this.map=a,this.shim=getOwn(x.shim,a.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},t.prototype={init:function(a,b,c,d){d=d||{},this.inited||(this.factory=b,c?this.on("error",c):this.events.error&&(c=bind(this,function(a){this.emit("error",a)})),this.depMaps=a&&a.slice(0),this.errback=c,this.inited=!0,this.ignore=d.ignore,d.enabled||this.enabled?this.enable():this.check())},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0,u.startTime=(new Date).getTime();var a=this.map;return this.shim?void u.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return a.prefix?this.callPlugin():this.load()})):a.prefix?this.callPlugin():this.load()}},load:function(){var a=this.map.url;D[a]||(D[a]=!0,u.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id,d=this.depExports,e=this.exports,f=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(f)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{e=u.execCb(c,f,d,e)}catch(g){a=g}else e=u.execCb(c,f,d,e);if(this.map.isDefine&&void 0===e&&(b=this.module,b?e=b.exports:this.usingExports&&(e=this.exports)),a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",j(this.error=a)}else e=f;this.exports=e,this.map.isDefine&&!this.ignore&&(C[c]=e,req.onResourceLoad&&req.onResourceLoad(u,this.map,this.depMaps)),l(c),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(u.defQueueMap,c)||this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=g(a.prefix);this.depMaps.push(d),i(d,"defined",bind(this,function(d){var e,f,k,m=getOwn(E,this.map.id),n=this.map.name,o=this.map.parentMap?this.map.parentMap.name:null,p=u.makeRequire(a.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(d.normalize&&(n=d.normalize(n,function(a){return c(a,o,!0)})||""),f=g(a.prefix+"!"+n,this.map.parentMap),i(f,"defined",bind(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),k=getOwn(y,f.id),void(k&&(this.depMaps.push(f),this.events.error&&k.on("error",bind(this,function(a){this.emit("error",a)})),k.enable()))):m?(this.map.url=u.nameToUrl(m),void this.load()):(e=bind(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),e.error=bind(this,function(a){this.inited=!0,this.error=a,a.requireModules=[b],eachProp(y,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&l(a.map.id)}),j(a)}),e.fromText=bind(this,function(c,d){var f=a.name,i=g(f),k=useInteractive;d&&(c=d),k&&(useInteractive=!1),h(i),hasProp(x.config,b)&&(x.config[f]=x.config[b]);try{req.exec(c)}catch(l){return j(makeError("fromtexteval","fromText eval for "+b+" failed: "+l,l,[b]))}k&&(useInteractive=!0),this.depMaps.push(i),u.completeLoad(f),p([f],e)}),void d.load(a.name,p,e,x))})),u.enable(d,this),this.pluginMaps[d.id]=d},enable:function(){z[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(a,b){var c,d,e;if("string"==typeof a){if(a=g(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[b]=a,e=getOwn(v,a.id))return void(this.depExports[b]=e(this));this.depCount+=1,i(a,"defined",bind(this,function(a){this.undefed||(this.defineDep(b,a),this.check())})),this.errback?i(a,"error",bind(this,this.errback)):this.events.error&&i(a,"error",bind(this,function(a){this.emit("error",a)}))}c=a.id,d=y[c],hasProp(v,c)||!d||d.enabled||u.enable(a,this)})),eachProp(this.pluginMaps,bind(this,function(a){var b=getOwn(y,a.id);b&&!b.enabled&&u.enable(a,this)})),this.enabling=!1,this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]),c.push(b)},emit:function(a,b){each(this.events[a],function(a){a(b)}),"error"===a&&delete this.events[a]}},u={config:x,contextName:a,registry:y,defined:C,urlFetched:D,defQueue:B,defQueueMap:{},Module:t,makeModuleMap:g,nextTick:req.nextTick,onError:j,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=x.shim,c={paths:!0,bundles:!0,config:!0,map:!0};eachProp(a,function(a,b){c[b]?(x[b]||(x[b]={}),mixin(x[b],a,!0,!0)):x[b]=a}),a.bundles&&eachProp(a.bundles,function(a,b){each(a,function(a){a!==b&&(E[a]=b)})}),a.shim&&(eachProp(a.shim,function(a,c){isArray(a)&&(a={deps:a}),!a.exports&&!a.init||a.exportsFn||(a.exportsFn=u.makeShimExports(a)),b[c]=a}),x.shim=b),a.packages&&each(a.packages,function(a){var b,c;a="string"==typeof a?{name:a}:a,c=a.name,b=a.location,b&&(x.paths[c]=a.location),x.pkgs[c]=a.name+"/"+(a.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(y,function(a,b){a.inited||a.map.unnormalized||(a.map=g(b,null,!0))}),(a.deps||a.callback)&&u.require(a.deps||[],a.callback)},makeShimExports:function(a){function b(){var b;return a.init&&(b=a.init.apply(global,arguments)),b||a.exports&&getGlobal(a.exports)}return b},makeRequire:function(b,e){function f(c,d,i){var k,l,m;return e.enableBuildCallback&&d&&isFunction(d)&&(d.__requireJsBuild=!0),"string"==typeof c?isFunction(d)?j(makeError("requireargs","Invalid require call"),i):b&&hasProp(v,c)?v[c](y[b.id]):req.get?req.get(u,c,b,f):(l=g(c,b,!1,!0),k=l.id,hasProp(C,k)?C[k]:j(makeError("notloaded",'Module name "'+k+'" has not been loaded yet for context: '+a+(b?"":". Use require([])")))):(r(),u.nextTick(function(){r(),m=h(g(null,b)),m.skipMap=e.skipMap,m.init(c,d,i,{enabled:!0}),n()}),f)}return e=e||{},mixin(f,{isBrowser:isBrowser,toUrl:function(a){var d,e=a.lastIndexOf("."),f=a.split("/")[0],g="."===f||".."===f;return-1!==e&&(!g||e>1)&&(d=a.substring(e,a.length),a=a.substring(0,e)),u.nameToUrl(c(a,b&&b.id,!0),d,!0)},defined:function(a){return hasProp(C,g(a,b,!1,!0).id)},specified:function(a){return a=g(a,b,!1,!0).id,hasProp(C,a)||hasProp(y,a)}}),b||(f.undef=function(a){k();var c=g(a,b,!0),e=getOwn(y,a);e.undefed=!0,d(a),delete C[a],delete D[c.url],delete A[a],eachReverse(B,function(b,c){b[0]===a&&B.splice(c,1)}),delete u.defQueueMap[a],e&&(e.events.defined&&(A[a]=e.events),l(a))}),f},enable:function(a){var b=getOwn(y,a.id);b&&h(a).enable()},completeLoad:function(a){var b,c,d,f=getOwn(x.shim,a)||{},g=f.exports;for(k();B.length;){if(c=B.shift(),null===c[0]){if(c[0]=a,b)break;b=!0}else c[0]===a&&(b=!0);o(c)}if(u.defQueueMap={},d=getOwn(y,a),!b&&!hasProp(C,a)&&d&&!d.inited){if(!(!x.enforceDefine||g&&getGlobal(g)))return e(a)?void 0:j(makeError("nodefine","No define call for "+a,null,[a]));o([a,f.deps||[],f.exportsFn])}n()},nameToUrl:function(a,b,c){var d,e,f,g,h,i,j,k=getOwn(x.pkgs,a);if(k&&(a=k),j=getOwn(E,a))return u.nameToUrl(j,b,c);if(req.jsExtRegExp.test(a))h=a+(b||"");else{for(d=x.paths,e=a.split("/"),f=e.length;f>0;f-=1)if(g=e.slice(0,f).join("/"),i=getOwn(d,g)){isArray(i)&&(i=i[0]),e.splice(0,f,i);break}h=e.join("/"),h+=b||(/^data\:|\?/.test(h)||c?"":".js"),h=("/"===h.charAt(0)||h.match(/^[\w\+\.\-]+:/)?"":x.baseUrl)+h}return x.urlArgs?h+((-1===h.indexOf("?")?"?":"&")+x.urlArgs):h},load:function(a,b){req.load(u,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||readyRegExp.test((a.currentTarget||a.srcElement).readyState)){interactiveScript=null;var b=q(a);u.completeLoad(b.id)}},onScriptError:function(a){var b=q(a);return e(b.id)?void 0:j(makeError("scripterror","Script error for: "+b.id,a,[b.id]))}},u.require=u.makeRequire(),u}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(a){return"interactive"===a.readyState?interactiveScript=a:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.20",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(a,b,c,d){var e,f,g=defContextName;return isArray(a)||"string"==typeof a||(f=a,isArray(b)?(a=b,b=c,c=d):a=[]),f&&f.context&&(g=f.context),e=getOwn(contexts,g),e||(e=contexts[g]=req.s.newContext(g)),f&&e.configure(f),e.require(a,b,c)},req.config=function(a){return req(a)},req.nextTick="undefined"!=typeof setTimeout?function(a){setTimeout(a,4)}:function(a){a()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(a){req[a]=function(){var b=contexts[defContextName];return b.require[a].apply(b,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(a){var b=a.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return b.type=a.scriptType||"text/javascript",b.charset="utf-8",b.async=!0,b},req.load=function(a,b,c){var d,e=a&&a.config||{};if(isBrowser)return d=req.createNode(e,b,c),e.onNodeCreated&&e.onNodeCreated(d,e,b,c),d.setAttribute("data-requirecontext",a.contextName),d.setAttribute("data-requiremodule",b),!d.attachEvent||d.attachEvent.toString&&d.attachEvent.toString().indexOf("[native code")<0||isOpera?(d.addEventListener("load",a.onScriptLoad,!1),d.addEventListener("error",a.onScriptError,!1)):(useInteractive=!0,d.attachEvent("onreadystatechange",a.onScriptLoad)),d.src=c,currentlyAddingScript=d,baseElement?head.insertBefore(d,baseElement):head.appendChild(d),currentlyAddingScript=null,d;if(isWebWorker)try{importScripts(c),a.completeLoad(b)}catch(f){a.onError(makeError("importscripts","importScripts failed for "+b+" at "+c,f,[b]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(a){return head||(head=a.parentNode),dataMain=a.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(a,b,c){var d,e;"string"!=typeof a&&(c=b,b=a,a=null),isArray(b)||(c=b,b=null),!b&&isFunction(c)&&(b=[],c.length&&(c.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(a,c){b.push(c)}),b=(1===c.length?["require"]:["require","exports","module"]).concat(b))),useInteractive&&(d=currentlyAddingScript||getInteractiveScript(),d&&(a||(a=d.getAttribute("data-requiremodule")),e=contexts[d.getAttribute("data-requirecontext")])),e?(e.defQueue.push([a,b,c]),e.defQueueMap[a]=!0):globalDefQueue.push([a,b,c])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this); //# sourceMappingURL=../../maps/libs/require.js.map \ No newline at end of file diff --git a/static/scripts/libs/tracekit.js b/static/scripts/libs/tracekit.js index 6386010482e..f5646f0b93a 100644 --- a/static/scripts/libs/tracekit.js +++ b/static/scripts/libs/tracekit.js @@ -1,2 +1,2 @@ -!function(a){function b(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function c(a){return"undefined"==typeof a}var d={},e=a.TraceKit,f=[].slice,g="?";d.noConflict=function(){return a.TraceKit=e,d},d.wrap=function(a){function b(){try{return a.apply(this,arguments)}catch(b){throw d.report(b),b}}return b},d.report=function(){function c(a){i(),m.push(a)}function e(a){for(var b=m.length-1;b>=0;--b)m[b]===a&&m.splice(b,1)}function g(a,c){var e=null;if(!c||d.collectWindowErrors){for(var g in m)if(b(m,g))try{m[g].apply(null,[a].concat(f.call(arguments,2)))}catch(h){e=h}if(e)throw e}}function h(a,b,c){var e=null;if(o)d.computeStackTrace.augmentStackTraceWithInitialElement(o,b,c,a),e=o,o=null,n=null;else{var f={url:b,line:c};f.func=d.computeStackTrace.guessFunctionName(f.url,f.line),f.context=d.computeStackTrace.gatherContext(f.url,f.line),e={mode:"onerror",message:a,url:document.location.href,stack:[f],useragent:navigator.userAgent}}return g(e,"from window.onerror"),k?k.apply(this,arguments):!1}function i(){l!==!0&&(k=a.onerror,a.onerror=h,l=!0)}function j(b){var c=f.call(arguments,1);if(o){if(n===b)return;var e=o;o=null,n=null,g.apply(null,[e,null].concat(c))}var h=d.computeStackTrace(b);throw o=h,n=b,a.setTimeout(function(){n===b&&(o=null,n=null,g.apply(null,[h,null].concat(c)))},h.incomplete?2e3:0),b}var k,l,m=[],n=null,o=null;return j.subscribe=c,j.unsubscribe=e,j}(),d.computeStackTrace=function(){function e(b){if(!d.remoteFetching)return"";try{var c=function(){try{return new a.XMLHttpRequest}catch(b){return new a.ActiveXObject("Microsoft.XMLHTTP")}},e=c();return e.open("GET",b,!1),e.send(""),e.responseText}catch(f){return""}}function f(a){if(!b(w,a)){var c="";-1!==a.indexOf(document.domain)&&(c=e(a)),w[a]=c?c.split("\n"):[]}return w[a]}function h(a,b){var d,e=/function ([^(]*)\(([^)]*)\)/,h=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,i="",j=10,k=f(a);if(!k.length)return g;for(var l=0;j>l;++l)if(i=k[b-l]+i,!c(i)){if(d=h.exec(i))return d[1];if(d=e.exec(i))return d[1]}return g}function i(a,b){var e=f(a);if(!e.length)return null;var g=[],h=Math.floor(d.linesOfContext/2),i=h+d.linesOfContext%2,j=Math.max(0,b-h-1),k=Math.min(e.length,b+i-1);b-=1;for(var l=j;k>l;++l)c(e[l])||g.push(e[l]);return g.length>0?g:null}function j(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function k(a){return j(a).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function l(a,b){for(var c,d,e=0,g=b.length;g>e;++e)if((c=f(b[e])).length&&(c=c.join("\n"),d=a.exec(c)))return{url:b[e],line:c.substring(0,d.index).split("\n").length,column:d.index-c.lastIndexOf("\n",d.index)-1};return null}function m(a,b,c){var d,e=f(b),g=new RegExp("\\b"+j(a)+"\\b");return c-=1,e&&e.length>c&&(d=g.exec(e[c]))?d.index:null}function n(b){for(var c,d,e,f,g=[a.location.href],h=document.getElementsByTagName("script"),i=""+b,m=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,n=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,o=0;ol;++l){if(b=e.exec(f[l]))c={url:b[3],func:b[1]||g,args:b[2]?b[2].split(","):"",line:+b[4],column:b[5]?+b[5]:null};else{if(!(b=d.exec(f[l])))continue;c={url:b[2],func:b[1]||g,line:+b[3],column:b[4]?+b[4]:null}}!c.func&&c.line&&(c.func=h(c.url,c.line)),c.line&&(c.context=i(c.url,c.line)),j.push(c)}return j[0]&&j[0].line&&!j[0].column&&k&&(j[0].column=m(k[1],j[0].url,j[0].line)),j.length?{mode:"stack",name:a.name,message:a.message,url:document.location.href,stack:j,useragent:navigator.userAgent}:null}function p(a){for(var b,c=a.stacktrace,d=/ line (\d+), column (\d+) in (?:]+)>|([^\)]+))\((.*)\) in (.*):\s*$/i,e=c.split("\n"),f=[],g=0,j=e.length;j>g;g+=2)if(b=d.exec(e[g])){var k={line:+b[1],column:+b[2],func:b[3]||b[4],args:b[5]?b[5].split(","):[],url:b[6]};if(!k.func&&k.line&&(k.func=h(k.url,k.line)),k.line)try{k.context=i(k.url,k.line)}catch(l){}k.context||(k.context=[e[g+1]]),f.push(k)}return f.length?{mode:"stacktrace",name:a.name,message:a.message,url:document.location.href,stack:f,useragent:navigator.userAgent}:null}function q(c){var d=c.message.split("\n");if(d.length<4)return null;var e,g,j,m,n=/^\s*Line (\d+) of linked script ((?:file|http|https)\S+)(?:: in function (\S+))?\s*$/i,o=/^\s*Line (\d+) of inline#(\d+) script in ((?:file|http|https)\S+)(?:: in function (\S+))?\s*$/i,p=/^\s*Line (\d+) of function script\s*$/i,q=[],r=document.getElementsByTagName("script"),s=[];for(g in r)b(r,g)&&!r[g].src&&s.push(r[g]);for(g=2,j=d.length;j>g;g+=2){var t=null;if(e=n.exec(d[g]))t={url:e[2],func:e[3],line:+e[1]};else if(e=o.exec(d[g])){t={url:e[3],func:e[4]};var u=+e[1],v=s[e[2]-1];if(v&&(m=f(t.url))){m=m.join("\n");var w=m.indexOf(v.innerText);w>=0&&(t.line=u+m.substring(0,w).split("\n").length)}}else if(e=p.exec(d[g])){var x=a.location.href.replace(/#.*$/,""),y=e[1],z=new RegExp(k(d[g+1]));m=l(z,[x]),t={url:x,line:m?m.line:y,func:""}}if(t){t.func||(t.func=h(t.url,t.line));var A=i(t.url,t.line),B=A?A[Math.floor(A.length/2)]:null;t.context=A&&B.replace(/^\s*/,"")===d[g+1].replace(/^\s*/,"")?A:[d[g+1]],q.push(t)}}return q.length?{mode:"multiline",name:c.name,message:d[0],url:document.location.href,stack:q,useragent:navigator.userAgent}:null}function r(a,b,c,d){var e={url:b,line:c};if(e.url&&e.line){a.incomplete=!1,e.func||(e.func=h(e.url,e.line)),e.context||(e.context=i(e.url,e.line));var f=/ '([^']+)' /.exec(d);if(f&&(e.column=m(f[1],e.url,e.line)),a.stack.length>0&&a.stack[0].url===e.url){if(a.stack[0].line===e.line)return!1;if(!a.stack[0].line&&a.stack[0].func===e.func)return a.stack[0].line=e.line,a.stack[0].context=e.context,!1}return a.stack.unshift(e),a.partial=!0,!0}return a.incomplete=!0,!1}function s(a,b){for(var c,e,f,i=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,j=[],k={},l=!1,o=s.caller;o&&!l;o=o.caller)if(o!==t&&o!==d.report){if(e={url:null,func:g,line:null,column:null},o.name?e.func=o.name:(c=i.exec(o.toString()))&&(e.func=c[1]),f=n(o)){e.url=f.url,e.line=f.line,e.func===g&&(e.func=h(e.url,e.line));var p=/ '([^']+)' /.exec(a.message||a.description);p&&(e.column=m(p[1],f.url,f.line))}k[""+o]?l=!0:k[""+o]=!0,j.push(e)}b&&j.splice(0,b);var q={mode:"callers",name:a.name,message:a.message,url:document.location.href,stack:j,useragent:navigator.userAgent};return r(q,a.sourceURL||a.fileName,a.line||a.lineNumber,a.message||a.description),q}function t(a,b){var c=null;b=null==b?0:+b;try{if(c=p(a))return c}catch(d){if(v)throw d}try{if(c=o(a))return c}catch(d){if(v)throw d}try{if(c=q(a))return c}catch(d){if(v)throw d}try{if(c=s(a,b+1))return c}catch(d){if(v)throw d}return{mode:"failed"}}function u(a){a=(null==a?0:+a)+1;try{throw new Error}catch(b){return t(b,a+1)}}var v=!1,w={};return t.augmentStackTraceWithInitialElement=r,t.guessFunctionName=h,t.gatherContext=i,t.ofCaller=u,t}(),function(){var b=function(b){var c=a[b];a[b]=function(){var a=f.call(arguments),b=a[0];return"function"==typeof b&&(a[0]=d.wrap(b)),c.apply?c.apply(this,a):c(a[0],a[1])}};b("setTimeout"),b("setInterval")}(),d.remoteFetching||(d.remoteFetching=!0),d.collectWindowErrors||(d.collectWindowErrors=!0),(!d.linesOfContext||d.linesOfContext<1)&&(d.linesOfContext=11),a.TraceKit=d}(window); +!function(a){function b(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function c(a){return"undefined"==typeof a}if(a){var d={},e=a.TraceKit,f=[].slice,g="?";d.noConflict=function(){return a.TraceKit=e,d},d.wrap=function(a){function b(){try{return a.apply(this,arguments)}catch(b){throw d.report(b),b}}return b},d.report=function(){function c(a){i(),m.push(a)}function e(a){for(var b=m.length-1;b>=0;--b)m[b]===a&&m.splice(b,1)}function g(a,c){var e=null;if(!c||d.collectWindowErrors){for(var g in m)if(b(m,g))try{m[g].apply(null,[a].concat(f.call(arguments,2)))}catch(h){e=h}if(e)throw e}}function h(a,b,c,e,f){var h=null;if(f)h=d.computeStackTrace(f);else if(o)d.computeStackTrace.augmentStackTraceWithInitialElement(o,b,c,a),h=o,o=null,n=null;else{var i={url:b,line:c,column:e};i.func=d.computeStackTrace.guessFunctionName(i.url,i.line),i.context=d.computeStackTrace.gatherContext(i.url,i.line),h={mode:"onerror",message:a,url:document.location.href,stack:[i],useragent:navigator.userAgent}}return g(h,"from window.onerror"),k?k.apply(this,arguments):!1}function i(){l!==!0&&(k=a.onerror,a.onerror=h,l=!0)}function j(b){var c=f.call(arguments,1);if(o){if(n===b)return;var e=o;o=null,n=null,g.apply(null,[e,null].concat(c))}var h=d.computeStackTrace(b);throw o=h,n=b,a.setTimeout(function(){n===b&&(o=null,n=null,g.apply(null,[h,null].concat(c)))},h.incomplete?2e3:0),b}var k,l,m=[],n=null,o=null;return j.subscribe=c,j.unsubscribe=e,j}(),d.computeStackTrace=function(){function e(b){if(!d.remoteFetching)return"";try{var c=function(){try{return new a.XMLHttpRequest}catch(b){return new a.ActiveXObject("Microsoft.XMLHTTP")}},e=c();return e.open("GET",b,!1),e.send(""),e.responseText}catch(f){return""}}function f(a){if("string"!=typeof a)return[];if(!b(w,a)){var c="";a=a||"",a.indexOf&&-1!==a.indexOf(document.domain)&&(c=e(a)),w[a]=c?c.split("\n"):[]}return w[a]}function h(a,b){var d,e=/function ([^(]*)\(([^)]*)\)/,h=/['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,i="",j=10,k=f(a);if(!k.length)return g;for(var l=0;j>l;++l)if(i=k[b-l]+i,!c(i)){if(d=h.exec(i))return d[1];if(d=e.exec(i))return d[1]}return g}function i(a,b){var e=f(a);if(!e.length)return null;var g=[],h=Math.floor(d.linesOfContext/2),i=h+d.linesOfContext%2,j=Math.max(0,b-h-1),k=Math.min(e.length,b+i-1);b-=1;for(var l=j;k>l;++l)c(e[l])||g.push(e[l]);return g.length>0?g:null}function j(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g,"\\$&")}function k(a){return j(a).replace("<","(?:<|<)").replace(">","(?:>|>)").replace("&","(?:&|&)").replace('"','(?:"|")').replace(/\s+/g,"\\s+")}function l(a,b){for(var c,d,e=0,g=b.length;g>e;++e)if((c=f(b[e])).length&&(c=c.join("\n"),d=a.exec(c)))return{url:b[e],line:c.substring(0,d.index).split("\n").length,column:d.index-c.lastIndexOf("\n",d.index)-1};return null}function m(a,b,c){var d,e=f(b),g=new RegExp("\\b"+j(a)+"\\b");return c-=1,e&&e.length>c&&(d=g.exec(e[c]))?d.index:null}function n(b){for(var c,d,e,f,g=[a.location.href],h=document.getElementsByTagName("script"),i=""+b,m=/^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,n=/^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/,o=0;oo;++o){if(b=f.exec(k[o]))d={url:b[3],func:b[1]||g,args:b[2]?b[2].split(","):"",line:+b[4],column:b[5]?+b[5]:null};else if(b=e.exec(k[o]))d={url:b[2],func:b[1]||g,line:+b[3],column:b[4]?+b[4]:null};else{if(!(b=j.exec(k[o])))continue;d={url:b[2],func:b[1]||g,line:+b[3],column:b[4]?+b[4]:null}}!d.func&&d.line&&(d.func=h(d.url,d.line)),d.line&&(d.context=i(d.url,d.line)),l.push(d)}return l.length?(l[0]&&l[0].line&&!l[0].column&&n?l[0].column=m(n[1],l[0].url,l[0].line):l[0].column||c(a.columnNumber)||(l[0].column=a.columnNumber+1),{mode:"stack",name:a.name,message:a.message,url:document.location.href,stack:l,useragent:navigator.userAgent}):null}function p(a){for(var b,c=a.stacktrace,d=/ line (\d+), column (\d+) in (?:]+)>|([^\)]+))\((.*)\) in (.*):\s*$/i,e=c.split("\n"),f=[],g=0,j=e.length;j>g;g+=2)if(b=d.exec(e[g])){var k={line:+b[1],column:+b[2],func:b[3]||b[4],args:b[5]?b[5].split(","):[],url:b[6]};if(!k.func&&k.line&&(k.func=h(k.url,k.line)),k.line)try{k.context=i(k.url,k.line)}catch(l){}k.context||(k.context=[e[g+1]]),f.push(k)}return f.length?{mode:"stacktrace",name:a.name,message:a.message,url:document.location.href,stack:f,useragent:navigator.userAgent}:null}function q(c){var d=c.message.split("\n");if(d.length<4)return null;var e,g,j,m,n=/^\s*Line (\d+) of linked script ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,o=/^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?)\S+)(?:: in function (\S+))?\s*$/i,p=/^\s*Line (\d+) of function script\s*$/i,q=[],r=document.getElementsByTagName("script"),s=[];for(g in r)b(r,g)&&!r[g].src&&s.push(r[g]);for(g=2,j=d.length;j>g;g+=2){var t=null;if(e=n.exec(d[g]))t={url:e[2],func:e[3],line:+e[1]};else if(e=o.exec(d[g])){t={url:e[3],func:e[4]};var u=+e[1],v=s[e[2]-1];if(v&&(m=f(t.url))){m=m.join("\n");var w=m.indexOf(v.innerText);w>=0&&(t.line=u+m.substring(0,w).split("\n").length)}}else if(e=p.exec(d[g])){var x=a.location.href.replace(/#.*$/,""),y=e[1],z=new RegExp(k(d[g+1]));m=l(z,[x]),t={url:x,line:m?m.line:y,func:""}}if(t){t.func||(t.func=h(t.url,t.line));var A=i(t.url,t.line),B=A?A[Math.floor(A.length/2)]:null;t.context=A&&B.replace(/^\s*/,"")===d[g+1].replace(/^\s*/,"")?A:[d[g+1]],q.push(t)}}return q.length?{mode:"multiline",name:c.name,message:d[0],url:document.location.href,stack:q,useragent:navigator.userAgent}:null}function r(a,b,c,d){var e={url:b,line:c};if(e.url&&e.line){a.incomplete=!1,e.func||(e.func=h(e.url,e.line)),e.context||(e.context=i(e.url,e.line));var f=/ '([^']+)' /.exec(d);if(f&&(e.column=m(f[1],e.url,e.line)),a.stack.length>0&&a.stack[0].url===e.url){if(a.stack[0].line===e.line)return!1;if(!a.stack[0].line&&a.stack[0].func===e.func)return a.stack[0].line=e.line,a.stack[0].context=e.context,!1}return a.stack.unshift(e),a.partial=!0,!0}return a.incomplete=!0,!1}function s(a,b){for(var c,e,f,i=/function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i,j=[],k={},l=!1,o=s.caller;o&&!l;o=o.caller)if(o!==t&&o!==d.report){if(e={url:null,func:g,line:null,column:null},o.name?e.func=o.name:(c=i.exec(o.toString()))&&(e.func=c[1]),"undefined"==typeof e.func)try{e.func=c.input.substring(0,c.input.indexOf("{"))}catch(p){}if(f=n(o)){e.url=f.url,e.line=f.line,e.func===g&&(e.func=h(e.url,e.line));var q=/ '([^']+)' /.exec(a.message||a.description);q&&(e.column=m(q[1],f.url,f.line))}k[""+o]?l=!0:k[""+o]=!0,j.push(e)}b&&j.splice(0,b);var u={mode:"callers",name:a.name,message:a.message,url:document.location.href,stack:j,useragent:navigator.userAgent};return r(u,a.sourceURL||a.fileName,a.line||a.lineNumber,a.message||a.description),u}function t(a,b){var c=null;b=null==b?0:+b;try{if(c=p(a))return c}catch(d){if(v)throw d}try{if(c=o(a))return c}catch(d){if(v)throw d}try{if(c=q(a))return c}catch(d){if(v)throw d}try{if(c=s(a,b+1))return c}catch(d){if(v)throw d}return{mode:"failed"}}function u(a){a=(null==a?0:+a)+1;try{throw new Error}catch(b){return t(b,a+1)}}var v=!1,w={};return t.augmentStackTraceWithInitialElement=r,t.guessFunctionName=h,t.gatherContext=i,t.ofCaller=u,t.getSource=f,t}(),d.extendToAsynchronousCallbacks=function(){var b=function(b){var c=a[b];a[b]=function(){var a=f.call(arguments),b=a[0];return"function"==typeof b&&(a[0]=d.wrap(b)),c.apply?c.apply(this,a):c(a[0],a[1])}};b("setTimeout"),b("setInterval")},d.remoteFetching||(d.remoteFetching=!0),d.collectWindowErrors||(d.collectWindowErrors=!0),(!d.linesOfContext||d.linesOfContext<1)&&(d.linesOfContext=11),a.TraceKit=d}}("undefined"!=typeof window?window:global); //# sourceMappingURL=../../maps/libs/tracekit.js.map \ No newline at end of file diff --git a/static/scripts/mvc/form/form-select-content.js b/static/scripts/mvc/form/form-select-content.js index d695833fc70..b071f73ba0a 100644 --- a/static/scripts/mvc/form/form-select-content.js +++ b/static/scripts/mvc/form/form-select-content.js @@ -1,2 +1,2 @@ -define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-tabs","mvc/tools/tools-template"],function(a,b){history={};var c=Backbone.View.extend({initialize:function(c,d){this.app=c,this.options=d;var e=this;this.setElement('
'),this.list={};var f=[];this.mode="data_collection"==d.type?"collection":d.multiple?"multiple":"single",this.current=this.mode,this.list={};var g=a.textify(d.extensions),h="No dataset available.";g&&(h="No "+g+" dataset available.");var i="No dataset list available.";g&&(i="No "+g+" dataset collection available."),"single"==this.mode&&(f.push({icon:"fa-file-o",value:"single",tooltip:"Single dataset"}),this.select_single=new b.Select.View({optional:d.optional,error_text:h,onchange:function(){e.trigger("change")}}),this.list.single={field:this.select_single,type:"hda"}),("single"==this.mode||"multiple"==this.mode)&&(f.push({icon:"fa-files-o",value:"multiple",tooltip:"Multiple datasets"}),this.select_multiple=new b.Select.View({multiple:!0,searchable:!1,optional:d.optional,error_text:h,onchange:function(){e.trigger("change")}}),this.list.multiple={field:this.select_multiple,type:"hda"}),("single"==this.mode||"multiple"==this.mode||"collection"==this.mode)&&(f.push({icon:"fa-folder-o",value:"collection",tooltip:"Dataset collection"}),this.select_collection=new b.Select.View({error_text:i,optional:d.optional,onchange:function(){e.trigger("change")}}),this.list.collection={field:this.select_collection,type:"hdca"}),this.button_type=new b.RadioButton.View({value:this.current,data:f,onchange:function(a){e.current=a,e.refresh(),e.trigger("change")}}),this.$batch=$(this.template_batch());var j=_.size(this.list),k=0;j>1&&(this.$el.append(this.button_type.$el),k=Math.max(0,35*_.size(this.list))+"px");for(var l in this.list)this.$el.append(this.list[l].field.$el.css({"margin-left":k}));this.$el.append(this.$batch.css({"margin-left":k})),this.update(d.data),void 0!==this.options.value&&this.value(this.options.value),this.refresh(),this.on("change",function(){d.onchange&&d.onchange(e.value())})},wait:function(){for(var a in this.list)this.list[a].field.wait()},unwait:function(){for(var a in this.list)this.list[a].field.unwait()},update:function(a){function b(a,b){if(a){var c=[];for(var d in b){var e=b[d];c.push({label:e.hid+": "+e.name,value:e.id}),history[e.id+"_"+e.src]=e}a.update(c)}}b(this.select_single,a.hda),b(this.select_multiple,a.hda),b(this.select_collection,a.hdca)},value:function(a){if(void 0!==a)if(a&&a.values)try{var b=[];for(var c in a.values)b.push(a.values[c].id);a&&a.values.length>0&&"hdca"==a.values[0].src?(this.current="collection",this.select_collection.value(b[0])):"multiple"==this.mode?(this.current="multiple",this.select_multiple.value(b)):(this.current="single",this.select_single.value(b[0]))}catch(d){console.debug("tools-select-content::value() - Skipped.")}else for(var c in this.list)this.list[c].field.value(null);this.refresh();var e=this._select().value();if(null===e)return null;if(e instanceof Array||(e=[e]),0===e.length)return null;var f={batch:this._batch(),values:[]};for(var c in e){var g=history[e[c]+"_"+this.list[this.current].type];if(!g)return null;f.values.push(g)}return f.values.sort(function(a,b){return a.hid-b.hid}),f},refresh:function(){this.button_type.value(this.current);for(var a in this.list){var b=this.list[a].field.$el;this.current==a?b.show():b.hide()}this._batch()?this.$batch.show():this.$batch.hide()},_select:function(){return this.list[this.current].field},_batch:function(){if("collection"==this.current){var a=history[this._select().value()+"_hdca"];if(a&&a.map_over_type)return!0}return"single"!=this.current&&"single"==this.mode?!0:!1},template_batch:function(){return'
This is a batch mode input field. A separate job will be triggered for each dataset.
'}});return{View:c}}); +define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-tabs","mvc/tools/tools-template"],function(a,b){var c=Backbone.View.extend({initialize:function(c,d){this.app=c,this.options=d,this.history={};var e=this;this.setElement('
'),this.list={};var f=[];this.mode="data_collection"==d.type?"collection":d.multiple?"multiple":"single",this.current=this.mode,this.list={};var g=a.textify(d.extensions),h="No dataset available.";g&&(h="No "+g+" dataset available.");var i="No dataset list available.";g&&(i="No "+g+" dataset collection available."),"single"==this.mode&&(f.push({icon:"fa-file-o",value:"single",tooltip:"Single dataset"}),this.select_single=new b.Select.View({optional:d.optional,error_text:h,onchange:function(){e.trigger("change")}}),this.list.single={field:this.select_single,type:"hda"}),("single"==this.mode||"multiple"==this.mode)&&(f.push({icon:"fa-files-o",value:"multiple",tooltip:"Multiple datasets"}),this.select_multiple=new b.Select.View({multiple:!0,searchable:!1,optional:d.optional,error_text:h,onchange:function(){e.trigger("change")}}),this.list.multiple={field:this.select_multiple,type:"hda"}),("single"==this.mode||"multiple"==this.mode||"collection"==this.mode)&&(f.push({icon:"fa-folder-o",value:"collection",tooltip:"Dataset collection"}),this.select_collection=new b.Select.View({error_text:i,optional:d.optional,onchange:function(){e.trigger("change")}}),this.list.collection={field:this.select_collection,type:"hdca"}),this.button_type=new b.RadioButton.View({value:this.current,data:f,onchange:function(a){e.current=a,e.refresh(),e.trigger("change")}}),this.$batch=$(this.template_batch());var j=_.size(this.list),k=0;j>1&&(this.$el.append(this.button_type.$el),k=Math.max(0,35*_.size(this.list))+"px");for(var l in this.list)this.$el.append(this.list[l].field.$el.css({"margin-left":k}));this.$el.append(this.$batch.css({"margin-left":k})),this.update(d.data),void 0!==this.options.value&&this.value(this.options.value),this.refresh(),this.on("change",function(){d.onchange&&d.onchange(e.value())})},wait:function(){for(var a in this.list)this.list[a].field.wait()},unwait:function(){for(var a in this.list)this.list[a].field.unwait()},update:function(a){function b(a,b){if(a){var d=[];for(var e in b){var f=b[e];d.push({label:f.hid+": "+f.name,value:f.id}),c.history[f.id+"_"+f.src]=f}a.update(d)}}var c=this;b(this.select_single,a.hda),b(this.select_multiple,a.hda),b(this.select_collection,a.hdca)},value:function(a){if(void 0!==a)if(a&&a.values)try{var b=[];for(var c in a.values)b.push(a.values[c].id);a&&a.values.length>0&&"hdca"==a.values[0].src?(this.current="collection",this.select_collection.value(b[0])):"multiple"==this.mode?(this.current="multiple",this.select_multiple.value(b)):(this.current="single",this.select_single.value(b[0]))}catch(d){console.debug("tools-select-content::value() - Skipped.")}else for(var c in this.list)this.list[c].field.value(null);this.refresh();var e=this._select().value();if(null===e)return null;if(e instanceof Array||(e=[e]),0===e.length)return null;var f={batch:this._batch(),values:[]};for(var c in e){var g=this.history[e[c]+"_"+this.list[this.current].type];if(!g)return null;f.values.push(g)}return f.values.sort(function(a,b){return a.hid-b.hid}),f},refresh:function(){this.button_type.value(this.current);for(var a in this.list){var b=this.list[a].field.$el;this.current==a?b.show():b.hide()}this._batch()?this.$batch.show():this.$batch.hide()},_select:function(){return this.list[this.current].field},_batch:function(){if("collection"==this.current){var a=this.history[this._select().value()+"_hdca"];if(a&&a.map_over_type)return!0}return"single"!=this.current&&"single"==this.mode?!0:!1},template_batch:function(){return'
This is a batch mode input field. A separate job will be triggered for each dataset.
'}});return{View:c}}); //# sourceMappingURL=../../../maps/mvc/form/form-select-content.js.map \ No newline at end of file diff --git a/static/scripts/mvc/history/history-model.js b/static/scripts/mvc/history/history-model.js index 0046841481e..b197bae9eb8 100644 --- a/static/scripts/mvc/history/history-model.js +++ b/static/scripts/mvc/history/history-model.js @@ -1,2 +1,2 @@ -define(["mvc/history/history-contents","mvc/base-mvc","utils/localization"],function(a,b){var c=Backbone.Model.extend(b.LoggableMixin).extend(b.mixin(b.SearchableModelMixin,{defaults:{model_class:"History",id:null,name:"Unnamed History",state:"new",diskSize:0,deleted:!1},urlRoot:galaxy_config.root+"api/histories",initialize:function(b,c,d){d=d||{},this.logger=d.logger||null,this.log(this+".initialize:",b,c,d),this.log("creating history contents:",c),this.contents=new a.HistoryContents(c||[],{historyId:this.get("id")}),this._setUpListeners(),this.updateTimeoutId=null},_setUpListeners:function(){this.on("error",function(a,b,c,d,e){this.errorHandler(a,b,c,d,e)}),this.contents&&this.listenTo(this.contents,"error",function(){this.trigger.apply(this,["error:contents"].concat(jQuery.makeArray(arguments)))}),this.on("change:id",function(a,b){this.contents&&(this.contents.historyId=b)},this)},errorHandler:function(){this.clearUpdateTimeout()},ownedByCurrUser:function(){return Galaxy&&Galaxy.currUser?Galaxy.currUser.isAnonymous()||Galaxy.currUser.id!==this.get("user_id")?!1:!0:!1},contentsCount:function(){return _.reduce(_.values(this.get("state_details")),function(a,b){return a+b},0)},searchAttributes:["name","annotation","tags"],searchAliases:{title:"name",tag:"tags"},checkForUpdates:function(a){return this.contents.running().length?this.setUpdateTimeout():(this.trigger("ready"),_.isFunction(a)&&a.call(this)),this},setUpdateTimeout:function(a){a=a||c.UPDATE_DELAY;var b=this;return this.clearUpdateTimeout(),this.updateTimeoutId=setTimeout(function(){b.refresh()},a),this.updateTimeoutId},clearUpdateTimeout:function(){this.updateTimeoutId&&(clearTimeout(this.updateTimeoutId),this.updateTimeoutId=null)},refresh:function(a,b){a=a||[],b=b||{};var c=this;b.data=b.data||{},a.length&&(b.data.details=a.join(","));var d=this.contents.fetch(b);return d.done(function(){c.checkForUpdates(function(){this.fetch()})}),d},_delete:function(a){return this.get("deleted")?jQuery.when():this.save({deleted:!0},a)},purge:function(a){return this.get("purged")?jQuery.when():this.save({deleted:!0,purged:!0},a)},undelete:function(a){return this.get("deleted")?this.save({deleted:!1},a):jQuery.when()},copy:function(a,b){if(a=void 0!==a?a:!0,!this.id)throw new Error("You must set the history ID before copying it.");var d={history_id:this.id};a&&(d.current=!0),b&&(d.name=b);var e=this,f=jQuery.post(this.urlRoot,d);return a?f.then(function(a){var b=new c(a);return b.setAsCurrent().done(function(){e.trigger("copied",e,a)})}):f.done(function(a){e.trigger("copied",e,a)})},setAsCurrent:function(){var a=this,b=jQuery.getJSON(galaxy_config.root+"history/set_as_current?id="+this.id);return b.done(function(){a.trigger("set-as-current",a)}),b},toString:function(){return"History("+this.get("id")+","+this.get("name")+")"}}));c.UPDATE_DELAY=4e3,c.getHistoryData=function(a,b){function c(){return"current"===a?jQuery.getJSON(galaxy_config.root+"history/current_history_json"):jQuery.ajax(galaxy_config.root+"api/histories/"+a)}function d(a){return a&&a.empty}function e(a){if(d(a))return[];_.isFunction(f)&&(f=f(a)),_.isFunction(g)&&(g=g(a));var b={};return f.length&&(b.dataset_details=f.join(",")),g.length&&(b.dataset_collection_details=g.join(",")),jQuery.ajax(galaxy_config.root+"api/histories/"+a.id+"/contents",{data:b})}b=b||{};var f=b.detailIdsFn||[],g=b.hdcaDetailIds||[],h=jQuery.Deferred(),i=null,j=b.historyFn||c,k=b.contentsFn||e,l=j(a);l.done(function(a){i=a,h.notify({status:"history data retrieved",historyJSON:i})}),l.fail(function(a){h.reject(a,"loading the history")});var m=l.then(k);return m.then(function(a){h.notify({status:"contents data retrieved",historyJSON:i,contentsJSON:a}),h.resolve(i,a)}),m.fail(function(a){h.reject(a,"loading the contents",{history:i})}),h};var d=Backbone.Collection.extend(b.LoggableMixin).extend({model:c,urlRoot:(window.galaxy_config?galaxy_config.root:"/")+"api/histories",initialize:function(a,b){b=b||{},this.log("HistoryCollection.initialize",arguments),this.includeDeleted=b.includeDeleted||!1,this.setUpListeners()},setUpListeners:function(){var a=this;this.on("change:deleted",function(b){this.debug("change:deleted",a.includeDeleted,b.get("deleted")),!a.includeDeleted&&b.get("deleted")&&a.remove(b)}),this.on("copied",function(a,b){this.unshift(new c(b,[]))})},create:function(a,b,d){var e=this,f=jQuery.getJSON(galaxy_config.root+"history/create_new_current");return f.done(function(a){var b=new c(a,[],d||{});e.unshift(b),e.trigger("new-current")})},toString:function(){return"HistoryCollection("+this.length+")"}});return{History:c,HistoryCollection:d}}); +define(["mvc/history/history-contents","utils/utils","mvc/base-mvc","utils/localization"],function(a,b,c){var d=Backbone.Model.extend(c.LoggableMixin).extend(c.mixin(c.SearchableModelMixin,{defaults:{model_class:"History",id:null,name:"Unnamed History",state:"new",diskSize:0,deleted:!1},urlRoot:galaxy_config.root+"api/histories",initialize:function(b,c,d){d=d||{},this.logger=d.logger||null,this.log(this+".initialize:",b,c,d),this.log("creating history contents:",c),this.contents=new a.HistoryContents(c||[],{historyId:this.get("id")}),this._setUpListeners(),this.updateTimeoutId=null},_setUpListeners:function(){this.on("error",function(a,b,c,d,e){this.errorHandler(a,b,c,d,e)}),this.contents&&this.listenTo(this.contents,"error",function(){this.trigger.apply(this,["error:contents"].concat(jQuery.makeArray(arguments)))}),this.on("change:id",function(a,b){this.contents&&(this.contents.historyId=b)},this)},errorHandler:function(){this.clearUpdateTimeout()},nice_size:function(){return b.bytesToString(this.get("size"),!0,2)},toJSON:function(){return _.extend(Backbone.Model.prototype.toJSON.call(this),{nice_size:this.nice_size()})},get:function(a){return"nice_size"===a?this.nice_size():Backbone.Model.prototype.get.apply(this,arguments)},ownedByCurrUser:function(){return Galaxy&&Galaxy.currUser?Galaxy.currUser.isAnonymous()||Galaxy.currUser.id!==this.get("user_id")?!1:!0:!1},contentsCount:function(){return _.reduce(_.values(this.get("state_details")),function(a,b){return a+b},0)},searchAttributes:["name","annotation","tags"],searchAliases:{title:"name",tag:"tags"},checkForUpdates:function(a){return this.contents.running().length?this.setUpdateTimeout():(this.trigger("ready"),_.isFunction(a)&&a.call(this)),this},setUpdateTimeout:function(a){a=a||d.UPDATE_DELAY;var b=this;return this.clearUpdateTimeout(),this.updateTimeoutId=setTimeout(function(){b.refresh()},a),this.updateTimeoutId},clearUpdateTimeout:function(){this.updateTimeoutId&&(clearTimeout(this.updateTimeoutId),this.updateTimeoutId=null)},refresh:function(a,b){a=a||[],b=b||{};var c=this;b.data=b.data||{},a.length&&(b.data.details=a.join(","));var d=this.contents.fetch(b);return d.done(function(){c.checkForUpdates(function(){this.fetch()})}),d},_delete:function(a){return this.get("deleted")?jQuery.when():this.save({deleted:!0},a)},purge:function(a){return this.get("purged")?jQuery.when():this.save({deleted:!0,purged:!0},a)},undelete:function(a){return this.get("deleted")?this.save({deleted:!1},a):jQuery.when()},copy:function(a,b){if(a=void 0!==a?a:!0,!this.id)throw new Error("You must set the history ID before copying it.");var c={history_id:this.id};a&&(c.current=!0),b&&(c.name=b);var e=this,f=jQuery.post(this.urlRoot,c);return a?f.then(function(a){var b=new d(a);return b.setAsCurrent().done(function(){e.trigger("copied",e,a)})}):f.done(function(a){e.trigger("copied",e,a)})},setAsCurrent:function(){var a=this,b=jQuery.getJSON(galaxy_config.root+"history/set_as_current?id="+this.id);return b.done(function(){a.trigger("set-as-current",a)}),b},toString:function(){return"History("+this.get("id")+","+this.get("name")+")"}}));d.UPDATE_DELAY=4e3,d.getHistoryData=function(a,b){function c(){return"current"===a?jQuery.getJSON(galaxy_config.root+"history/current_history_json"):jQuery.ajax(galaxy_config.root+"api/histories/"+a)}function d(a){return a&&a.empty}function e(a){if(d(a))return[];_.isFunction(f)&&(f=f(a)),_.isFunction(g)&&(g=g(a));var b={};return f.length&&(b.dataset_details=f.join(",")),g.length&&(b.dataset_collection_details=g.join(",")),jQuery.ajax(galaxy_config.root+"api/histories/"+a.id+"/contents",{data:b})}b=b||{};var f=b.detailIdsFn||[],g=b.hdcaDetailIds||[],h=jQuery.Deferred(),i=null,j=b.historyFn||c,k=b.contentsFn||e,l=j(a);l.done(function(a){i=a,h.notify({status:"history data retrieved",historyJSON:i})}),l.fail(function(a){h.reject(a,"loading the history")});var m=l.then(k);return m.then(function(a){h.notify({status:"contents data retrieved",historyJSON:i,contentsJSON:a}),h.resolve(i,a)}),m.fail(function(a){h.reject(a,"loading the contents",{history:i})}),h};var e=Backbone.Collection.extend(c.LoggableMixin).extend({model:d,urlRoot:(window.galaxy_config?galaxy_config.root:"/")+"api/histories",initialize:function(a,b){b=b||{},this.log("HistoryCollection.initialize",arguments),this.includeDeleted=b.includeDeleted||!1,this.setUpListeners()},setUpListeners:function(){var a=this;this.on("change:deleted",function(b){this.debug("change:deleted",a.includeDeleted,b.get("deleted")),!a.includeDeleted&&b.get("deleted")&&a.remove(b)}),this.on("copied",function(a,b){this.unshift(new d(b,[]))})},create:function(a,b,c){var e=this,f=jQuery.getJSON(galaxy_config.root+"history/create_new_current");return f.done(function(a){var b=new d(a,[],c||{});e.unshift(b),e.trigger("new-current")})},toString:function(){return"HistoryCollection("+this.length+")"}});return{History:d,HistoryCollection:e}}); //# sourceMappingURL=../../../maps/mvc/history/history-model.js.map \ No newline at end of file diff --git a/static/scripts/mvc/history/history-panel-edit.js b/static/scripts/mvc/history/history-panel-edit.js index 28309553bbd..fb1956cdd07 100644 --- a/static/scripts/mvc/history/history-panel-edit.js +++ b/static/scripts/mvc/history/history-panel-edit.js @@ -1,2 +1,2 @@ -define(["mvc/history/history-panel","mvc/history/history-contents","mvc/dataset/states","mvc/history/hda-model","mvc/history/hda-li-edit","mvc/history/hdca-li-edit","mvc/tags","mvc/annotations","mvc/collection/list-collection-creator","mvc/collection/pair-collection-creator","mvc/collection/list-of-pairs-collection-creator","ui/fa-icon-button","mvc/ui/popup-menu","utils/localization"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var o=a.HistoryPanel,p=o.extend({HDAViewClass:e.HDAListItemEdit,HDCAViewClass:f.HDCAListItemEdit,initialize:function(a){a=a||{},o.prototype.initialize.call(this,a),this.tagsEditor=null,this.annotationEditor=null,this.purgeAllowed=a.purgeAllowed||!1,this.annotationEditorShown=a.annotationEditorShown||!1,this.tagsEditorShown=a.tagsEditorShown||!1},_setUpListeners:function(){var a=this;o.prototype._setUpListeners.call(a),a.on("drop",function(b,c){a.dataDropped(c),a.dropTargetOff()}),a.on("view:attached view:removed",function(){a._renderCounts()},a)},_setUpCollectionListeners:function(){return o.prototype._setUpCollectionListeners.call(this),this.collection.on("change:deleted",this._handleHdaDeletionChange,this),this.collection.on("change:visible",this._handleHdaVisibleChange,this),this.collection.on("change:purged",function(){this.model.fetch()},this),this},_setUpModelListeners:function(){return o.prototype._setUpModelListeners.call(this),this.model.on("change:nice_size",this.updateHistoryDiskSize,this),this},_buildNewRender:function(){var a=o.prototype._buildNewRender.call(this);return this.model?(Galaxy&&Galaxy.currUser&&Galaxy.currUser.id&&Galaxy.currUser.id===this.model.get("user_id")&&(this._renderTags(a),this._renderAnnotation(a)),a):a},renderItems:function(a){var b=o.prototype.renderItems.call(this,a);return this._renderCounts(a),b},_renderCounts:function(a){function b(a,b){return['',b,""].join("")}a=a||this.$el;var c=this.collection.where({deleted:!0}),d=this.collection.where({visible:!1}),e=[];return this.views.length&&e.push([this.views.length,n("shown")].join(" ")),c.length&&e.push(this.showDeleted?b("toggle-deleted-link",n("hide deleted")):[c.length,b("toggle-deleted-link",n("deleted"))].join(" ")),d.length&&e.push(this.showHidden?b("toggle-hidden-link",n("hide hidden")):[d.length,b("toggle-hidden-link",n("hidden"))].join(" ")),a.find("> .controls .subtitle").html(e.join(", "))},_renderTags:function(a){var b=this;this.tagsEditor=new g.TagsEditor({model:this.model,el:a.find(".controls .tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){b.toggleHDATagEditors(!0,b.fxSpeed)},onhide:function(){b.toggleHDATagEditors(!1,b.fxSpeed)},$activator:l({title:n("Edit history tags"),classes:"history-tag-btn",faIcon:"fa-tags"}).appendTo(a.find(".controls .actions"))})},_renderAnnotation:function(a){var b=this;this.annotationEditor=new h.AnnotationEditor({model:this.model,el:a.find(".controls .annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){b.toggleHDAAnnotationEditors(!0,b.fxSpeed)},onhide:function(){b.toggleHDAAnnotationEditors(!1,b.fxSpeed)},$activator:l({title:n("Edit history annotation"),classes:"history-annotate-btn",faIcon:"fa-comment"}).appendTo(a.find(".controls .actions"))})},_setUpBehaviors:function(a){if(a=a||this.$el,o.prototype._setUpBehaviors.call(this,a),this.model&&Galaxy.currUser&&!Galaxy.currUser.isAnonymous()&&Galaxy.currUser.id===this.model.get("user_id")){var b=this,c="> .controls .name";a.find(c).attr("title",n("Click to rename history")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(a){var d=b.model.get("name");a&&a!==d?(b.$el.find(c).text(a),b.model.save({name:a}).fail(function(){b.$el.find(c).text(b.model.previous("name"))})):b.$el.find(c).text(d)}})}},multiselectActions:function(){var a=this,b=[{html:n("Hide datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.hide;a.getSelectedModels().ajaxQueue(b)}},{html:n("Unhide datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.unhide;a.getSelectedModels().ajaxQueue(b)}},{html:n("Delete datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.delete;a.getSelectedModels().ajaxQueue(b)}},{html:n("Undelete datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.undelete;a.getSelectedModels().ajaxQueue(b)}}];return a.purgeAllowed&&b.push({html:n("Permanently delete datasets"),func:function(){if(confirm(n("This will permanently remove the data in your datasets. Are you sure?"))){var b=d.HistoryDatasetAssociation.prototype.purge;a.getSelectedModels().ajaxQueue(b)}}}),b=b.concat(a._collectionActions())},_collectionActions:function(){var a=this;return[{html:n("Build Dataset List"),func:function(){i.createListCollection(a.getSelectedModels()).done(function(){a.model.refresh()})}},{html:n("Build Dataset Pair"),func:function(){j.createPairCollection(a.getSelectedModels()).done(function(){a.model.refresh()})}},{html:n("Build List of Dataset Pairs"),func:function(){k.createListOfPairsCollection(a.getSelectedModels()).done(function(){a.model.refresh()})}}]},_attachItems:function(a){return this.$list(a).append(this.views.reverse().map(function(a){return a.$el})),this},_attachView:function(a){var b=this;b.views.unshift(a),b.$list().prepend(a.render(0).$el.hide()),b.trigger("view:attached",a),a.$el.slideDown(b.fxSpeed,function(){b.trigger("view:attached:rendered")})},_getItemViewOptions:function(a){var b=o.prototype._getItemViewOptions.call(this,a);return _.extend(b,{purgeAllowed:this.purgeAllowed,tagsEditorShown:this.tagsEditor&&!this.tagsEditor.hidden,annotationEditorShown:this.annotationEditor&&!this.annotationEditor.hidden}),b},_handleHdaDeletionChange:function(a){a.get("deleted")&&!this.showDeleted&&this.removeItemView(a),this._renderCounts()},_handleHdaVisibleChange:function(a){a.hidden()&&!this.showHidden&&this.removeItemView(a),this._renderCounts()},toggleHDATagEditors:function(){var a=Array.prototype.slice.call(arguments,1);_.each(this.views,function(b){b.tagsEditor&&b.tagsEditor.toggle.apply(b.tagsEditor,a)})},toggleHDAAnnotationEditors:function(){var a=Array.prototype.slice.call(arguments,1);_.each(this.views,function(b){b.annotationEditor&&b.annotationEditor.toggle.apply(b.annotationEditor,a)})},events:_.extend(_.clone(o.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click .toggle-deleted-link":function(){this.toggleShowDeleted()},"click .toggle-hidden-link":function(){this.toggleShowHidden()}}),updateHistoryDiskSize:function(){this.$el.find(".history-size").text(this.model.get("nice_size"))},dropTargetOn:function(){if(this.dropTarget)return this;this.dropTarget=!0;var a={dragenter:_.bind(this.dragenter,this),dragover:_.bind(this.dragover,this),dragleave:_.bind(this.dragleave,this),drop:_.bind(this.drop,this)},b=this._renderDropTarget();this.$list().before([this._renderDropTargetHelp(),b]);for(var c in a)a.hasOwnProperty(c)&&b.on(c,a[c]);return this},_renderDropTarget:function(){return this.$(".history-drop-target").remove(),$("
").addClass("history-drop-target").css({height:"64px",margin:"0px 10px 10px 10px",border:"1px dashed black","border-radius":"3px"})},_renderDropTargetHelp:function(){return this.$(".history-drop-target-help").remove(),$("
").addClass("history-drop-target-help").css({margin:"10px 10px 4px 10px",color:"grey","font-size":"80%","font-style":"italic"}).text(n("Drag datasets here to copy them to the current history"))},dropTargetOff:function(){if(!this.dropTarget)return this;this.dropTarget=!1;var a=this.$(".history-drop-target").get(0);for(var b in this._dropHandlers)this._dropHandlers.hasOwnProperty(b)&&a.off(b,this._dropHandlers[b]);return this.$(".history-drop-target").remove(),this.$(".history-drop-target-help").remove(),this},dropTargetToggle:function(){return this.dropTarget?this.dropTargetOff():this.dropTargetOn(),this},dragenter:function(a){a.preventDefault(),a.stopPropagation(),this.$(".history-drop-target").css("border","2px solid black")},dragover:function(a){a.preventDefault(),a.stopPropagation()},dragleave:function(a){a.preventDefault(),a.stopPropagation(),this.$(".history-drop-target").css("border","1px dashed black")},drop:function(a){a.preventDefault(),a.dataTransfer.dropEffect="move";var b=this,c=a.dataTransfer.getData("text");try{c=JSON.parse(c)}catch(d){this.warn("error parsing JSON from drop:",c)}return this.trigger("droptarget:drop",a,c,b),!1},dataDropped:function(a){var b=this;return _.isObject(a)&&"HistoryDatasetAssociation"===a.model_class&&a.id?b.model.contents.copy(a.id):jQuery.when()},toString:function(){return"HistoryPanelEdit("+(this.model?this.model.get("name"):"")+")"}});return{HistoryPanelEdit:p}}); +define(["mvc/history/history-panel","mvc/history/history-contents","mvc/dataset/states","mvc/history/hda-model","mvc/history/hda-li-edit","mvc/history/hdca-li-edit","mvc/tags","mvc/annotations","mvc/collection/list-collection-creator","mvc/collection/pair-collection-creator","mvc/collection/list-of-pairs-collection-creator","ui/fa-icon-button","mvc/ui/popup-menu","utils/localization"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var o=a.HistoryPanel,p=o.extend({HDAViewClass:e.HDAListItemEdit,HDCAViewClass:f.HDCAListItemEdit,initialize:function(a){a=a||{},o.prototype.initialize.call(this,a),this.tagsEditor=null,this.annotationEditor=null,this.purgeAllowed=a.purgeAllowed||!1,this.annotationEditorShown=a.annotationEditorShown||!1,this.tagsEditorShown=a.tagsEditorShown||!1},_setUpListeners:function(){var a=this;o.prototype._setUpListeners.call(a),a.on("drop",function(b,c){a.dataDropped(c),a.dropTargetOff()}),a.on("view:attached view:removed",function(){a._renderCounts()},a)},_setUpCollectionListeners:function(){return o.prototype._setUpCollectionListeners.call(this),this.collection.on("change:deleted",this._handleHdaDeletionChange,this),this.collection.on("change:visible",this._handleHdaVisibleChange,this),this.collection.on("change:purged",function(){this.model.fetch()},this),this},_setUpModelListeners:function(){return o.prototype._setUpModelListeners.call(this),this.model.on("change:size",this.updateHistoryDiskSize,this),this},_buildNewRender:function(){var a=o.prototype._buildNewRender.call(this);return this.model?(Galaxy&&Galaxy.currUser&&Galaxy.currUser.id&&Galaxy.currUser.id===this.model.get("user_id")&&(this._renderTags(a),this._renderAnnotation(a)),a):a},renderItems:function(a){var b=o.prototype.renderItems.call(this,a);return this._renderCounts(a),b},_renderCounts:function(a){function b(a,b){return['',b,""].join("")}a=a||this.$el;var c=this.collection.where({deleted:!0}),d=this.collection.where({visible:!1}),e=[];return this.views.length&&e.push([this.views.length,n("shown")].join(" ")),c.length&&e.push(this.showDeleted?b("toggle-deleted-link",n("hide deleted")):[c.length,b("toggle-deleted-link",n("deleted"))].join(" ")),d.length&&e.push(this.showHidden?b("toggle-hidden-link",n("hide hidden")):[d.length,b("toggle-hidden-link",n("hidden"))].join(" ")),a.find("> .controls .subtitle").html(e.join(", "))},_renderTags:function(a){var b=this;this.tagsEditor=new g.TagsEditor({model:this.model,el:a.find(".controls .tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){b.toggleHDATagEditors(!0,b.fxSpeed)},onhide:function(){b.toggleHDATagEditors(!1,b.fxSpeed)},$activator:l({title:n("Edit history tags"),classes:"history-tag-btn",faIcon:"fa-tags"}).appendTo(a.find(".controls .actions"))})},_renderAnnotation:function(a){var b=this;this.annotationEditor=new h.AnnotationEditor({model:this.model,el:a.find(".controls .annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){b.toggleHDAAnnotationEditors(!0,b.fxSpeed)},onhide:function(){b.toggleHDAAnnotationEditors(!1,b.fxSpeed)},$activator:l({title:n("Edit history annotation"),classes:"history-annotate-btn",faIcon:"fa-comment"}).appendTo(a.find(".controls .actions"))})},_setUpBehaviors:function(a){if(a=a||this.$el,o.prototype._setUpBehaviors.call(this,a),this.model&&Galaxy.currUser&&!Galaxy.currUser.isAnonymous()&&Galaxy.currUser.id===this.model.get("user_id")){var b=this,c="> .controls .name";a.find(c).attr("title",n("Click to rename history")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(a){var d=b.model.get("name");a&&a!==d?(b.$el.find(c).text(a),b.model.save({name:a}).fail(function(){b.$el.find(c).text(b.model.previous("name"))})):b.$el.find(c).text(d)}})}},multiselectActions:function(){var a=this,b=[{html:n("Hide datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.hide;a.getSelectedModels().ajaxQueue(b)}},{html:n("Unhide datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.unhide;a.getSelectedModels().ajaxQueue(b)}},{html:n("Delete datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.delete;a.getSelectedModels().ajaxQueue(b)}},{html:n("Undelete datasets"),func:function(){var b=d.HistoryDatasetAssociation.prototype.undelete;a.getSelectedModels().ajaxQueue(b)}}];return a.purgeAllowed&&b.push({html:n("Permanently delete datasets"),func:function(){if(confirm(n("This will permanently remove the data in your datasets. Are you sure?"))){var b=d.HistoryDatasetAssociation.prototype.purge;a.getSelectedModels().ajaxQueue(b)}}}),b=b.concat(a._collectionActions())},_collectionActions:function(){var a=this;return[{html:n("Build Dataset List"),func:function(){i.createListCollection(a.getSelectedModels()).done(function(){a.model.refresh()})}},{html:n("Build Dataset Pair"),func:function(){j.createPairCollection(a.getSelectedModels()).done(function(){a.model.refresh()})}},{html:n("Build List of Dataset Pairs"),func:function(){k.createListOfPairsCollection(a.getSelectedModels()).done(function(){a.model.refresh()})}}]},_attachItems:function(a){return this.$list(a).append(this.views.reverse().map(function(a){return a.$el})),this},_attachView:function(a){var b=this;b.views.unshift(a),b.$list().prepend(a.render(0).$el.hide()),b.trigger("view:attached",a),a.$el.slideDown(b.fxSpeed,function(){b.trigger("view:attached:rendered")})},_getItemViewOptions:function(a){var b=o.prototype._getItemViewOptions.call(this,a);return _.extend(b,{purgeAllowed:this.purgeAllowed,tagsEditorShown:this.tagsEditor&&!this.tagsEditor.hidden,annotationEditorShown:this.annotationEditor&&!this.annotationEditor.hidden}),b},_handleHdaDeletionChange:function(a){a.get("deleted")&&!this.showDeleted&&this.removeItemView(a),this._renderCounts()},_handleHdaVisibleChange:function(a){a.hidden()&&!this.showHidden&&this.removeItemView(a),this._renderCounts()},toggleHDATagEditors:function(){var a=Array.prototype.slice.call(arguments,1);_.each(this.views,function(b){b.tagsEditor&&b.tagsEditor.toggle.apply(b.tagsEditor,a)})},toggleHDAAnnotationEditors:function(){var a=Array.prototype.slice.call(arguments,1);_.each(this.views,function(b){b.annotationEditor&&b.annotationEditor.toggle.apply(b.annotationEditor,a)})},events:_.extend(_.clone(o.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click .toggle-deleted-link":function(){this.toggleShowDeleted()},"click .toggle-hidden-link":function(){this.toggleShowHidden()}}),updateHistoryDiskSize:function(){this.$el.find(".history-size").text(this.model.get("nice_size"))},dropTargetOn:function(){if(this.dropTarget)return this;this.dropTarget=!0;var a={dragenter:_.bind(this.dragenter,this),dragover:_.bind(this.dragover,this),dragleave:_.bind(this.dragleave,this),drop:_.bind(this.drop,this)},b=this._renderDropTarget();this.$list().before([this._renderDropTargetHelp(),b]);for(var c in a)a.hasOwnProperty(c)&&b.on(c,a[c]);return this},_renderDropTarget:function(){return this.$(".history-drop-target").remove(),$("
").addClass("history-drop-target").css({height:"64px",margin:"0px 10px 10px 10px",border:"1px dashed black","border-radius":"3px"})},_renderDropTargetHelp:function(){return this.$(".history-drop-target-help").remove(),$("
").addClass("history-drop-target-help").css({margin:"10px 10px 4px 10px",color:"grey","font-size":"80%","font-style":"italic"}).text(n("Drag datasets here to copy them to the current history"))},dropTargetOff:function(){if(!this.dropTarget)return this;this.dropTarget=!1;var a=this.$(".history-drop-target").get(0);for(var b in this._dropHandlers)this._dropHandlers.hasOwnProperty(b)&&a.off(b,this._dropHandlers[b]);return this.$(".history-drop-target").remove(),this.$(".history-drop-target-help").remove(),this},dropTargetToggle:function(){return this.dropTarget?this.dropTargetOff():this.dropTargetOn(),this},dragenter:function(a){a.preventDefault(),a.stopPropagation(),this.$(".history-drop-target").css("border","2px solid black")},dragover:function(a){a.preventDefault(),a.stopPropagation()},dragleave:function(a){a.preventDefault(),a.stopPropagation(),this.$(".history-drop-target").css("border","1px dashed black")},drop:function(a){a.preventDefault(),a.dataTransfer.dropEffect="move";var b=this,c=a.dataTransfer.getData("text");try{c=JSON.parse(c)}catch(d){this.warn("error parsing JSON from drop:",c)}return this.trigger("droptarget:drop",a,c,b),!1},dataDropped:function(a){var b=this;return _.isObject(a)&&"HistoryDatasetAssociation"===a.model_class&&a.id?b.model.contents.copy(a.id):jQuery.when()},toString:function(){return"HistoryPanelEdit("+(this.model?this.model.get("name"):"")+")"}});return{HistoryPanelEdit:p}}); //# sourceMappingURL=../../../maps/mvc/history/history-panel-edit.js.map \ No newline at end of file diff --git a/static/scripts/mvc/ui/ui-select-library.js b/static/scripts/mvc/ui/ui-select-library.js index 1248278a370..e76fcd8cc0c 100644 --- a/static/scripts/mvc/ui/ui-select-library.js +++ b/static/scripts/mvc/ui/ui-select-library.js @@ -1,2 +1,2 @@ -define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-table","mvc/ui/ui-list"],function(a,b,c,d){var e=Backbone.Collection.extend({url:galaxy_config.root+"api/libraries"}),f=Backbone.Collection.extend({initialize:function(){var a=this;this.config=new Backbone.Model({library_id:null}),this.config.on("change",function(){a.fetch({reset:!0})})},url:function(){return galaxy_config.root+"api/libraries/"+this.config.get("library_id")+"/contents"}}),g=Backbone.View.extend({initialize:function(a){var c=this;this.libraries=new e,this.datasets=new f,this.options=a,this.library_select=new b.Select.View({onchange:function(a){c.datasets.config.set("library_id",a)}}),this.dataset_list=new d.View({name:"dataset",optional:a.optional,multiple:a.multiple,onchange:function(){c.trigger("change")}}),this.libraries.on("reset",function(){var a=[];c.libraries.each(function(b){a.push({value:b.id,label:b.get("name")})}),c.library_select.update(a)}),this.datasets.on("reset",function(){var a=[],b=c.library_select.text();null!==b&&c.datasets.each(function(b){"file"===b.get("type")&&a.push({value:b.id,label:b.get("name")})}),c.dataset_list.update(a)}),this.on("change",function(){a.onchange&&a.onchange(c.value())}),this.setElement(this._template()),this.$(".library-select").append(this.library_select.$el),this.$el.append(this.dataset_list.$el),this.libraries.fetch({reset:!0,success:function(){c.library_select.trigger("change"),void 0!==c.options.value&&c.value(c.options.value)}})},value:function(a){return this.dataset_list.value(a)},_template:function(){return'
Select Library
'}});return{View:g}}); +define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-table","mvc/ui/ui-list"],function(a,b,c,d){var e=Backbone.Collection.extend({url:galaxy_config.root+"api/libraries?deleted=false"}),f=Backbone.Collection.extend({initialize:function(){var a=this;this.config=new Backbone.Model({library_id:null}),this.config.on("change",function(){a.fetch({reset:!0})})},url:function(){return galaxy_config.root+"api/libraries/"+this.config.get("library_id")+"/contents"}}),g=Backbone.View.extend({initialize:function(a){var c=this;this.libraries=new e,this.datasets=new f,this.options=a,this.library_select=new b.Select.View({onchange:function(a){c.datasets.config.set("library_id",a)}}),this.dataset_list=new d.View({name:"dataset",optional:a.optional,multiple:a.multiple,onchange:function(){c.trigger("change")}}),this.libraries.on("reset",function(){var a=[];c.libraries.each(function(b){a.push({value:b.id,label:b.get("name")})}),c.library_select.update(a)}),this.datasets.on("reset",function(){var a=[],b=c.library_select.text();null!==b&&c.datasets.each(function(b){"file"===b.get("type")&&a.push({value:b.id,label:b.get("name")})}),c.dataset_list.update(a)}),this.on("change",function(){a.onchange&&a.onchange(c.value())}),this.setElement(this._template()),this.$(".library-select").append(this.library_select.$el),this.$el.append(this.dataset_list.$el),this.libraries.fetch({reset:!0,success:function(){c.library_select.trigger("change"),void 0!==c.options.value&&c.value(c.options.value)}})},value:function(a){return this.dataset_list.value(a)},_template:function(){return'
Select Library
'}});return{View:g}}); //# sourceMappingURL=../../../maps/mvc/ui/ui-select-library.js.map \ No newline at end of file diff --git a/static/scripts/utils/query-string-parsing.js b/static/scripts/utils/query-string-parsing.js new file mode 100644 index 00000000000..5876aca56f3 --- /dev/null +++ b/static/scripts/utils/query-string-parsing.js @@ -0,0 +1,2 @@ +define([],function(){function a(a,b){b=b||window.location.search.substr(1);var c=new RegExp(a+"=([^&#$]+)"),d=b.match(c);return d&&d.length?(d=d.splice(1),1===d.length?d[0]:d):void 0}return{get:a}}); +//# sourceMappingURL=../../maps/utils/query-string-parsing.js.map \ No newline at end of file diff --git a/static/scripts/utils/utils.js b/static/scripts/utils/utils.js index a43ae070835..b2077a89952 100644 --- a/static/scripts/utils/utils.js +++ b/static/scripts/utils/utils.js @@ -1,2 +1,2 @@ -define(["libs/underscore"],function(a){function b(a,c){for(var d in a){var e=a[d];e&&"object"==typeof e&&(c(e),b(e,c))}}function c(a){return/^[\],:{}\s]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))}function d(a){return $("
").text(a).html()}function e(a){if(a instanceof Array||(a=[a]),0===a.length)return!1;for(var b in a)if(["__null__","__undefined__",null,void 0].indexOf(a[b])>-1)return!1;return!0}function f(a){var a=a.toString();if(a){a=a.replace(/,/g,", ");var b=a.lastIndexOf(", ");return-1!=b&&(a=a.substr(0,b)+" or "+a.substr(b+1)),a}return""}function g(a){top.__utils__get__=top.__utils__get__||{},a.cache&&top.__utils__get__[a.url]?(a.success&&a.success(top.__utils__get__[a.url]),console.debug("utils.js::get() - Fetching from cache ["+a.url+"].")):h({url:a.url,data:a.data,success:function(b){top.__utils__get__[a.url]=b,a.success&&a.success(b)},error:function(b){a.error&&a.error(b)}})}function h(a){var b={contentType:"application/json",type:a.type||"GET",data:a.data||{},url:a.url};"GET"==b.type||"DELETE"==b.type?(b.url+=-1==b.url.indexOf("?")?"?":"&",b.url=b.url+$.param(b.data,!0),b.data=null):(b.dataType="json",b.url=b.url,b.data=JSON.stringify(b.data)),$.ajax(b).done(function(b){if("string"==typeof b)try{b=b.replace("Infinity,",'"Infinity",'),b=jQuery.parseJSON(b)}catch(c){console.debug(c)}a.success&&a.success(b)}).fail(function(b){var c=null;try{c=jQuery.parseJSON(b.responseText)}catch(d){c=b.responseText}a.error&&a.error(c,b)})}function i(a,b){var c=$('
');c.appendTo(":eq(0)");var d=c.css(b);return c.remove(),d}function j(a){$('link[href^="'+a+'"]').length||$('').appendTo("head")}function k(b,c){return b?a.defaults(b,c):c}function l(a,b){var c="";if(a>=1e11)a/=1e11,c="TB";else if(a>=1e8)a/=1e8,c="GB";else if(a>=1e5)a/=1e5,c="MB";else if(a>=100)a/=100,c="KB";else{if(!(a>0))return"-";a=10*a,c="b"}var d=Math.round(a)/10;return b?d+" "+c:""+d+" "+c}function m(){return top.__utils__uid__=top.__utils__uid__||0,"uid-"+top.__utils__uid__++}function n(){var a=new Date,b=(a.getHours()<10?"0":"")+a.getHours(),c=(a.getMinutes()<10?"0":"")+a.getMinutes(),d=a.getDate()+"/"+(a.getMonth()+1)+"/"+a.getFullYear()+", "+b+":"+c;return d}return{cssLoadFile:j,cssGetAttribute:i,get:g,merge:k,bytesToString:l,uid:m,time:n,request:h,sanitize:d,textify:f,validate:e,deepeach:b,isJSON:c}}); +define(["libs/underscore"],function(a){function b(a,c){for(var d in a){var e=a[d];e&&"object"==typeof e&&(c(e),b(e,c))}}function c(a){return/^[\],:{}\s]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))}function d(a){return $("
").text(a).html()}function e(a){if(a instanceof Array||(a=[a]),0===a.length)return!1;for(var b in a)if(["__null__","__undefined__",null,void 0].indexOf(a[b])>-1)return!1;return!0}function f(a){var a=a.toString();if(a){a=a.replace(/,/g,", ");var b=a.lastIndexOf(", ");return-1!=b&&(a=a.substr(0,b)+" or "+a.substr(b+1)),a}return""}function g(a){top.__utils__get__=top.__utils__get__||{},a.cache&&top.__utils__get__[a.url]?(a.success&&a.success(top.__utils__get__[a.url]),console.debug("utils.js::get() - Fetching from cache ["+a.url+"].")):h({url:a.url,data:a.data,success:function(b){top.__utils__get__[a.url]=b,a.success&&a.success(b)},error:function(b){a.error&&a.error(b)}})}function h(a){var b={contentType:"application/json",type:a.type||"GET",data:a.data||{},url:a.url};"GET"==b.type||"DELETE"==b.type?(b.url+=-1==b.url.indexOf("?")?"?":"&",b.url=b.url+$.param(b.data,!0),b.data=null):(b.dataType="json",b.url=b.url,b.data=JSON.stringify(b.data)),$.ajax(b).done(function(b){if("string"==typeof b)try{b=b.replace("Infinity,",'"Infinity",'),b=jQuery.parseJSON(b)}catch(c){console.debug(c)}a.success&&a.success(b)}).fail(function(b){var c=null;try{c=jQuery.parseJSON(b.responseText)}catch(d){c=b.responseText}a.error&&a.error(c,b)})}function i(a,b){var c=$('
');c.appendTo(":eq(0)");var d=c.css(b);return c.remove(),d}function j(a){$('link[href^="'+a+'"]').length||$('').appendTo("head")}function k(b,c){return b?a.defaults(b,c):c}function l(a,b){for(var c=1,d=0;b>d;d++)c*=10;return Math.round(a*c)/c}function m(a,b,c){c=void 0!==c?c:1;var d="";if(a>=s)a/=s,d="TB";else if(a>=r)a/=r,d="GB";else if(a>=q)a/=q,d="MB";else if(a>=p)a/=p,d="KB";else{if(!(a>0))return b?"0 b":"-";d="b"}var e="b"==d?a:l(a,c);return b?e+" "+d:""+e+" "+d}function n(){return top.__utils__uid__=top.__utils__uid__||0,"uid-"+top.__utils__uid__++}function o(){var a=new Date,b=(a.getHours()<10?"0":"")+a.getHours(),c=(a.getMinutes()<10?"0":"")+a.getMinutes(),d=a.getDate()+"/"+(a.getMonth()+1)+"/"+a.getFullYear()+", "+b+":"+c;return d}var p=1024,q=p*p,r=q*p,s=r*p;return{cssLoadFile:j,cssGetAttribute:i,get:g,merge:k,bytesToString:m,uid:n,time:o,request:h,sanitize:d,textify:f,validate:e,deepeach:b,isJSON:c}}); //# sourceMappingURL=../../maps/utils/utils.js.map \ No newline at end of file diff --git a/static/scripts/viz/trackster.js b/static/scripts/viz/trackster.js index 2703449f2b3..7f0e84a9531 100644 --- a/static/scripts/viz/trackster.js +++ b/static/scripts/viz/trackster.js @@ -1,2 +1,2 @@ -var ui=null,view=null,browser_router=null;require(["utils/utils","libs/jquery/jquery.event.drag","libs/jquery/jquery.event.hover","libs/jquery/jquery.mousewheel","libs/jquery/jquery-ui","libs/jquery/select2","libs/farbtastic","libs/jquery/jquery.form","libs/jquery/jquery.rating"],function(a){a.cssLoadFile("static/style/jquery.rating.css"),a.cssLoadFile("static/style/autocomplete_tagging.css"),a.cssLoadFile("static/style/jquery-ui/smoothness/jquery-ui.css"),a.cssLoadFile("static/style/library.css"),a.cssLoadFile("static/style/trackster.css")}),define(["libs/underscore","base","viz/trackster/tracks","viz/visualization","mvc/ui/icon-button"],function(a,b,c,d,e){var f=b.Base.extend({initialize:function(a){this.baseURL=a},save_viz:function(){Galaxy.modal.show({title:"Saving...",body:"progress"});var a=[];$(".bookmark").each(function(){a.push({position:$(this).children(".position").text(),annotation:$(this).children(".annotation").text()})});var b=view.overview_drawable?view.overview_drawable.config.get_value("name"):null,c={view:view.to_dict(),viewport:{chrom:view.chrom,start:view.low,end:view.high,overview:b},bookmarks:a};return $.ajax({url:galaxy_config.root+"visualization/save",type:"POST",dataType:"json",data:{id:view.vis_id,title:view.config.get_value("name"),dbkey:view.dbkey,type:"trackster",vis_json:JSON.stringify(c)}}).success(function(a){Galaxy.modal.hide(),view.vis_id=a.vis_id,view.has_changes=!1,window.history.pushState({},"",a.url+window.location.hash)}).error(function(){Galaxy.modal.show({title:"Could Not Save",body:"Could not save visualization. Please try again later.",buttons:{Cancel:function(){Galaxy.modal.hide()}}})})},createButtonMenu:function(){var b=this,f=e.create_icon_buttons_menu([{icon_class:"plus-button",title:"Add tracks",on_click:function(){d.select_datasets(galaxy_config.root+"visualization/list_current_history_datasets",galaxy_config.root+"api/datasets",{"f-dbkey":view.dbkey},function(b){a.each(b,function(a){view.add_drawable(c.object_from_template(a,view,view))})})}},{icon_class:"block--plus",title:"Add group",on_click:function(){view.add_drawable(new c.DrawableGroup(view,view,{name:"New Group"}))}},{icon_class:"bookmarks",title:"Bookmarks",on_click:function(){force_right_panel("0px"==$("div#right").css("right")?"hide":"show")}},{icon_class:"globe",title:"Circster",on_click:function(){window.location=b.baseURL+"visualization/circster?id="+view.vis_id}},{icon_class:"disk--arrow",title:"Save",on_click:function(){b.save_viz()}},{icon_class:"cross-circle",title:"Close",on_click:function(){b.handle_unsaved_changes(view)}}],{tooltip_config:{placement:"bottom"}});return this.buttonMenu=f,f},add_bookmarks:function(){{var a=this;this.baseURL}Galaxy.modal.show({title:"Select dataset for new bookmarks",body:"progress"}),$.ajax({url:this.baseURL+"/visualization/list_histories",data:{"f-dbkey":view.dbkey},error:function(){alert("Grid failed")},success:function(b){Galaxy.modal.show({title:"Select dataset for new bookmarks",body:b,buttons:{Cancel:function(){Galaxy.modal.hide()},Insert:function(){$("input[name=id]:checked,input[name=ldda_ids]:checked").first().each(function(){var b,c=$(this).val();b="id"===$(this).attr("name")?{hda_id:c}:{ldda_id:c},$.ajax({url:this.baseURL+"/visualization/bookmarks_from_dataset",data:b,dataType:"json"}).then(function(b){for(i=0;i").addClass("bookmark").appendTo(d),f=$("
").addClass("position").appendTo(e),g=($("").text(a).appendTo(f).click(function(){return view.go_to(a),!1}),$("
").text(b).appendTo(e));if(c){{var h=$("
").addClass("delete-icon-container").prependTo(e).click(function(){return e.slideUp("fast"),e.remove(),view.has_changes=!0,!1});$("").addClass("icon-button delete").appendTo(h)}g.make_text_editable({num_rows:3,use_textarea:!0,help_text:"Edit bookmark note"}).addClass("annotation")}return view.has_changes=!0,e},create_visualization:function(b,d,e,f,g){var h=this,i=new c.TracksterView(a.extend(b,{header:!1}));return i.editor=!0,$.when(i.load_chroms_deferred).then(function(a){if(d){var b=d.chrom,j=d.start,k=d.end,l=d.overview;b&&void 0!==j&&k?i.change_chrom(b,j,k):i.change_chrom(a[0].chrom)}else i.change_chrom(a[0].chrom);if(e)for(var m=0;m"),$("#right-border").click(function(){view.resize_window()}),force_right_panel("hide"),galaxy_config.app.id?this.view_existing():this.view_new()},view_existing:function(){var a=galaxy_config.app.viz_config;view=ui.create_visualization({container:$("#center .unified-panel-body"),name:a.title,vis_id:a.vis_id,dbkey:a.dbkey},a.viewport,a.tracks,a.bookmarks,!0),this.init_editor()},view_new:function(){var a=this;$.ajax({url:galaxy_config.root+"api/genomes?chrom_info=True",data:{},error:function(){alert("Couldn't create new browser.")},success:function(b){Galaxy.modal.show({title:"New Visualization",body:a.template_view_new(b),buttons:{Cancel:function(){window.location=galaxy_config.root+"visualization/list"},Create:function(){a.create_browser($("#new-title").val(),$("#new-dbkey").val()),Galaxy.modal.hide()}}}),galaxy_config.app.default_dbkey&&$("#new-dbkey").val(galaxy_config.app.default_dbkey),$("#new-title").focus(),$("select[name='dbkey']").select2(),$("#overlay").css("overflow","auto")}})},template_view_new:function(a){for(var b='
Is the build not listed here? Add a Custom Build
'},create_browser:function(a,b){$(document).trigger("convert_to_values"),view=ui.create_visualization({container:$("#center .unified-panel-body"),name:a,dbkey:b},galaxy_config.app.gene_region),this.init_editor(),view.editor=!0},init_editor:function(){$("#center .unified-panel-title").text(view.config.get_value("name")+" ("+view.dbkey+")"),galaxy_config.app.add_dataset&&$.ajax({url:galaxy_config.root+"api/datasets/"+galaxy_config.app.add_dataset,data:{hda_ldda:"hda",data_type:"track_config"},dataType:"json",success:function(a){view.add_drawable(c.object_from_template(a,view,view))}}),$("#add-bookmark-button").click(function(){var a=view.chrom+":"+view.low+"-"+view.high,b="Bookmark description";return ui.add_bookmark(a,b,!0)}),ui.init_keyboard_nav(view),$(window).on("beforeunload",function(){return view.has_changes?"There are unsaved changes to your visualization that will be lost if you leave this page.":void 0})}});return{TracksterUI:f,GalaxyApp:g}}); +var ui=null,view=null,browser_router=null;require(["utils/utils","libs/jquery/jquery.event.drag","libs/jquery/jquery.event.hover","libs/jquery/jquery.mousewheel","libs/jquery/jquery-ui","libs/jquery/select2","libs/farbtastic","libs/jquery/jquery.form","libs/jquery/jquery.rating"],function(a){a.cssLoadFile("static/style/jquery.rating.css"),a.cssLoadFile("static/style/autocomplete_tagging.css"),a.cssLoadFile("static/style/jquery-ui/smoothness/jquery-ui.css"),a.cssLoadFile("static/style/library.css"),a.cssLoadFile("static/style/trackster.css")}),define(["libs/underscore","base","viz/trackster/tracks","viz/visualization","mvc/ui/icon-button","utils/query-string-parsing"],function(a,b,c,d,e,f){var g=b.Base.extend({initialize:function(a){this.baseURL=a},save_viz:function(){Galaxy.modal.show({title:"Saving...",body:"progress"});var a=[];$(".bookmark").each(function(){a.push({position:$(this).children(".position").text(),annotation:$(this).children(".annotation").text()})});var b=view.overview_drawable?view.overview_drawable.config.get_value("name"):null,c={view:view.to_dict(),viewport:{chrom:view.chrom,start:view.low,end:view.high,overview:b},bookmarks:a};return $.ajax({url:galaxy_config.root+"visualization/save",type:"POST",dataType:"json",data:{id:view.vis_id,title:view.config.get_value("name"),dbkey:view.dbkey,type:"trackster",vis_json:JSON.stringify(c)}}).success(function(a){Galaxy.modal.hide(),view.vis_id=a.vis_id,view.has_changes=!1,window.history.pushState({},"",a.url+window.location.hash)}).error(function(){Galaxy.modal.show({title:"Could Not Save",body:"Could not save visualization. Please try again later.",buttons:{Cancel:function(){Galaxy.modal.hide()}}})})},createButtonMenu:function(){var b=this,f=e.create_icon_buttons_menu([{icon_class:"plus-button",title:"Add tracks",on_click:function(){d.select_datasets(galaxy_config.root+"visualization/list_current_history_datasets",galaxy_config.root+"api/datasets",{"f-dbkey":view.dbkey},function(b){a.each(b,function(a){view.add_drawable(c.object_from_template(a,view,view))})})}},{icon_class:"block--plus",title:"Add group",on_click:function(){view.add_drawable(new c.DrawableGroup(view,view,{name:"New Group"}))}},{icon_class:"bookmarks",title:"Bookmarks",on_click:function(){force_right_panel("0px"==$("div#right").css("right")?"hide":"show")}},{icon_class:"globe",title:"Circster",on_click:function(){window.location=b.baseURL+"visualization/circster?id="+view.vis_id}},{icon_class:"disk--arrow",title:"Save",on_click:function(){b.save_viz()}},{icon_class:"cross-circle",title:"Close",on_click:function(){b.handle_unsaved_changes(view)}}],{tooltip_config:{placement:"bottom"}});return this.buttonMenu=f,f},add_bookmarks:function(){{var a=this;this.baseURL}Galaxy.modal.show({title:"Select dataset for new bookmarks",body:"progress"}),$.ajax({url:this.baseURL+"/visualization/list_histories",data:{"f-dbkey":view.dbkey},error:function(){alert("Grid failed")},success:function(b){Galaxy.modal.show({title:"Select dataset for new bookmarks",body:b,buttons:{Cancel:function(){Galaxy.modal.hide()},Insert:function(){$("input[name=id]:checked,input[name=ldda_ids]:checked").first().each(function(){var b,c=$(this).val();b="id"===$(this).attr("name")?{hda_id:c}:{ldda_id:c},$.ajax({url:this.baseURL+"/visualization/bookmarks_from_dataset",data:b,dataType:"json"}).then(function(b){for(i=0;i").addClass("bookmark").appendTo(d),f=$("
").addClass("position").appendTo(e),g=($("").text(a).appendTo(f).click(function(){return view.go_to(a),!1}),$("
").text(b).appendTo(e));if(c){{var h=$("
").addClass("delete-icon-container").prependTo(e).click(function(){return e.slideUp("fast"),e.remove(),view.has_changes=!0,!1});$("").addClass("icon-button delete").appendTo(h)}g.make_text_editable({num_rows:3,use_textarea:!0,help_text:"Edit bookmark note"}).addClass("annotation")}return view.has_changes=!0,e},create_visualization:function(b,d,e,f,g){var h=this,i=new c.TracksterView(a.extend(b,{header:!1}));return i.editor=!0,$.when(i.load_chroms_deferred).then(function(a){if(d){var b=d.chrom,j=d.start,k=d.end,l=d.overview;b&&void 0!==j&&k?i.change_chrom(b,j,k):i.change_chrom(a[0].chrom)}else i.change_chrom(a[0].chrom);if(e)for(var m=0;m"),$("#right-border").click(function(){view.resize_window()}),force_right_panel("hide"),galaxy_config.app.id?this.view_existing():f.get("dataset_id")?this.choose_existing_or_new():this.view_new()},choose_existing_or_new:function(){var a=this,b=f.get("dbkey"),c={},d={dbkey:b,dataset_id:f.get("dataset_id"),hda_ldda:f.get("hda_ldda")};b&&(c["f-dbkey"]=b),$.ajax({url:galaxy_config.root+"visualization/list_tracks?"+$.param(c),dataType:"html",error:function(){alert("Could not add this dataset to browser.")},success:function(c){function e(){Galaxy.modal.show({title:"Add Data to Saved Visualization",body:c,buttons:{Cancel:function(){f()},"Add to visualization":function(){$(parent.document).find("input[name=id]:checked").each(function(){var a=$(this).val();d.id=a,window.location=galaxy_config.root+"visualization/trackster?"+$.param(d)})}}})}function f(){Galaxy.modal.show({title:"View Data in a New or Saved Visualization?",body:'

    You can add this dataset as:
  • a new track to one of your existing, saved Trackster sessions if they share the genome build: '+b+"
  • or create a new session with this dataset as the only track

",buttons:{Cancel:function(){window.location=galaxy_config.root+"visualization/list"},"View in saved visualization":function(){e()},"View in new visualization":function(){a.view_new()}}})}console.debug("success"),f()}})},view_existing:function(){var a=galaxy_config.app.viz_config;view=ui.create_visualization({container:$("#center .unified-panel-body"),name:a.title,vis_id:a.vis_id,dbkey:a.dbkey},a.viewport,a.tracks,a.bookmarks,!0),this.init_editor()},view_new:function(){var b=this;$.ajax({url:galaxy_config.root+"api/genomes?chrom_info=True",data:{},error:function(){alert("Couldn't create new browser.")},success:function(c){Galaxy.modal.show({title:"New Visualization",body:b.template_view_new(c),buttons:{Cancel:function(){window.location=galaxy_config.root+"visualization/list"},Create:function(){b.create_browser($("#new-title").val(),$("#new-dbkey").val()),Galaxy.modal.hide()}}});var d=c.map(function(a){return a[1]});galaxy_config.app.default_dbkey&&a.contains(d,galaxy_config.app.default_dbkey)&&$("#new-dbkey").val(galaxy_config.app.default_dbkey),$("#new-title").focus(),$("select[name='dbkey']").select2(),$("#overlay").css("overflow","auto")}})},template_view_new:function(a){for(var b='
Is the build not listed here? Add a Custom Build
'},create_browser:function(a,b){$(document).trigger("convert_to_values"),view=ui.create_visualization({container:$("#center .unified-panel-body"),name:a,dbkey:b},galaxy_config.app.gene_region),this.init_editor(),view.editor=!0},init_editor:function(){$("#center .unified-panel-title").text(view.config.get_value("name")+" ("+view.dbkey+")"),galaxy_config.app.add_dataset&&$.ajax({url:galaxy_config.root+"api/datasets/"+galaxy_config.app.add_dataset,data:{hda_ldda:"hda",data_type:"track_config"},dataType:"json",success:function(a){view.add_drawable(c.object_from_template(a,view,view))}}),$("#add-bookmark-button").click(function(){var a=view.chrom+":"+view.low+"-"+view.high,b="Bookmark description";return ui.add_bookmark(a,b,!0)}),ui.init_keyboard_nav(view),$(window).on("beforeunload",function(){return view.has_changes?"There are unsaved changes to your visualization that will be lost if you leave this page.":void 0})}});return{TracksterUI:g,GalaxyApp:h}}); //# sourceMappingURL=../../maps/viz/trackster.js.map \ No newline at end of file diff --git a/static/style/blue/base.css b/static/style/blue/base.css index 8a9b1c3edff..4e5dfd46585 100644 --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -1,4 +1,4 @@ -/*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:12px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#303030;text-decoration:none}a:hover,a:focus{color:#0a0a0a;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:5px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #bfbfbf;border-radius:3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:17px;margin-bottom:17px;border:0;border-top:1px solid #bfbfbf}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 8.5px}.lead{margin-bottom:17px;font-size:13.8px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:18px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#25537b}.text-warning{color:#81581e}.text-danger{color:#7f2a27}.text-success{color:#295f29}.text-info{color:#1f5768}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-weight:800;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:17px;margin-bottom:8.5px}h1 small,h2 small,h3 small{font-size:65%}h4,h5,h6{margin-top:8.5px;margin-bottom:8.5px}h4 small,h5 small,h6 small{font-size:75%}h1,.h1{font-size:24px}h2,.h2{font-size:21px}h3,.h3{font-size:18px}h4,.h4{font-size:15px}h5,.h5{font-size:12px}h6,.h6{font-size:11px}.page-header{padding-bottom:7.5px;margin:34px 0 17px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:8.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:17px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:0){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:8.5px 17px;margin:0 0 17px;border-left:5px solid #eee}blockquote p{font-size:15px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857143;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:17px;font-style:normal;line-height:1.42857143}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.33333333%}.col-xs-2{width:16.66666667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333%}.col-xs-5{width:41.66666667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333333%}.col-xs-8{width:66.66666667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333%}.col-xs-11{width:91.66666667%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-push-1{left:8.33333333%}.col-sm-push-2{left:16.66666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333%}.col-sm-push-5{left:41.66666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333333%}.col-sm-push-8{left:66.66666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333%}.col-sm-push-11{left:91.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-11{right:91.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333333%}.col-md-push-2{left:16.66666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333%}.col-md-push-5{left:41.66666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333333%}.col-md-push-8{left:66.66666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333%}.col-md-push-11{left:91.66666667%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333333%}.col-md-pull-2{right:16.66666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333%}.col-md-pull-5{right:41.66666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333333%}.col-md-pull-8{right:66.66666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333%}.col-md-pull-11{right:91.66666667%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333333%}.col-lg-push-2{left:16.66666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333%}.col-lg-push-5{left:41.66666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333333%}.col-lg-push-8{left:66.66666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333%}.col-lg-push-11{left:91.66666667%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-11{right:91.66666667%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:17px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #d6b161}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d6b161}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #d6b161}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #d6b161}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #d6b161}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#b0f1b0;border-color:#20b520}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#9aed9a;border-color:#1c9f1c}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f9c7c5;border-color:#dd1b15}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#f7b0ae;border-color:#c61813}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fce1bb;border-color:#e28809}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#fbd7a2;border-color:#ca7a08}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #d6b161;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:17px;font-size:18px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #bfbfbf}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:5px;font-size:12px;line-height:1.42857143;color:#555;vertical-align:middle}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:27px;padding:4px 10px;font-size:12px;line-height:1.42857143;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:17px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:24px;padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}select.input-sm{height:24px;line-height:24px}textarea.input-sm{height:auto}.input-lg{height:37px;padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}select.input-lg{height:37px;line-height:37px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#81581e}.has-warning .form-control{border-color:#81581e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#583c14;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d09034;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d09034}.has-warning .input-group-addon{color:#81581e;border-color:#81581e;background-color:#fce1bb}.has-error .help-block,.has-error .control-label{color:#7f2a27}.has-error .form-control{border-color:#7f2a27;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#581d1b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c64a46;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c64a46}.has-error .input-group-addon{color:#7f2a27;border-color:#7f2a27;background-color:#f9c7c5}.has-success .help-block,.has-success .control-label{color:#295f29}.has-success .form-control{border-color:#295f29;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#1a3c1a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #47a747;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #47a747}.has-success .input-group-addon{color:#295f29;border-color:#295f29;background-color:#b0f1b0}.form-control-static{margin-bottom:0;padding-top:5px}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:5px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#f2f2f2;border-color:#bfbfbf}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#dedede;border-color:#a1a1a1}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#f2f2f2;border-color:#bfbfbf}.btn-primary{color:#fff;background-color:#25537b;border-color:#000}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#1c3e5c;border-color:#000}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#25537b;border-color:#000}.btn-warning{color:#fff;background-color:#bf822c;border-color:#191106}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#9e6c24;border-color:#000}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#bf822c;border-color:#191106}.btn-danger{color:#fff;background-color:#b93d39;border-color:#1d0a09}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#9a3330;border-color:#000}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#b93d39;border-color:#1d0a09}.btn-success{color:#fff;background-color:#409540;border-color:#030603}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#347834;border-color:#000}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#409540;border-color:#030603}.btn-info{color:#fff;background-color:#3189a3;border-color:#020506}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#286e83;border-color:#000}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#3189a3;border-color:#020506}.btn-link{color:#303030;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0a0a0a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}.btn-sm,.btn-xs{padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:12px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#fff;background-color:#25537b}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#25537b}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:0){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px;padding:1px 5px}.btn-group-sm>.btn{padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}.btn-group-lg>.btn{padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified .btn{float:none;display:table-cell;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:37px;padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:37px;line-height:37px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:24px;padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:24px;line-height:24px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:4px 10px;font-size:12px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #aaa;border-radius:3px}.input-group-addon.input-sm{padding:3px 8px;font-size:11px;border-radius:2px}.input-group-addon.input-lg{padding:8px 14px;font-size:15px;border-radius:5px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:4px 10px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#303030}.nav .nav-divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #bfbfbf}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #bfbfbf}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #bfbfbf;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #bfbfbf}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #bfbfbf;border-radius:3px 3px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#25537b}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #bfbfbf}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #bfbfbf;border-radius:3px 3px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tabbable:before,.tabbable:after{content:" ";display:table}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{content:" ";display:table}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#303030;border-bottom-color:#303030}.nav a:hover .caret{border-top-color:#0a0a0a;border-bottom-color:#0a0a0a}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:33px;margin-bottom:17px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width:0){.navbar{border-radius:3px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:0){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:0){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:0){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:0){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:0){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:8px 15px;font-size:15px;line-height:17px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:0){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:-0.5px;margin-bottom:-0.5px;background-color:transparent;border:1px solid transparent;border-radius:3px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:0){.navbar-toggle{display:none}}.navbar-nav{margin:4px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:17px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:17px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:0){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:8px;padding-bottom:8px}}@media (min-width:0){.navbar-left{float:left !important;float:left}.navbar-right{float:right !important;float:right}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:3px;margin-bottom:3px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:0){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:3px;margin-bottom:3px}.navbar-text{float:left;margin-top:8px;margin-bottom:8px}@media (min-width:0){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#eee;border-color:#888}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#dedede}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#ddd}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#dedede;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#dedede}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#2c3143;border-color:#181a24}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#181a24}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#666;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#1e212d}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#181a24;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#181a24}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#181a24}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#666;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:17px;list-style:none;background-color:#f5f5f5;border-radius:3px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:17px 0;border-radius:3px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:4px 10px;line-height:1.42857143;text-decoration:none;background-color:#fff;border:1px solid #bfbfbf;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#25537b;border-color:#25537b;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#bfbfbf;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:8px 14px;font-size:15px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:5px;border-top-left-radius:5px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:5px;border-top-right-radius:5px}.pagination-sm>li>a,.pagination-sm>li>span{padding:3px 8px;font-size:11px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pager{padding-left:0;margin:17px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #bfbfbf;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#303030;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:2.14285714;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:5px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1{font-size:54px}}.alert{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#b0f1b0;border-color:#20b520;color:#295f29}.alert-success hr{border-top-color:#1c9f1c}.alert-success .alert-link{color:#1a3c1a}.alert-info{background-color:#a8e5f7;border-color:#119ac2;color:#1f5768}.alert-info hr{border-top-color:#0f87ab}.alert-info .alert-link{color:#143641}.alert-warning{background-color:#fce1bb;border-color:#e28809;color:#81581e}.alert-warning hr{border-top-color:#ca7a08}.alert-warning .alert-link{color:#583c14}.alert-danger{background-color:#f9c7c5;border-color:#dd1b15;color:#7f2a27}.alert-danger hr{border-top-color:#c61813}.alert-danger .alert-link{color:#581d1b}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:17px;margin-bottom:17px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:11px;color:#fff;text-align:center;background-color:#25537b;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#409540}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#3189a3}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#bf822c}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#b93d39}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #bfbfbf}.list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#25537b;border-color:#25537b}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#8fb9dd}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:17px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #d6b161}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-title{margin-top:0;margin-bottom:0;font-size:14px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #bfbfbf;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel-group .panel{margin-bottom:0;border-radius:3px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #bfbfbf}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #bfbfbf}.panel-default{border-color:#bfbfbf}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#bfbfbf}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#bfbfbf}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bfbfbf}.panel-primary{border-color:#25537b}.panel-primary>.panel-heading{color:#fff;background-color:#25537b;border-color:#25537b}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#25537b}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#25537b}.panel-success{border-color:#20b520}.panel-success>.panel-heading{color:#295f29;background-color:#b0f1b0;border-color:#20b520}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#20b520}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#20b520}.panel-warning{border-color:#e28809}.panel-warning>.panel-heading{color:#81581e;background-color:#fce1bb;border-color:#e28809}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#e28809}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#e28809}.panel-danger{border-color:#dd1b15}.panel-danger>.panel-heading{color:#7f2a27;background-color:#f9c7c5;border-color:#dd1b15}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#dd1b15}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#dd1b15}.panel-info{border-color:#119ac2}.panel-info>.panel-heading{color:#1f5768;background-color:#a8e5f7;border-color:#119ac2}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#119ac2}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#119ac2}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#eee;border:1px solid #ddd;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:5px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:18px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=20);filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #bfbfbf;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #bfbfbf}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.tooltip.in{opacity:.9;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=90);filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:3px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:12px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}.navbar-fixed-top .navbar-brand{font-family:Verdana;font-weight:bold;font-size:160%}pre{overflow:auto;word-wrap:normal;white-space:pre}.btn{white-space:normal}.dropdown-menu{max-width:auto}input[type="checkbox"],input[type="radio"]{margin-left:.5ex;margin-right:.5ex}.modal-dialog{width:690px}.pagination>.active>a{background-color:#ebd9b2;color:black}.pagination>.active>a:hover{color:black;background-color:#ebd9b2}.modal-body{overflow:auto}.nav-tabs{margin-bottom:15px}a{text-decoration:underline}label{font-weight:normal}/*! +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-size:12px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#303030;text-decoration:none}a:hover,a:focus{color:#0a0a0a;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:5px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #bfbfbf;border-radius:3px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:17px;margin-bottom:17px;border:0;border-top:1px solid #bfbfbf}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 8.5px}.lead{margin-bottom:17px;font-size:13.8px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:18px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#25537b}.text-warning{color:#81581e}.text-danger{color:#7f2a27}.text-success{color:#295f29}.text-info{color:#1f5768}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-weight:800;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:17px;margin-bottom:8.5px}h1 small,h2 small,h3 small{font-size:65%}h4,h5,h6{margin-top:8.5px;margin-bottom:8.5px}h4 small,h5 small,h6 small{font-size:75%}h1,.h1{font-size:24px}h2,.h2{font-size:21px}h3,.h3{font-size:18px}h4,.h4{font-size:15px}h5,.h5{font-size:12px}h6,.h6{font-size:11px}.page-header{padding-bottom:7.5px;margin:34px 0 17px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:8.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:17px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:0){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:8.5px 17px;margin:0 0 17px;border-left:5px solid #eee}blockquote p{font-size:15px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857143;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:17px;font-style:normal;line-height:1.42857143}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.33333333%}.col-xs-2{width:16.66666667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333%}.col-xs-5{width:41.66666667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333333%}.col-xs-8{width:66.66666667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333%}.col-xs-11{width:91.66666667%}.col-xs-12{width:100%}@media (min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-push-1{left:8.33333333%}.col-sm-push-2{left:16.66666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333%}.col-sm-push-5{left:41.66666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333333%}.col-sm-push-8{left:66.66666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333%}.col-sm-push-11{left:91.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-11{right:91.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}}@media (min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333333%}.col-md-push-2{left:16.66666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333%}.col-md-push-5{left:41.66666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333333%}.col-md-push-8{left:66.66666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333%}.col-md-push-11{left:91.66666667%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333333%}.col-md-pull-2{right:16.66666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333%}.col-md-pull-5{right:41.66666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333333%}.col-md-pull-8{right:66.66666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333%}.col-md-pull-11{right:91.66666667%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}}@media (min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333333%}.col-lg-push-2{left:16.66666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333%}.col-lg-push-5{left:41.66666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333333%}.col-lg-push-8{left:66.66666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333%}.col-lg-push-11{left:91.66666667%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-11{right:91.66666667%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:17px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #d6b161}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d6b161}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #d6b161}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #d6b161}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #d6b161}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#b0f1b0;border-color:#20b520}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#9aed9a;border-color:#1c9f1c}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f9c7c5;border-color:#dd1b15}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#f7b0ae;border-color:#c61813}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fce1bb;border-color:#e28809}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#fbd7a2;border-color:#ca7a08}@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #d6b161;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:17px;font-size:18px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #bfbfbf}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:5px;font-size:12px;line-height:1.42857143;color:#555;vertical-align:middle}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:27px;padding:4px 10px;font-size:12px;line-height:1.42857143;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:17px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:24px;padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}select.input-sm{height:24px;line-height:24px}textarea.input-sm{height:auto}.input-lg{height:37px;padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}select.input-lg{height:37px;line-height:37px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#81581e}.has-warning .form-control{border-color:#81581e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#583c14;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d09034;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d09034}.has-warning .input-group-addon{color:#81581e;border-color:#81581e;background-color:#fce1bb}.has-error .help-block,.has-error .control-label{color:#7f2a27}.has-error .form-control{border-color:#7f2a27;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#581d1b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c64a46;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c64a46}.has-error .input-group-addon{color:#7f2a27;border-color:#7f2a27;background-color:#f9c7c5}.has-success .help-block,.has-success .control-label{color:#295f29}.has-success .form-control{border-color:#295f29;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#1a3c1a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #47a747;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #47a747}.has-success .input-group-addon{color:#295f29;border-color:#295f29;background-color:#b0f1b0}.form-control-static{margin-bottom:0;padding-top:5px}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:5px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#f2f2f2;border-color:#bfbfbf}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#dedede;border-color:#a1a1a1}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#f2f2f2;border-color:#bfbfbf}.btn-primary{color:#fff;background-color:#25537b;border-color:#000}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#1c3e5c;border-color:#000}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#25537b;border-color:#000}.btn-warning{color:#fff;background-color:#bf822c;border-color:#191106}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#9e6c24;border-color:#000}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#bf822c;border-color:#191106}.btn-danger{color:#fff;background-color:#b93d39;border-color:#1d0a09}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#9a3330;border-color:#000}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#b93d39;border-color:#1d0a09}.btn-success{color:#fff;background-color:#409540;border-color:#030603}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#347834;border-color:#000}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#409540;border-color:#030603}.btn-info{color:#fff;background-color:#3189a3;border-color:#020506}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#286e83;border-color:#000}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#3189a3;border-color:#020506}.btn-link{color:#303030;font-weight:normal;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0a0a0a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}.btn-sm,.btn-xs{padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:12px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#fff;background-color:#25537b}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#25537b}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:11px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:0){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px;padding:1px 5px}.btn-group-sm>.btn{padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}.btn-group-lg>.btn{padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified .btn{float:none;display:table-cell;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-left:0;padding-right:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:37px;padding:8px 14px;font-size:15px;line-height:1.33;border-radius:5px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:37px;line-height:37px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:24px;padding:3px 8px;font-size:11px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:24px;line-height:24px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:4px 10px;font-size:12px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #aaa;border-radius:3px}.input-group-addon.input-sm{padding:3px 8px;font-size:11px;border-radius:2px}.input-group-addon.input-lg{padding:8px 14px;font-size:15px;border-radius:5px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:4px 10px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#303030}.nav .nav-divider{height:1px;margin:7.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #bfbfbf}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #bfbfbf}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #bfbfbf;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #bfbfbf}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #bfbfbf;border-radius:3px 3px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#25537b}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #bfbfbf}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #bfbfbf;border-radius:3px 3px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tabbable:before,.tabbable:after{content:" ";display:table}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{content:" ";display:table}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#303030;border-bottom-color:#303030}.nav a:hover .caret{border-top-color:#0a0a0a;border-bottom-color:#0a0a0a}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:33px;margin-bottom:17px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width:0){.navbar{border-radius:3px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width:0){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width:0){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:0){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width:0){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width:0){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{z-index:1030;top:0}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:8px 15px;font-size:15px;line-height:17px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:0){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:-0.5px;margin-bottom:-0.5px;background-color:transparent;border:1px solid transparent;border-radius:3px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:0){.navbar-toggle{display:none}}.navbar-nav{margin:4px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:17px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:17px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:0){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:8px;padding-bottom:8px}}@media (min-width:0){.navbar-left{float:left !important;float:left}.navbar-right{float:right !important;float:right}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:3px;margin-bottom:3px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:0){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.navbar-btn{margin-top:3px;margin-bottom:3px}.navbar-text{float:left;margin-top:8px;margin-bottom:8px}@media (min-width:0){.navbar-text{margin-left:15px;margin-right:15px}}.navbar-default{background-color:#eee;border-color:#888}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#dedede}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#ddd}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#dedede;color:#555}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#dedede}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#2c3143;border-color:#181a24}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#181a24}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#666;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#1e212d}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#181a24;color:#fff}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#181a24}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#181a24}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#666;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:17px;list-style:none;background-color:#f5f5f5;border-radius:3px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:17px 0;border-radius:3px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:4px 10px;line-height:1.42857143;text-decoration:none;background-color:#fff;border:1px solid #bfbfbf;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#25537b;border-color:#25537b;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#bfbfbf;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:8px 14px;font-size:15px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:5px;border-top-left-radius:5px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:5px;border-top-right-radius:5px}.pagination-sm>li>a,.pagination-sm>li>span{padding:3px 8px;font-size:11px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pager{padding-left:0;margin:17px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #bfbfbf;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#303030;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:2.14285714;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:5px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1{font-size:54px}}.alert{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#b0f1b0;border-color:#20b520;color:#295f29}.alert-success hr{border-top-color:#1c9f1c}.alert-success .alert-link{color:#1a3c1a}.alert-info{background-color:#a8e5f7;border-color:#119ac2;color:#1f5768}.alert-info hr{border-top-color:#0f87ab}.alert-info .alert-link{color:#143641}.alert-warning{background-color:#fce1bb;border-color:#e28809;color:#81581e}.alert-warning hr{border-top-color:#ca7a08}.alert-warning .alert-link{color:#583c14}.alert-danger{background-color:#f9c7c5;border-color:#dd1b15;color:#7f2a27}.alert-danger hr{border-top-color:#c61813}.alert-danger .alert-link{color:#581d1b}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:17px;margin-bottom:17px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:11px;color:#fff;text-align:center;background-color:#25537b;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#409540}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#3189a3}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#bf822c}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#b93d39}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,0.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,0.15)), color-stop(.75, rgba(255,255,255,0.15)), color-stop(.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #bfbfbf}.list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#25537b;border-color:#25537b}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#8fb9dd}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:17px;background-color:#fff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #d6b161}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-title{margin-top:0;margin-bottom:0;font-size:14px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #bfbfbf;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel-group .panel{margin-bottom:0;border-radius:3px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #bfbfbf}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #bfbfbf}.panel-default{border-color:#bfbfbf}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#bfbfbf}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#bfbfbf}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bfbfbf}.panel-primary{border-color:#25537b}.panel-primary>.panel-heading{color:#fff;background-color:#25537b;border-color:#25537b}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#25537b}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#25537b}.panel-success{border-color:#20b520}.panel-success>.panel-heading{color:#295f29;background-color:#b0f1b0;border-color:#20b520}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#20b520}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#20b520}.panel-warning{border-color:#e28809}.panel-warning>.panel-heading{color:#81581e;background-color:#fce1bb;border-color:#e28809}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#e28809}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#e28809}.panel-danger{border-color:#dd1b15}.panel-danger>.panel-heading{color:#7f2a27;background-color:#f9c7c5;border-color:#dd1b15}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#dd1b15}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#dd1b15}.panel-info{border-color:#119ac2}.panel-info>.panel-heading{color:#1f5768;background-color:#a8e5f7;border-color:#119ac2}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#119ac2}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#119ac2}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#eee;border:1px solid #ddd;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:5px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:18px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=20);filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #bfbfbf;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #bfbfbf}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:11px;line-height:1.4;opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);filter:alpha(opacity=0)}.tooltip.in{opacity:.9;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=90);filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:3px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:12px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}.navbar-fixed-top .navbar-brand{font-family:Verdana;font-weight:bold;font-size:160%}pre{overflow:auto;word-wrap:normal;white-space:pre}.btn{white-space:normal}.dropdown-menu{max-width:auto}input[type="checkbox"],input[type="radio"]{margin-left:.5ex;margin-right:.5ex}.modal-dialog{width:690px}.pagination>.active>a{background-color:#ebd9b2;color:black}.pagination>.active>a:hover{color:black;background-color:#ebd9b2}.modal-body{overflow:auto}.nav-tabs{margin-bottom:15px}a{text-decoration:underline}label{font-weight:normal}.reports-panel-container{position:absolute;top:30px;bottom:10px;overflow:scroll;width:100%;padding:10px}#spark_time_select{display:inline-block}#spark_select{height:23px;width:30px;padding:0;border-radius:2px}.jqstooltip{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.dir_arrow{visibility:hidden}#back_button,#next_button,#curr_button,.miss_pages,.page_button{position:relative;float:left;height:24px;width:23px;margin:0 -1px 0 0;padding-top:2.5px;border:1px solid #bfbfbf;z-index:0}#back_button{cursor:pointer;border-top-left-radius:3px;border-bottom-left-radius:3px}#curr_button{background:#ebd9b2;border:1px solid #5f6990;z-index:1}#formHeader>tbody>tr{vertical-align:middle}#next_button{cursor:pointer;border-top-right-radius:3px;border-bottom-right-radius:3px}#page_selector{cursor:default;position:relative;text-align:center}.page_button>a{text-decoration:none;padding:8px;margin:-8px;height:100%;width:100%}#entries_edit{position:relative;padding:0;width:36px;height:20px;text-align:center;border:1px solid black;border-radius:3px;z-index:6}#entry_submit{cursor:default;position:relative;display:inline-block;border:1px solid black;padding:0;width:22px;height:22px;border-radius:11px;background-color:#ebd9b2;text-align:center;opacity:0;z-index:0}.half_width{width:50%}.third_width{width:30%}.quarter_width{width:25%}/*! * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../images/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../images/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../images/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-icon{font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.select2-container{margin:0;position:relative;display:inline-block;zoom:1;*display:inline;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;height:26px;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #aaa;white-space:nowrap;line-height:26px;color:#444;text-decoration:none;border-radius:4px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.5, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 50%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to top, #eee 0, #fff 50%)}html[dir="rtl"] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#aaa;border-radius:0 0 4px 4px;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.9, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 90%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 90%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to bottom, #eee 0, #fff 90%)}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir="rtl"] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:8px;font-size:1px;text-decoration:none;border:0;background:url('../images/select2.png') right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;z-index:9999;top:100%;background:#fff;color:#000;border:1px solid #aaa;border-top:0;border-radius:0 0 4px 4px;-webkit-box-shadow:0 4px 5px rgba(0,0,0,0.15);box-shadow:0 4px 5px rgba(0,0,0,0.15)}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #aaa;border-bottom:0;border-radius:4px 4px 0 0;-webkit-box-shadow:0 -4px 5px rgba(0,0,0,0.15);box-shadow:0 -4px 5px rgba(0,0,0,0.15)}.select2-drop-active{border:1px solid #5897fb;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #5897fb}.select2-drop-auto-width{border-top:1px solid #aaa;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-left:1px solid #aaa;border-radius:0 4px 4px 0;background-clip:padding-box;background:#ccc;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(.6, #eee));background-image:-webkit-linear-gradient(center bottom, #ccc 0, #eee 60%);background-image:-moz-linear-gradient(center bottom, #ccc 0, #eee 60%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);background-image:linear-gradient(to top, #ccc 0, #eee 60%)}html[dir="rtl"] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-left:none;border-right:1px solid #aaa;border-radius:4px 0 0 4px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;background:url('../images/select2.png') no-repeat 0 1px}html[dir="rtl"] .select2-container .select2-choice .select2-arrow b{background-position:2px 1px}.select2-search{display:inline-block;width:100%;min-height:26px;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap}.select2-search input{width:100%;height:auto !important;min-height:26px;padding:4px 20px 4px 5px;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #aaa;border-radius:0;-webkit-box-shadow:none;box-shadow:none;background:#fff url('../images/select2.png') no-repeat 100% -22px;background:url('../images/select2.png') no-repeat 100% -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('../images/select2.png') no-repeat 100% -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat 100% -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat 100% -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}html[dir="rtl"] .select2-search input{padding:4px 5px 4px 20px;background:#fff url('../images/select2.png') no-repeat -37px -22px;background:url('../images/select2.png') no-repeat -37px -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('../images/select2.png') no-repeat -37px -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat -37px -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat -37px -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:#fff url('../images/select2-spinner.gif') no-repeat 100%;background:url('../images/select2-spinner.gif') no-repeat 100%,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('../images/select2-spinner.gif') no-repeat 100%,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2-spinner.gif') no-repeat 100%,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2-spinner.gif') no-repeat 100%,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0;background-color:#eee;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center bottom, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center bottom, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to top, #fff 0, #eee 50%)}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #5897fb;border-top-color:transparent;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center top, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center top, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to bottom, #fff 0, #eee 50%)}.select2-dropdown-open .select2-choice .select2-arrow{background:transparent;border-left:none;filter:none}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:0 0 0 4px;margin:4px 4px 4px 0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:rgba(0,0,0,0)}html[dir="rtl"] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:bold}.select2-results .select2-result-label{padding:3px 7px 4px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#3875d7;color:#fff}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:transparent}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-ajax-error,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:#f4f4f4 url('../images/select2-spinner.gif') no-repeat 100%}.select2-results .select2-ajax-error{background:rgba(255,50,50,0.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto !important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #aaa;cursor:text;overflow:hidden;background-color:#fff;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(to bottom, #eee 1%, #fff 15%)}html[dir="rtl"] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px 3px 5px !important}.select2-container-multi .select2-choices{min-height:26px}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir="rtl"] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field input{padding:5px;margin:1px 0;font-family:sans-serif;font-size:100%;color:#666;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:transparent !important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:#fff url('../images/select2-spinner.gif') no-repeat 100% !important}.select2-default{color:#999 !important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:3px 0 3px 5px;position:relative;line-height:13px;color:#333;cursor:default;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));background-image:-webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:-moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:linear-gradient(to top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%)}html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:3px 18px 3px 5px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:3px;top:4px;font-size:1px;outline:none;background:url('../images/select2.png') right top no-repeat}html[dir="rtl"] .select2-search-choice-close{right:auto;left:3px}.select2-container-multi .select2-search-choice-close{left:3px}html[dir="rtl"] .select2-container-multi .select2-search-choice-close{left:auto;right:2px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover{background-position:right -11px}.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px 3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:none}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0) !important;width:1px !important;height:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;position:absolute !important;outline:0 !important;left:0 !important;top:0 !important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input,.select2-search-choice-close,.select2-container .select2-choice abbr,.select2-container .select2-choice .select2-arrow b{background-image:url('../images/select2x2.png') !important;background-repeat:no-repeat !important;background-size:60px 40px !important}.select2-search input{background-position:100% -21px !important}}.select2-minwidth{min-width:256px}.galaxy-frame .corner{-moz-border-radius:5px;border-radius:5px}.galaxy-frame .toggle{color:gold}.galaxy-frame .frame-background{z-index:1000;position:absolute;display:none;top:0;left:0;height:100%;width:100%;opacity:.6;background:#000;overflow:auto}.galaxy-frame .frame-shadow{z-index:1001;position:absolute;display:none;top:0;left:0;opacity:.5;background:#2c3143;border:1px solid #888}.galaxy-frame .frame-menu{z-index:1005;position:absolute;cursor:pointer;color:gold;right:10px}.galaxy-frame .frame-scroll-up{top:50px}.galaxy-frame .frame-scroll-down{bottom:20px}.galaxy-frame .frame{z-index:1002;overflow:hidden;position:absolute;background:#fff;border:1px solid #888;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3)}.galaxy-frame .frame .f-content{position:absolute;overflow:hidden;background:#fff;border:none;top:24px;bottom:3px;left:3px;right:3px}.galaxy-frame .frame .f-cover{position:absolute;display:none;top:0;left:0;height:100%;width:100%;opacity:0;background:#fff}.galaxy-frame .frame .f-iframe{border:none;width:100%;height:100%}.galaxy-frame .frame .f-header{height:17px;margin:2px;cursor:pointer;border:1px solid #000;background:#2c3143;color:#fff}.galaxy-frame .frame .f-title{position:absolute;top:2px;left:16px;right:16px;font-size:12px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;text-align:center}.galaxy-frame .frame .f-icon{position:absolute;cursor:pointer;font-size:14px}.galaxy-frame .frame .f-not-allowed{cursor:not-allowed}.galaxy-frame .frame .f-close{right:5px;top:3px}.galaxy-frame .frame .f-pin{left:6px;top:3px}.galaxy-frame .frame .f-resize{background:#fff;width:16px;height:16px;color:#2c3143;right:0;bottom:0;text-align:center;line-height:16px;border:0}.upload-button{position:relative;width:31px;height:21px;top:-4px;cursor:pointer;-moz-border-radius:3px;border-radius:3px}.upload-button .progress{height:21px}.upload-button .progress-bar-danger{background:#f9c7c5}.upload-button .progress-bar-success{background:#b0f1b0}.upload-button .progress-bar-info{background:#ffc}.upload-button .progress-bar-notransition{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.upload-button .label{position:absolute;top:2px;width:inherit;text-align:center;line-height:19px;font-size:1.2em}.upload-icon{font-size:1.2em;width:1.2em}.upload-icon-button{font-size:1.2em;width:1.2em;cursor:pointer}.upload-box{width:100%;height:90%;text-align:center;overflow:scroll;font-size:12px;line-height:1.33;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf;padding:10px;overflow-x:hidden;-ms-overflow-style:none}.upload-box .table{width:100%}.upload-box .table th{text-align:center;white-space:nowrap}.upload-box .table td{margin:0}.upload-box .upload-item .select2-arrow b{background-position:0 -3px}.upload-box .upload-item .select2-choice{max-height:20px;line-height:18px;background:transparent}.upload-box .upload-item .select2-container-disabled .select2-arrow{background:transparent}.upload-box .name-column{position:relative}.upload-box .mode{float:left;font-size:1.2em;width:1.2em;color:#555}.upload-box .title{width:130px;word-wrap:break-word;font-size:11px;float:left}.upload-box .text{position:absolute;display:none}.upload-box .text .text-content{font-size:11px;width:100%;height:50px;resize:none;background:inherit;color:#000}.upload-box .text .text-info{font-size:11px}.upload-box .extension{width:100px;min-width:100px;font-size:11px}.upload-box .genome{width:150px;min-width:150px;font-size:11px}.upload-box .size{width:60px;white-space:nowrap}.upload-box .info{width:130px;font-size:11px;line-height:1.2em}.upload-box .info .progress{top:1px;position:relative;width:100%;padding:0;margin:0;line-height:1.55em}.upload-box .info .progress .progress-bar{border-radius:inherit;-moz-border-radius:inherit}.upload-box .info .progress .percentage{position:absolute;text-align:center;width:100%;color:#fff}.upload-ftp{height:250px;width:500px;overflow:auto}.upload-ftp .upload-ftp-wait{font-size:1.2em;position:absolute;bottom:10px;right:10px}.upload-ftp .upload-ftp-help{margin-bottom:10px}.upload-ftp .upload-ftp-warning{text-align:center;margin-top:20px}.upload-ftp .upload-ftp-row{cursor:pointer}.upload-ftp .upload-ftp-row .label{width:240px}.upload-ftp .upload-ftp-row .label p{width:inherit;word-wrap:break-word}.upload-ftp .upload-ftp-row .nonlabel{white-space:nowrap}.upload-settings .upload-settings-cover{position:absolute;width:100%;height:100%;top:0;left:0;background:#fff;opacity:.4;cursor:no-drop}.upload-header{height:5%;text-align:left;max-height:20px;line-height:18px;margin-top:10px}.upload-header .header-title{font-weight:bold;padding-left:60px;padding-right:20px}.upload-header .header-selection{width:200px;min-width:200px;font-size:11px;padding-right:10px}.upload-header .select2-choice{max-height:20px;line-height:18px;background:transparent;text-align:center;font-weight:normal}.upload-header .select2-choice .select2-arrow b{background-position:0 -3px}.upload-top{height:5%;text-align:center}.upload-top .upload-info{margin-top:0;font-weight:normal;text-align:center}.no-highlight,.ui-button-icon{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.no-padding{padding:0 !important}.ui-margin-top{padding-top:5px !important}.ui-margin-bottom{margin-bottom:5px !important}.ui-error{-moz-border-radius:3px;border-radius:3px;background:#f9c7c5;padding:5px}.ui-label{font-weight:bold}.ui-message{padding:2px 10px 2px 10px;margin:0}.ui-icon{font-size:1.2em}.ui-button-icon{height:auto !important}.ui-button-icon ul i{font-size:1.2em;margin-right:5px;position:relative;top:1px}.ui-button-icon .button{margin-right:5px;margin-left:5px}.ui-button-icon .button .title{position:relative;font-size:.8em;font-weight:normal;top:-1px;word-break:break-word}.ui-button-icon .button.disabled{opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65)}.ui-button-menu .dropdown-menu{min-width:50px}.ui-button-menu .dropdown-item{text-align:left}.ui-button-icon-plain{border:none !important;background:none !important;height:inherit !important;width:inherit !important;padding-right:3px !important}.ui-tabs .ui-tabs-add{font-size:.8em;margin-right:5px}.ui-tabs .ui-tabs-delete{font-size:.8em;margin-left:5px;cursor:pointer}.ui-table tbody,.ui-table-plain tbody{cursor:pointer}.ui-table-plain{table-layout:fixed}.ui-table-plain tbody{cursor:auto !important}.ui-table-plain tbody td{padding:0 !important;border:none !important}.ui-table-plain .ui-table-section{border-left:solid 3px #ebd9b2;border-radius:5px !important;margin-bottom:5px;padding-left:10px}.ui-table-form-element{margin-top:5px;margin-bottom:5px;overflow:visible}.ui-table-form-element .ui-table-form-title{word-break:break-word;font-weight:bold}.ui-table-form-element .ui-table-form-title .ui-table-form-optional{cursor:pointer}.ui-table-form-element .ui-table-form-title .ui-table-form-optional .icon{margin-right:5px;font-size:1.2em}.ui-table-form-element .ui-table-form-field{margin-top:5px}.ui-table-form-separator{font-weight:bold;font-size:.9em}.ui-table-form-info{clear:both !important}.ui-table-form-error{display:none}.ui-table-form-error .ui-table-form-error-text{padding-left:5px}.ui-portlet,.ui-portlet-repeat,.ui-portlet-limited,.ui-portlet-section,.ui-portlet-narrow{border:solid #d6b161 1px;border-radius:3px;position:relative;clear:both;width:auto;height:100%}.ui-portlet .portlet-header,.ui-portlet-limited .portlet-header,.ui-portlet-narrow .portlet-header{background:#ebd9b2;border-bottom:solid #d6b161 1px;padding:2px 8px;overflow:visible;float:right;width:100%}.ui-portlet .portlet-header .portlet-title,.ui-portlet-limited .portlet-header .portlet-title,.ui-portlet-narrow .portlet-header .portlet-title{word-break:break-word;display:inline;vertical-align:middle}.ui-portlet .portlet-header .portlet-title .portlet-title-text,.ui-portlet-limited .portlet-header .portlet-title .portlet-title-text,.ui-portlet-narrow .portlet-header .portlet-title .portlet-title-text{vertical-align:middle;line-height:22px}.ui-portlet .portlet-header .portlet-title .icon,.ui-portlet-limited .portlet-header .portlet-title .icon,.ui-portlet-narrow .portlet-header .portlet-title .icon{font-size:1.2em;vertical-align:middle}.ui-portlet .portlet-header .portlet-operations .ui-button-icon,.ui-portlet-limited .portlet-header .portlet-operations .ui-button-icon,.ui-portlet-narrow .portlet-header .portlet-operations .ui-button-icon{margin-left:5px}.ui-portlet .portlet-content,.ui-portlet-limited .portlet-content,.ui-portlet-narrow .portlet-content{height:inherit;padding-left:10px;padding-right:10px;clear:both}.ui-portlet .portlet-content .content,.ui-portlet-limited .portlet-content .content,.ui-portlet-narrow .portlet-content .content{padding:0;height:100%;width:100%}.ui-portlet .portlet-content .buttons,.ui-portlet-limited .portlet-content .buttons,.ui-portlet-narrow .portlet-content .buttons{margin-top:5px;margin-bottom:5px}.ui-portlet .portlet-backdrop,.ui-portlet-limited .portlet-backdrop,.ui-portlet-narrow .portlet-backdrop{display:none;z-index:10;position:absolute;top:0;width:100%;height:100%;opacity:.2;background:#fff;cursor:not-allowed}.ui-portlet-repeat,.ui-portlet-section{border:none;border-left:solid 3px #ebd9b2;border-radius:5px;margin-bottom:5px}.ui-portlet-repeat .portlet-header,.ui-portlet-section .portlet-header{background:#ebd9b2;border-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0;padding:0 2px}.ui-portlet-repeat .portlet-header .portlet-title-text,.ui-portlet-section .portlet-header .portlet-title-text{vertical-align:middle;line-height:20px !important}.ui-portlet-repeat .portlet-content,.ui-portlet-section .portlet-content{padding-right:0}.ui-portlet-section{margin-top:5px;border-left:solid 3px #dfe5f9}.ui-portlet-section .portlet-header{background:#dfe5f9;border-bottom:solid #b4c2f1 1px}.ui-portlet-section .portlet-highlight{text-decoration:underline}.ui-portlet-narrow{border:none}.ui-portlet-narrow .portlet-header{border-radius:3px}.ui-portlet-narrow .portlet-header .portlet-operations .ui-button-icon{margin-left:3px}.ui-portlet-narrow .ui-portlet-repeat .portlet-header,.ui-portlet-narrow .ui-portlet-section .portlet-header{border-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.ui-portlet-narrow .portlet-content{padding:0}.ui-portlet-narrow .ui-table-section,.ui-portlet-narrow .ui-portlet-repeat .portlet-content,.ui-portlet-narrow .ui-portlet-section .portlet-content{padding-left:5px}.ui-portlet-limited,.ui-portlet-narrow{max-width:900px}.ui-popover{max-width:700px;display:none}.ui-popover .popover-close{position:absolute;right:10px;top:7px;font-size:1.2em;cursor:pointer}.ui-popover .popover-title{padding:4px 10px}.ui-input,.ui-input-basic,.ui-textarea,.ui-options .ui-options-list,.ui-form-slider .ui-form-slider-text,.ui-select .select2-container-multi .select2-choices,.ui-select select,.ui-select .select2-container .select2-choice{width:100%;display:block;height:27px;padding:4px 10px;font-size:12px;line-height:1.42857143;color:#555;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);background-image:none;background:transparent;-webkit-appearance:none;-moz-border-radius:3px}.ui-input[disabled],.ui-input[readonly],fieldset[disabled] .ui-input{cursor:not-allowed;background-color:#eee}.ui-input-basic,.ui-select select,.ui-select .select2-container .select2-choice{-webkit-box-shadow:inset 0 -1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 -1px 1px rgba(0,0,0,0.075)}.ui-textarea{height:100px !important}.ui-options .ui-options-list{height:100% !important}.ui-options .ui-options-list input[type=checkbox],.ui-options .ui-options-list input[type=radio]{display:none}.ui-options .ui-options-list label{margin:0;cursor:pointer}.ui-options .ui-options-list .ui-drilldown-button{position:relative;top:2px;left:-3px;margin-right:3px;cursor:pointer}.ui-options .ui-options-list input[type=checkbox]+label:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-size:1.2em;margin-right:5px;position:relative;top:1px;width:10px;content:"\f096"}.ui-options .ui-options-list input[type=checkbox]:checked+label:before{content:"\f046"}.ui-options .ui-options-list input[type=radio]+label:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-size:1.2em;margin-right:5px;position:relative;top:1px;width:10px;content:"\f1db"}.ui-options .ui-options-list input[type=radio]:checked+label:before{content:"\f192"}.ui-form-slider{display:inline-block;width:100%}.ui-form-slider .ui-form-slider-text{width:100px;float:left}.ui-form-slider .ui-form-slider-element{width:calc(100% - 110px);float:left;top:8px;left:10px}.ui-radiobutton{width:100%}.ui-radiobutton label{height:23px;line-height:1em}.ui-radiobutton i{padding-right:5px}.ui-button-check{cursor:pointer;margin-bottom:5px}.ui-button-check .icon{font-size:1.2em;width:1.2em}.ui-color-picker .ui-color-picker-header{cursor:pointer}.ui-color-picker .ui-color-picker-value{float:left;border-radius:3px;border:solid 1px #000;width:12px;height:12px;margin-right:5px}.ui-color-picker .ui-color-picker-label{float:left;line-height:1.2em}.ui-color-picker .ui-color-picker-view{height:100%;overflow:auto;display:none;float:left;margin-top:5px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel{width:210px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content{margin-bottom:15px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .label{padding-bottom:2px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .line .ui-color-picker-box{cursor:pointer;float:left;margin-right:5px;border:solid 1px #c0c0c0;width:15px;height:15px;border-radius:2px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .line .ui-color-picker-box .ui-color-picker-check{color:black;font-size:1.2em;position:relative;left:1px}.ui-list .ui-list-select{float:left;width:calc(100% - 27px)}.ui-list .ui-list-button .ui-button-icon{margin-top:3px;margin-right:5px}.ui-list .ui-list-message,.ui-list .ui-list-portlet{clear:both}.ui-list .ui-list-id{cursor:pointer;margin-top:5px}.ui-list .ui-list-id .ui-list-delete{font-size:1.2em;margin-right:5px}.ui-select{position:relative}.ui-select .button{position:absolute;top:5px;right:5px}.ui-select select{position:relative;top:0;height:27px;width:100%;padding-right:20px;cursor:pointer;padding-left:5px}.ui-select .select2-container{width:100%}.ui-select .select2-container .select2-choice{height:27px;padding-left:5px}.ui-select .select2-container .select2-choice .select2-arrow{display:none}.ui-select .select2-container-multi .select2-choices{padding:0}.ui-select-multiple select{height:80px !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.ui-select-content .ui-options{float:left;padding-top:2px}.select2-container .select2-choice,.select2-container .select2-choices{border:1px solid #aaa}.select2-dropdown-open .select2-choice,.select2-dropdown-open .select2-choices{border:1px solid #aaa;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #aaa;border-top-left-radius:0;border-top-right-radius:0}.select2-drop-active{border:1px solid #aaa;border-radius:3px;border-top-left-radius:0;border-top-right-radius:0}.select2-drop-active .select2-search{padding-top:5px}.select2-drop.select2-drop-above.select2-drop-active{border:1px solid #aaa;border-radius:3px;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-drop.select2-drop-above.select2-drop-active .select2-search{padding-top:0}.libraryRow{background-color:#ebd9b2}.datasetHighlighted{background-color:#f9f9f9}.libraryItemDeleted-True{font-style:italic}div.libraryItemBody{padding:4px 4px 2px 4px}li.folderRow,li.datasetRow{border-top:solid 1px #c6bfa8}li.folderRow:hover,li.datasetRow:hover{background-color:#f9f9f9}td.right-center{vertical-align:middle !important;text-align:right}.library-genome-select{max-width:350px}.library-extension-select{max-width:140px}.library_table td{border-top:1px solid #5f6990 !important}.library_table th{border-bottom:2px solid #5f6990 !important}.library_table a{color:#0a143d}.library_table a:hover{color:maroon}.library_style_container{width:95%;margin:auto;margin-top:2em;overflow:auto !important}.library_style_container tr{height:32px}tr.light td{background-color:white;color:black}tr.light:hover td{background-color:#f5e8cc}tr.dark td{background-color:#d6b161;color:white}tr.dark:hover td{background-color:#ebd4a4;color:white}a.dark{color:white}.dataset_table tr{border-bottom:1px solid #5f6990 !important}.dataset_table th{border:none !important}.dataset_table td{border:none !important}th.button_heading{width:2em}.bigdrop.select2-container .select2-results{max-height:300px}.bigdrop .select2-results{max-height:300px}.select2-container-multi{width:100%}.roles-selection{width:66%}#library_toolbar{margin-bottom:1em}#library_toolbar span{margin-right:.2em}img.expanderIcon{padding-right:4px}input.datasetCheckbox,li,ul{padding:0;margin:0}.rowTitle{padding:2px}ul{list-style:none}.libraryTitle th{text-align:left}pre.peek{background:white;color:black;overflow:auto}pre.peek th{color:white;background:#ebd9b2}.help-button{float:right}span.expandLink{padding-left:12px;display:inline-block;vertical-align:middle;background:url(../images/silk/resultset_next.png) no-repeat}.folderRow.expanded span.expandLink{background:url(../images/silk/resultset_bottom.png) no-repeat}.folderRow span.rowIcon{float:left;margin-right:5px;width:16px;height:16px;display:inline-block;vertical-align:middle;background:url(../images/silk/folder.png)}.libraryItem-error{margin-right:2px;padding:0 2px 0 2px;border:1px solid #dd1b15;background:#f9c7c5}.libraryItem-queued{margin-right:2px;padding:0 2px 0 2px;border:1px solid #bfbfbf;background:#eee}.libraryItem-running{margin-right:2px;padding:0 2px 0 2px;border:1px solid #aa6;background:#ffc}.libraryItem-upload{margin-right:2px;padding:0 2px 0 2px;border:1px solid #119ac2;background:#a8e5f7}.pagination-sm{height:15px}.library-paginator{margin-left:2em}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:4em 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important}#toast-container>.toast-error{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important}#toast-container>.toast-success{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important}#toast-container>.toast-warning{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:black;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;-moz-box-shadow:5px 5px 4px -4px #666;-webkit-box-shadow:2px 2px 2px #999;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none;display:inline}.vakata-context li>a{display:block;padding:0 2em 0 2em;text-decoration:none;width:auto;color:black;white-space:nowrap;line-height:2.4em;-moz-text-shadow:1px 1px 0 white;-webkit-text-shadow:1px 1px 0 white;text-shadow:1px 1px 0 white;-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==");background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:white;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;-moz-text-shadow:0 0 0 transparent;-webkit-text-shadow:0 0 0 transparent;text-shadow:0 0 0 transparent;-moz-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:transparent;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:white;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7");background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:white;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px 0 2px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:transparent;color:#666}.jstree-default .jstree-disabled.jstree-hovered{background:transparent;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:bold}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none !important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:transparent;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:transparent}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}#jstree-dnd.jstree-default .jstree-ok,#jstree-dnd.jstree-default .jstree-er{background-image:url("../images/jstree/32px.png");background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:transparent;width:16px;height:16px}#jstree-dnd.jstree-default .jstree-ok{background-position:-9px -71px}#jstree-dnd.jstree-default .jstree-er{background-position:-39px -71px}.jstree-default>.jstree-striped{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-hovered,.jstree-default>.jstree-wholerow-ul .jstree-clicked{background:transparent;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-moz-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #beebff), color-stop(100%, #a8e4ff));background:-webkit-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:-o-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:-ms-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:linear-gradient(to bottom, #beebff 0, #a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-image:url("../images/jstree/32px.png")}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:transparent}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-node,.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:transparent}.jstree-default .jstree-disabled.jstree-hovered{background:transparent}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:transparent}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("../images/jstree/throbber.gif") center center no-repeat}.jstree-default .jstree-file{background:url("../images/jstree/32px.png") -100px -68px no-repeat}.jstree-default .jstree-folder{background:url("../images/jstree/32px.png") -260px -4px no-repeat}.jstree-default.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==")}.jstree-default.jstree-rtl .jstree-last{background:transparent}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-node,.jstree-default-small .jstree-icon{background-image:url("../images/jstree/32px.png")}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:transparent}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-node,.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:transparent}.jstree-default-small .jstree-disabled.jstree-hovered{background:transparent}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:transparent}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("../images/jstree/throbber.gif") center center no-repeat}.jstree-default-small .jstree-file{background:url("../images/jstree/32px.png") -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url("../images/jstree/32px.png") -263px -7px no-repeat}.jstree-default-small.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==")}.jstree-default-small.jstree-rtl .jstree-last{background:transparent}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-node,.jstree-default-large .jstree-icon{background-image:url("../images/jstree/32px.png")}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:transparent}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-node,.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:transparent}.jstree-default-large .jstree-disabled.jstree-hovered{background:transparent}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:transparent}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("../images/jstree/throbber.gif") center center no-repeat}.jstree-default-large .jstree-file{background:url("../images/jstree/32px.png") -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url("../images/jstree/32px.png") -256px 0 no-repeat}.jstree-default-large.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==")}.jstree-default-large.jstree-rtl .jstree-last{background:transparent}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:bold;font-size:1.1em;text-shadow:1px 1px white}#jstree-dnd.jstree-dnd-responsive>i{background:transparent;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url("../images/jstree/40px.png");background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url("../images/jstree/40px.png");background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url("../images/jstree/40px.png")}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0 !important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px !important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0 !important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:bold;font-size:1.1em;text-shadow:1px 1px white}.jstree-default-responsive>.jstree-striped{background:transparent}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,0.7);border-bottom:1px solid rgba(64,64,64,0.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-image:url("../images/jstree/40px.png");background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:transparent}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url("../images/jstree/40px.png") 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url("../images/jstree/40px.png") -40px -40px no-repeat;background-size:120px 240px}}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}.unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%}.clear:before,.clear:after{content:" ";display:table}.clear:after{clear:both}.clear:before,.clear:after{content:" ";display:table}.clear:after{clear:both}body{background:#fff;color:#000;margin:10px}body.full-content{overflow:hidden;margin:0;padding:0;width:100%;height:100%}#background{position:absolute;background:#fff;z-index:-1;top:0;left:0;margin:0;padding:0;width:100%;height:100%}#messagebox{position:absolute;top:34px;left:0;width:100%;height:30px !important;overflow:hidden;border-bottom:solid #999 1px;font-size:90%}#inactivebox{position:absolute;top:34px;left:0;width:100%;height:30px !important;overflow:hidden;border-bottom:solid #999 1px;font-size:90%}#left,#left-border,#center,#right-border,#right{position:absolute;top:34px;bottom:0;overflow:hidden;background:#fff}#left{left:0;width:250px;z-index:200;border-right:solid #999 1px}#left-border{left:250px}.reports-panel-container{position:absolute;top:30px;bottom:10px;overflow:scroll;width:100%;padding:10px}#center{left:250px;right:250px;overflow:hidden;z-index:1}#right-border{right:250px}#right{width:250px;right:0;z-index:200;border-left:solid #999 1px}body.has-message-box #left,body.has-inactivity-box #left,body.has-message-box #left-border,body.has-inactivity-box #left-border,body.has-message-box #center,body.has-inactivity-box #center,body.has-message-box #right-border,body.has-inactivity-box #right-border,body.has-message-box #right,body.has-inactivity-box #right{top:64px}body.has-message-box.has-inactivity-box #left,body.has-message-box.has-inactivity-box #left-border,body.has-message-box.has-inactivity-box #center,body.has-message-box.has-inactivity-box #right-border,body.has-message-box.has-inactivity-box #right{top:94px}body.has-message-box.has-inactivity-box #inactivebox{top:64px}.subnavbar{background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), color-stop(25%, #fff), to(#e6e6e6));background-image:-webkit-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #fff, #fff 25%, #e6e6e6);background-image:linear-gradient(#fff, #fff 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-bottom:solid #bfbfbf 1px;border-top:solid #bfbfbf 1px;padding:5px;color:#555}.unified-panel-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;height:30px;z-index:1000;text-shadow:rgba(255,255,255,0.8) 0 1px 0;background:#eee;border-bottom:solid #999 1px;margin:0;padding:0;padding-right:10px;padding-left:10px;font-weight:bold;color:#555}.unified-panel-header a{color:#555}.unified-panel-header .fa{font-size:1.2em}.unified-panel-header-inner{padding-top:8px}.unified-panel-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999 1px;background:#eee;color:#555}.unified-panel-footer a{color:#555}.unified-panel-footer .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize}#right>.unified-panel-footer .drag{left:0}.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;width:100%;z-index:1000;color:#555;font-size:1.33333333em;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;z-index:201;display:block;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;height:25px;line-height:25px;width:20px;background:none;border-right:solid #999 1px;border-top:solid #999 1px;background:#eee}.panel-collapse a{color:#555}.panel-collapse .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize}.panel-collapse:before{content:'\f053'}.panel-collapse.hidden:before{content:'\f054'}.panel-collapse.right{left:inherit;right:0;border-right:none;border-left:solid #bfbfbf 1px}.panel-collapse.right.right:before{content:'\f054'}.panel-collapse.right.right.hidden:before{content:'\f053'}.menu-bg{background:whiteSmoke top repeat-x}div.unified-panel-body{position:absolute;top:30px;bottom:0;width:100%}#left>div.unified-panel-body,#right>div.unified-panel-body{bottom:25px}.panel-header-button{color:#333;text-decoration:none;display:inline-block;cursor:pointer;margin:-1px;padding:1px;margin-top:-0.2em;padding-right:.5em;padding-left:.5em}.panel-header-button:hover{color:maroon;-webkit-transition:color .25s linear;transition:color .25s linear}.panel-header-button .caret{margin-top:7px}.panel-header-button.popup{padding-right:1.75em;background:url(../images/dropdownarrow.png) no-repeat right 7px}#DD-helper{background:white;opacity:0;z-index:900;position:absolute;top:0;left:0;width:100%;height:100%}.panel-error-message,.panel-warning-message,.panel-done-message,.panel-info-message{height:30px;line-height:30px;padding:0;padding-left:26px;background-color:#f9c7c5;background-image:url(error_small.png);background-repeat:no-repeat;background-position:6px 50%}.panel-warning-message{background-image:url(warn_small.png);background-color:#fce1bb}.panel-done-message{background-image:url(ok_small.png);background-color:#b0f1b0}.panel-info-message{background-image:url(info_small.png);background-color:#a8e5f7}#masthead{position:absolute;top:0;left:0;width:100%;min-width:990px;padding:0}#masthead .nav{z-index:15001}#masthead .nav>li>a{cursor:pointer;text-decoration:none}#masthead .nav>li>a:hover{color:gold}#masthead li.dropdown>a:hover .caret{border-top-color:gold;border-bottom-color:gold}#masthead .navbar-brand{position:absolute;left:0;top:0;font-family:verdana;font-weight:bold;font-size:20px;line-height:1;color:white;padding:5px 20px 12px;margin-left:-15px;z-index:2000}#masthead .navbar-brand img{display:inline;width:26px;vertical-align:top}#masthead .navbar-brand a{color:white;text-decoration:none}#masthead .iconbar{position:absolute;top:7px;right:110px;cursor:pointer;color:#999;overflow:hidden}#masthead .iconbar .symbol{float:left;margin:0 10px;font-size:11px}#masthead .iconbar .symbol .number{font-weight:bold;font-size:10px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;position:relative;left:23px;top:-12px}#masthead .iconbar .toggle{color:gold}.quota-meter-container{position:absolute;top:0;right:0;height:32px}.quota-meter{position:absolute;top:8px;right:8px;height:16px;width:100px;background-color:#f5f5f5}.quota-meter-bar{position:absolute;top:0;left:0;height:16px;background-color:#25537b}.quota-meter-bar-warn{background-color:#bf822c}.quota-meter-bar-error{background-color:#b93d39}.quota-meter-text{position:absolute;top:50%;left:0;width:100px;height:16px;margin-top:-6px;text-align:center;z-index:9001;color:#000;white-space:nowrap}div.metadataForm{border:solid #aaa 1px}div.metadataFormTitle{font-weight:bold;padding:5px;padding-left:10px;padding-right:10px;background:#ccc;background-repeat:repeat-x;background-position:top;border-bottom:solid #aaa 1px}div.metadataFormBody{background:#fff;padding:5px 0}div.metadataFormBody div.metadataFormTitle{background:transparent;border:none;font-weight:bold;border-bottom:solid #dcb790 1px;margin-bottom:5px}div.metadataFormDisabled div.metadataFormTitle{background:#eee;border-color:#999}div.metadataFormDisabled{border-color:#999}div.metadataHelpBody{width:100%;overflow:auto}div.titleRow{font-weight:bold;border-bottom:dotted gray 1px;margin-bottom:.5em;padding-bottom:.25em}div.toolFormBody div.toolFormTitle{background:transparent;border:none;font-weight:bold;border-bottom:solid #d6b161 1px;margin-bottom:5px}div.toolFormDisabled div.toolFormTitle{background:#f5f5f5;border-color:#bfbfbf}div.toolFormDisabled{border-color:#bfbfbf}div.toolHelp{margin-top:15px;padding:5px}div.toolHelpBody{width:100%}.toolForm.toolFormInCanvas{border:solid #d6b161 1px;background:#fff}.toolForm.toolFormInCanvas.toolForm-active{border:solid #25537b 3px;margin:4px}.toolForm.toolFormInCanvas .toolFormTitle{font-size:12px;line-height:1.42857143}div.form,div.toolForm{border:solid #d6b161 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}div.form-title,div.toolFormTitle{padding:5px 10px;background:#ebd9b2;border-bottom:solid #d6b161 1px}div.form-body{padding:5px 0}div.form-row{padding:5px 10px}div.form-title-row{padding:5px 10px}div.repeat-group-item{border-left:solid #d6b161 5px;margin-left:10px;margin-bottom:10px}div.form-row-error{background:#f9c7c5}div.form-row label{font-weight:bold;display:block;margin-bottom:.2em}div.form-row label.inline{display:inline}div.form-row-input{width:90%;float:left}div.form-row-input label{font-weight:normal;display:inline}div.form-row-error-message{width:300px;float:left;color:red;font-weight:bold;padding:3px 0}.form-row .help,.toolParamHelp,.ui-table-form-info{color:#666}.form-row .help a,.toolParamHelp a{color:#666}.form-row.form-actions{background:whiteSmoke;border-top:solid #ddd 1px;padding-top:10px;padding-bottom:10px;margin-top:5px}select{padding:2px;font-size:12px;line-height:1.42857143}select,input,textarea{font:inherit}.form-row select,.form-row textarea,.form-row input[type="text"],.form-row input[type="file"],.form-row input[type="password"]{max-width:90%}textarea,input[type="text"],input[type="password"]{font-size:12px;line-height:1.42857143;border:1px solid #aaa;padding:3px}input[type="submit"],button{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf}input[type="submit"]:focus,button:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="submit"]:hover,button:hover,input[type="submit"]:focus,button:focus{color:#333;text-decoration:none}input[type="submit"]:active,button:active,input[type="submit"].active,button.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}input[type="submit"].disabled,button.disabled,input[type="submit"][disabled],button[disabled],fieldset[disabled] input[type="submit"],fieldset[disabled] button{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}input[type="submit"]:hover,button:hover,input[type="submit"]:focus,button:focus,input[type="submit"]:active,button:active,input[type="submit"].active,button.active,.open .dropdown-toggleinput[type="submit"],.open .dropdown-togglebutton{color:#333;background-color:#dedede;border-color:#a1a1a1}input[type="submit"]:active,button:active,input[type="submit"].active,button.active,.open .dropdown-toggleinput[type="submit"],.open .dropdown-togglebutton{background-image:none}input[type="submit"].disabled,button.disabled,input[type="submit"][disabled],button[disabled],fieldset[disabled] input[type="submit"],fieldset[disabled] button,input[type="submit"].disabled:hover,button.disabled:hover,input[type="submit"][disabled]:hover,button[disabled]:hover,fieldset[disabled] input[type="submit"]:hover,fieldset[disabled] button:hover,input[type="submit"].disabled:focus,button.disabled:focus,input[type="submit"][disabled]:focus,button[disabled]:focus,fieldset[disabled] input[type="submit"]:focus,fieldset[disabled] button:focus,input[type="submit"].disabled:active,button.disabled:active,input[type="submit"][disabled]:active,button[disabled]:active,fieldset[disabled] input[type="submit"]:active,fieldset[disabled] button:active,input[type="submit"].disabled.active,button.disabled.active,input[type="submit"][disabled].active,button[disabled].active,fieldset[disabled] input[type="submit"].active,fieldset[disabled] button.active{background-color:#f2f2f2;border-color:#bfbfbf}input[type="submit"].btn-primary,button.btn-primary{color:#fff;background-color:#25537b;border-color:#000}input[type="submit"].btn-primary:hover,button.btn-primary:hover,input[type="submit"].btn-primary:focus,button.btn-primary:focus,input[type="submit"].btn-primary:active,button.btn-primary:active,input[type="submit"].btn-primary.active,button.btn-primary.active,.open .dropdown-toggleinput[type="submit"].btn-primary,.open .dropdown-togglebutton.btn-primary{color:#fff;background-color:#1c3e5c;border-color:#000}input[type="submit"].btn-primary:active,button.btn-primary:active,input[type="submit"].btn-primary.active,button.btn-primary.active,.open .dropdown-toggleinput[type="submit"].btn-primary,.open .dropdown-togglebutton.btn-primary{background-image:none}input[type="submit"].btn-primary.disabled,button.btn-primary.disabled,input[type="submit"].btn-primary[disabled],button.btn-primary[disabled],fieldset[disabled] input[type="submit"].btn-primary,fieldset[disabled] button.btn-primary,input[type="submit"].btn-primary.disabled:hover,button.btn-primary.disabled:hover,input[type="submit"].btn-primary[disabled]:hover,button.btn-primary[disabled]:hover,fieldset[disabled] input[type="submit"].btn-primary:hover,fieldset[disabled] button.btn-primary:hover,input[type="submit"].btn-primary.disabled:focus,button.btn-primary.disabled:focus,input[type="submit"].btn-primary[disabled]:focus,button.btn-primary[disabled]:focus,fieldset[disabled] input[type="submit"].btn-primary:focus,fieldset[disabled] button.btn-primary:focus,input[type="submit"].btn-primary.disabled:active,button.btn-primary.disabled:active,input[type="submit"].btn-primary[disabled]:active,button.btn-primary[disabled]:active,fieldset[disabled] input[type="submit"].btn-primary:active,fieldset[disabled] button.btn-primary:active,input[type="submit"].btn-primary.disabled.active,button.btn-primary.disabled.active,input[type="submit"].btn-primary[disabled].active,button.btn-primary[disabled].active,fieldset[disabled] input[type="submit"].btn-primary.active,fieldset[disabled] button.btn-primary.active{background-color:#25537b;border-color:#000}.search-query{display:inline-block;padding:4px;font-size:12px;line-height:1.42857143;color:#555;border:1px solid #aaa;padding-left:14px !important;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;max-width:auto}.search-query:focus{border-color:rgba(24,132,218,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);outline:0;outline:thin dotted \9}.search-spinner{position:absolute;display:none;right:6px;top:9px}#search-clear-btn{position:absolute;right:6px;top:9px;display:block;font-size:1.4em !important;text-decoration:none;color:#888;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#search-clear-btn:before{content:"\f057"}.errormessagelarge,.warningmessagelarge,.donemessagelarge,.infomessagelarge{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px;min-height:36px;padding-left:52px;background-image:url(error_large.png);background-repeat:no-repeat;background-position:10px 8px}.errormessagelarge h4,.warningmessagelarge h4,.donemessagelarge h4,.infomessagelarge h4{margin-top:0;color:inherit}.errormessagelarge .alert-link,.warningmessagelarge .alert-link,.donemessagelarge .alert-link,.infomessagelarge .alert-link{font-weight:bold}.errormessagelarge>p,.warningmessagelarge>p,.donemessagelarge>p,.infomessagelarge>p,.errormessagelarge>ul,.warningmessagelarge>ul,.donemessagelarge>ul,.infomessagelarge>ul{margin-bottom:0}.errormessagelarge>p+p,.warningmessagelarge>p+p,.donemessagelarge>p+p,.infomessagelarge>p+p{margin-top:5px}.errormessagelarge{background-color:#f9c7c5;border-color:#dd1b15;color:#7f2a27;padding-left:52px}.errormessagelarge hr{border-top-color:#c61813}.errormessagelarge .alert-link{color:#581d1b}.warningmessagelarge{background-color:#fce1bb;border-color:#e28809;color:#81581e;padding-left:52px;background-image:url(warn_large.png)}.warningmessagelarge hr{border-top-color:#ca7a08}.warningmessagelarge .alert-link{color:#583c14}.donemessagelarge{background-color:#b0f1b0;border-color:#20b520;color:#295f29;padding-left:52px;background-image:url(ok_large.png)}.donemessagelarge hr{border-top-color:#1c9f1c}.donemessagelarge .alert-link{color:#1a3c1a}.infomessagelarge{background-color:#a8e5f7;border-color:#119ac2;color:#1f5768;background-image:url(info_large.png)}.infomessagelarge hr{border-top-color:#0f87ab}.infomessagelarge .alert-link{color:#143641}.screencastBox{padding-left:10px;border-color:#aa6;background-color:#ffc;background-image:none}.errormessage,.warningmessage,.donemessage,.infomessage,.errormessagesmall,.warningmessagesmall,.donemessagesmall,.infomessagesmall{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px;padding:5px;padding-left:25px;min-height:15px;background-image:url(error_small.png);background-repeat:no-repeat;background-position:5px 5px}.errormessage h4,.warningmessage h4,.donemessage h4,.infomessage h4,.errormessagesmall h4,.warningmessagesmall h4,.donemessagesmall h4,.infomessagesmall h4{margin-top:0;color:inherit}.errormessage .alert-link,.warningmessage .alert-link,.donemessage .alert-link,.infomessage .alert-link,.errormessagesmall .alert-link,.warningmessagesmall .alert-link,.donemessagesmall .alert-link,.infomessagesmall .alert-link{font-weight:bold}.errormessage>p,.warningmessage>p,.donemessage>p,.infomessage>p,.errormessagesmall>p,.warningmessagesmall>p,.donemessagesmall>p,.infomessagesmall>p,.errormessage>ul,.warningmessage>ul,.donemessage>ul,.infomessage>ul,.errormessagesmall>ul,.warningmessagesmall>ul,.donemessagesmall>ul,.infomessagesmall>ul{margin-bottom:0}.errormessage>p+p,.warningmessage>p+p,.donemessage>p+p,.infomessage>p+p,.errormessagesmall>p+p,.warningmessagesmall>p+p,.donemessagesmall>p+p,.infomessagesmall>p+p{margin-top:5px}.errormessage,.errormessagesmall{background-color:#f9c7c5;border-color:#dd1b15;color:#7f2a27}.errormessage hr,.errormessagesmall hr{border-top-color:#c61813}.errormessage .alert-link,.errormessagesmall .alert-link{color:#581d1b}.warningmessage,.warningmessagesmall{background-color:#fce1bb;border-color:#e28809;color:#81581e;background-image:url(warn_small.png)}.warningmessage hr,.warningmessagesmall hr{border-top-color:#ca7a08}.warningmessage .alert-link,.warningmessagesmall .alert-link{color:#583c14}.donemessage,.donemessagesmall{background-color:#b0f1b0;border-color:#20b520;color:#295f29;background-image:url(ok_small.png)}.donemessage hr,.donemessagesmall hr{border-top-color:#1c9f1c}.donemessage .alert-link,.donemessagesmall .alert-link{color:#1a3c1a}.infomessage,.infomessagesmall{background-color:#a8e5f7;border-color:#119ac2;color:#1f5768;background-image:url(info_small.png)}.infomessage hr,.infomessagesmall hr{border-top-color:#0f87ab}.infomessage .alert-link,.infomessagesmall .alert-link{color:#143641}.errormark,.warningmark,.donemark,.infomark,.ok_bgr,.err_bgr{padding-left:20px;min-height:15px;background:url(error_small.png) no-repeat}.warningmark{background-image:url(warn_small.png)}.donemark{background-image:url(ok_small.png)}.infomark,.ok_bgr{background-image:url(info_small.png)}table.simple{font-size:12px;background:#fff;margin:1em;border-collapse:collapse;text-align:left}table.simple th{font-size:14px;font-weight:normal;padding:10px 8px;border-bottom:2px solid #333}table.simple td{padding:10px 8px 0 8px}table.simple tbody tr:hover td{color:#333}table.tabletip{width:100%;border-collapse:collapse;text-align:left}table.tabletip th{white-space:nowrap;border-bottom:1px solid #444;padding-right:3px}table.tabletip td{border-bottom:1px solid #ddd}table.tabletip tbody tr:hover td{background-color:#eee}table.colored{border-top:solid #d6b161 1px;border-bottom:solid #d6b161 1px}table.colored td,table.colored th{text-align:left;padding:5px;line-height:1.42857143}table.colored tr.header{background:#ebd9b2;color:#000;background-repeat:repeat-x;background-position:top;border-bottom:solid #d6b161 1px;font-weight:bold}table.colored tr{background:#fff}table.colored tr.odd_row{background:#f9f9f9}div.debug{margin:10px;padding:5px;background:#ff9;border:solid #ff3 1px;color:black}.grid-header{padding-bottom:1em}.grid-header h2{margin:0;margin-bottom:.5em}.grid-header .title{font-weight:bold}.grid,.ui-table,.ui-table-plain{padding-top:1em;border-collapse:collapse;width:100%}.grid tbody td,.ui-table tbody td,.ui-table-plain tbody td{line-height:1.42857143;border-top:solid #ddd 1px;border-bottom:solid #ddd 1px;padding:5px}.grid tbody td:empty{padding:0}.grid thead tr{height:2em}.grid thead th{line-height:1.42857143;background:#ebd9b2;color:#000;border-top:solid #d6b161 1px;border-bottom:solid #d6b161 1px;padding:5px;text-align:left;white-space:nowrap}.grid tfoot td{background-color:#f8f8f8;border-top:solid #ddd 1px;border-bottom:solid #ddd 1px;padding:5px}.grid .current{background-color:#eef}.count-box{min-width:1.1em;padding:5px;border-width:1px;border-style:solid;text-align:center;display:inline-block}.text-filter-val{border:solid 1px #aaa;padding:1px 2px 1px 3px;margin-right:5px;-moz-border-radius:.5em;-webkit-border-radius:.5em;font-style:italic}.page-link a,.inactive-link{padding:0 7px 0 7px;color:#555}.inactive-link,.current-filter{font-weight:bold;color:#000}.submit-image{background:url(../images/fugue/magnifier-left.png) no-repeat center transparent;background-color:#eee;width:9.42857143;height:9.42857143;cursor:pointer;margin:0;padding:0;border:1px solid #aaa;border-left:none}#advanced-search td{padding:3px}#advanced-search table{border-collapse:separate}.delete-search-icon{background:url(../images/delete_tag_icon_gray.png) center no-repeat;display:inline-block;width:10px;cursor:pointer;height:18px;vertical-align:middle;margin-left:2px}.search-box-input{border:0;float:left;outline:medium none;font-style:italic;font-size:inherit}.search-box{vertical-align:bottom;display:inline-block;padding:0;white-space:nowrap}.gray-background{background-color:#ddd}.loading-elt-overlay{background-color:white;opacity:.5;width:100%;height:100%;z-index:14000;position:fixed;display:none}div.odd_row{background:#f9f9f9}#footer{display:none}span.toolParameterExpandableCollapsable{font-weight:bold;cursor:pointer}ul.toolParameterExpandableCollapsable{list-style:none}ul.manage-table-actions{float:right;margin-top:-2.5em}ul.manage-table-actions li{display:block;float:left;margin-left:.5em}.state-color-new{border-color:#bfbfbf;background:#eee}.state-color-upload{border-color:#119ac2;background:#a8e5f7}.state-color-waiting{border-color:#bfbfbf;background:#eee}.state-color-queued{border-color:#bfbfbf;background:#eee}.state-color-running{border-color:#aa6;background:#ffc}.state-color-ok{border-color:#20b520;background:#b0f1b0}.state-color-error{border-color:#dd1b15;background:#f9c7c5}.state-color-deleted{border-color:#306;background:#39f}.state-fg-new{color:#ffb030}.state-fg-upload{color:#d090d0}.state-fg-waiting{color:#e8c060}.state-fg-queued{color:#888}.state-fg-running{color:#aa6}.state-fg-ok{color:#6a6}.state-fg-error{color:#a66}.state-fg-deleted{color:#39f}button{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf}button:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}button:hover,button:focus{color:#333;text-decoration:none}button:active,button.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}button.disabled,button[disabled],fieldset[disabled] button{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}button:hover,button:focus,button:active,button.active,.open .dropdown-togglebutton{color:#333;background-color:#dedede;border-color:#a1a1a1}button:active,button.active,.open .dropdown-togglebutton{background-image:none}button.disabled,button[disabled],fieldset[disabled] button,button.disabled:hover,button[disabled]:hover,fieldset[disabled] button:hover,button.disabled:focus,button[disabled]:focus,fieldset[disabled] button:focus,button.disabled:active,button[disabled]:active,fieldset[disabled] button:active,button.disabled.active,button[disabled].active,fieldset[disabled] button.active{background-color:#f2f2f2;border-color:#bfbfbf}.action-button{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf}.action-button:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.action-button:hover,.action-button:focus{color:#333;text-decoration:none}.action-button:active,.action-button.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.action-button.disabled,.action-button[disabled],fieldset[disabled] .action-button{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.action-button:hover,.action-button:focus,.action-button:active,.action-button.active,.open .dropdown-toggle.action-button{color:#333;background-color:#dedede;border-color:#a1a1a1}.action-button:active,.action-button.active,.open .dropdown-toggle.action-button{background-image:none}.action-button.disabled,.action-button[disabled],fieldset[disabled] .action-button,.action-button.disabled:hover,.action-button[disabled]:hover,fieldset[disabled] .action-button:hover,.action-button.disabled:focus,.action-button[disabled]:focus,fieldset[disabled] .action-button:focus,.action-button.disabled:active,.action-button[disabled]:active,fieldset[disabled] .action-button:active,.action-button.disabled.active,.action-button[disabled].active,fieldset[disabled] .action-button.active{background-color:#f2f2f2;border-color:#bfbfbf}a.action-button{color:#333;text-decoration:none}.action-button>img{vertical-align:middle}.action-button:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.menubutton{padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;border:1px solid transparent;border-radius:3px;white-space:nowrap;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf;display:inline-block;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.menubutton:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.menubutton:hover,.menubutton:focus{color:#333;text-decoration:none}.menubutton:active,.menubutton.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.menubutton.disabled,.menubutton[disabled],fieldset[disabled] .menubutton{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.menubutton:hover,.menubutton:focus,.menubutton:active,.menubutton.active,.open .dropdown-toggle.menubutton{color:#333;background-color:#dedede;border-color:#a1a1a1}.menubutton:active,.menubutton.active,.open .dropdown-toggle.menubutton{background-image:none}.menubutton.disabled,.menubutton[disabled],fieldset[disabled] .menubutton,.menubutton.disabled:hover,.menubutton[disabled]:hover,fieldset[disabled] .menubutton:hover,.menubutton.disabled:focus,.menubutton[disabled]:focus,fieldset[disabled] .menubutton:focus,.menubutton.disabled:active,.menubutton[disabled]:active,fieldset[disabled] .menubutton:active,.menubutton.disabled.active,.menubutton[disabled].active,fieldset[disabled] .menubutton.active{background-color:#f2f2f2;border-color:#bfbfbf}.menubutton:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.menubutton:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.menubutton a{text-decoration:none}.menubutton .label,.menubutton>label{position:relative;display:inline-block;border-right:none;text-decoration:none;text-align:left;max-height:2.85714286;line-height:1.42857143;overflow:hidden;text-overflow:ellipsis}.menubutton.popup .label{border-right:solid #bfbfbf 1px;padding-right:6px}.menubutton.popup,.menubutton.popup.split{padding-right:18px}.menubutton.popup:after,.menubutton.popup.split:after{top:45%;position:absolute;right:6px;display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.btn-default .menubutton.popup:after,.btn-default .menubutton.popup.split:after{border-top-color:#333}.btn-primary .menubutton.popup:after,.btn-primary .menubutton.popup.split:after,.btn-success .menubutton.popup:after,.btn-success .menubutton.popup.split:after,.btn-warning .menubutton.popup:after,.btn-warning .menubutton.popup.split:after,.btn-danger .menubutton.popup:after,.btn-danger .menubutton.popup.split:after,.btn-info .menubutton.popup:after,.btn-info .menubutton.popup.split:after{border-top-color:#fff}div.popmenu-wrapper{position:absolute;top:100%;z-index:20000}div.popmenu-wrapper ul.dropdown-menu{display:block;position:relative;float:none}ul.dropdown-menu a{text-decoration:none}ul.dropdown-menu li.head>a{text-shadow:0 1px 0 rgba(255,255,255,0.5);font-size:11px;font-weight:bold;line-height:1.42857143;color:#999;text-transform:uppercase}ul.dropdown-menu li.head>a:hover{background:inherit;border-color:transparent}.popup-arrow{cursor:pointer;text-decoration:none;color:#555}.popup-arrow:hover{color:black}div.permissionContainer{padding-left:20px}.text-content hr{display:block;background:black;color:black;width:100%;height:1px;border:none;background:#aaa;color:#aaa}.text-content table{border-collapse:collapse;border-top:1px solid #ccc;border-left:1px solid #ccc}.text-content blockquote{color:#666}.text-content fieldset{border-color:#ccc;border:1px solid #ccc}.text-content th,.text-content td{border-bottom:1px solid #ddd;border-right:1px solid #ccc}.text-content th,.text-content td{padding:.8em}.icon-button{width:16px;height:16px;display:block;float:left;margin-left:2px;text-indent:20px;background-repeat:no-repeat;background-position:0 0;padding:0}.fa-icon-button{text-align:center;text-decoration:none;display:inline-block;cursor:pointer;width:16px;height:16px;line-height:8px}.fa-icon-button:hover{color:maroon;-webkit-transition:color .25s linear;transition:color .25s linear}.editable-text{cursor:pointer}.editable-text:hover{cursor:text;border:dotted #999 1px}.icon-button.multiinput{background:url(../images/documents-stack.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}.icon-button.multiinput.disabled{background:url(../images/documents-stack-faded.png) no-repeat;cursor:pointer}.icon-button.link{background:url(../images/silk/link.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}.icon-button.link-broken{background:url(../images/silk/link_break.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}.workflow-invocation-complete{border:solid 1px #6a6;border-left-width:5px;margin:10px 0;padding-left:5px}.icon-btn,.ui-button-icon,.ui-button-icon-plain{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;border-radius:3px;border:1px solid #bfbfbf;background-color:#f2f2f2;color:#333;cursor:pointer}.icon-btn:focus,.icon-btn:hover{outline:0;background-color:white;color:maroon}.icon-btn.disabled{background-color:transparent;color:#bbb;border-color:#bbb}.icon-btn-group{display:inline-block}.icon-btn-group .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.icon-btn-group .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.icon-btn-group .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.icon-btn-group .icon-btn:only-child{margin:0;border-radius:3px}.list-item{border:1px solid #bfbfbf}.list-item .vertical-spacing{margin-bottom:8px}.list-item .info-section{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px}.list-item .padded{padding:6px 10px 6px 8px}.list-item .warnings:not(:empty){padding-top:4px}.list-item .warnings [class$=messagesmall]{margin:6px 10px 2px 8px;font-size:90%}.list-item .warnings [class$=messagesmall]:first-child{margin-top:0}.list-item .warnings [class$=messagesmall]:last-child{margin-bottom:0}.list-item .help-text{font-weight:normal;color:#555}.list-item .selector{float:left;display:none;width:32px;height:32px;margin:0 0 -6px 0;padding:8px 0 2px 7px;font-size:80%;color:#333;cursor:pointer;vertical-align:middle}.list-item .selector:hover{color:maroon}.list-item .title-bar{cursor:pointer;outline:none;padding:6px 10px 6px 8px}.list-item .title-bar .title{display:inline;font-weight:bold;text-decoration:underline;word-wrap:break-word;word-break:break-all;line-height:16px}.list-item .title-bar .subtitle{color:#777;font-size:90%}.list-item .title-bar .subtitle a{color:inherit}.list-item .primary-actions{display:inline-block;float:right;margin:6px 10px 0}.list-item .primary-actions .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.list-item .primary-actions .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.list-item .primary-actions .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.list-item .primary-actions .icon-btn:only-child{margin:0;border-radius:3px}.list-item .primary-actions .icon-btn{margin-left:2px}.list-item .details{display:none;padding:0 10px 6px 8px}.list-item .details>[class$=messagesmall]{margin:0 0 8px 0}.list-item .details label{margin:0;padding:0;font-weight:normal}.list-item .details .prompt{font-weight:normal;color:#555}.list-item .details .prompt:after{content:':';margin-right:4px}.list-panel .vertical-spacing{margin-bottom:8px}.list-panel .controls>*:not(:empty){margin-bottom:8px}.list-panel .controls .name{word-wrap:break-word;font-weight:bold}.list-panel .controls .name input{width:100%;margin:-3px 0 -3px -3px;font-weight:bold}.list-panel .controls .subtitle{color:#777;font-size:90%}.list-panel .controls .subtitle a{color:inherit}.list-panel .controls .editable-text{border:solid transparent 1px}.list-panel .controls .editable-text:hover{cursor:pointer;border:1px dotted #999}.list-panel .controls .actions{display:inline-block;float:right}.list-panel .controls .actions .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.list-panel .controls .actions .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.list-panel .controls .actions .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.list-panel .controls .actions .icon-btn:only-child{margin:0;border-radius:3px}.list-panel .controls .actions .icon-btn{margin-left:2px}.list-panel .controls .messages:before,.list-panel .controls .messages:after{content:" ";display:table}.list-panel .controls .messages:after{clear:both}.list-panel .controls .messages:before,.list-panel .controls .messages:after{content:" ";display:table}.list-panel .controls .messages:after{clear:both}.list-panel .controls .messages [class$=message],.list-panel .controls .messages [class$=messagesmall]{margin:0}.list-panel .controls .messages [class$=message]:not(:last-child),.list-panel .controls .messages [class$=messagesmall]:not(:last-child){margin-bottom:8px}.list-panel .controls .list-actions{display:none}.list-panel .controls .list-actions:before,.list-panel .controls .list-actions:after{content:" ";display:table}.list-panel .controls .list-actions:after{clear:both}.list-panel .controls .list-actions:before,.list-panel .controls .list-actions:after{content:" ";display:table}.list-panel .controls .list-actions:after{clear:both}.list-panel .controls .list-actions .btn{padding-top:2px;padding-bottom:2px;font-size:90%}.list-panel .controls .list-actions .list-action-menu{float:right}.list-panel .list-items .list-item{border-width:1px 0 1px 0}.list-panel .list-items .list-item:not(:last-child){border-bottom-width:0}.list-panel .empty-message{display:none;margin:0}.list-item .details .list-panel{margin-top:8px;border-radius:3px;background:white;padding:4px}.list-item .details .list-panel .list-items{border:1px solid #bfbfbf;border-radius:3px}.list-item .details .list-panel .list-items .list-item:first-child{border-top-width:0;border-radius:3px 3px 0 0}.list-item .details .list-panel .list-items .list-item:last-child{border-bottom-width:0;border-radius:0 0 3px 3px}.history-panel-header .panel-header-button{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;padding:0}.state-icon{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;margin-right:4px;vertical-align:middle;width:16px;height:16px;line-height:16px;text-align:center;font-size:16px}.state-icon-running{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.state-icon-running:before{content:"\f110"}.state-icon-upload{overflow:hidden}.state-icon-upload:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.state-icon-error{background-color:white;border-radius:8px}.state-icon-error:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.has-job-state-mixin.state-ok,.has-job-state-mixin.state-failed_metadata{background:#b0f1b0}.has-job-state-mixin.state-ok .state-icon,.has-job-state-mixin.state-failed_metadata .state-icon{display:none}.has-job-state-mixin.state-error,.has-job-state-mixin.state-empty{background:#f9c7c5}.has-job-state-mixin.state-error .state-icon,.has-job-state-mixin.state-empty .state-icon{background-color:white;border-radius:8px}.has-job-state-mixin.state-error .state-icon:before,.has-job-state-mixin.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.has-job-state-mixin.state-upload{background:#a8e5f7}.has-job-state-mixin.state-upload .state-icon{overflow:hidden}.has-job-state-mixin.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.has-job-state-mixin.state-queued{background:#eee}.has-job-state-mixin.state-queued .state-icon:before{content:"\f017"}.has-job-state-mixin.state-running,.has-job-state-mixin.state-setting_metadata{background:#ffc}.has-job-state-mixin.state-running .state-icon,.has-job-state-mixin.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.has-job-state-mixin.state-running .state-icon:before,.has-job-state-mixin.state-setting_metadata .state-icon:before{content:"\f110"}.has-job-state-mixin.state-paused{background:#d9edf7}.has-job-state-mixin.state-paused .state-icon:before{content:"\f04c"}.has-job-state-mixin.state-discarded{background:#eee}.has-job-state-mixin.state-discarded .state-icon:before{content:"\f014"}.has-job-state-mixin.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.has-job-state-mixin.state-noPermission .state-icon{font-size:20px}.has-job-state-mixin.state-noPermission .state-icon:before{content:"\f023"}.has-job-state-mixin.state-new{background:#eee}.has-job-state-mixin.state-new .state-icon:before{content:"\f06a"}.dataset.state-ok,.dataset.state-failed_metadata{background:#b0f1b0}.dataset.state-ok .state-icon,.dataset.state-failed_metadata .state-icon{display:none}.dataset.state-error,.dataset.state-empty{background:#f9c7c5}.dataset.state-error .state-icon,.dataset.state-empty .state-icon{background-color:white;border-radius:8px}.dataset.state-error .state-icon:before,.dataset.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.dataset.state-upload{background:#a8e5f7}.dataset.state-upload .state-icon{overflow:hidden}.dataset.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.dataset.state-queued{background:#eee}.dataset.state-queued .state-icon:before{content:"\f017"}.dataset.state-running,.dataset.state-setting_metadata{background:#ffc}.dataset.state-running .state-icon,.dataset.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.dataset.state-running .state-icon:before,.dataset.state-setting_metadata .state-icon:before{content:"\f110"}.dataset.state-paused{background:#d9edf7}.dataset.state-paused .state-icon:before{content:"\f04c"}.dataset.state-discarded{background:#eee}.dataset.state-discarded .state-icon:before{content:"\f014"}.dataset.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.dataset.state-noPermission .state-icon{font-size:20px}.dataset.state-noPermission .state-icon:before{content:"\f023"}.dataset.state-new{background:#eee}.dataset.state-new .state-icon:before{content:"\f06a"}.dataset .details .summary{margin-bottom:8px}.dataset .details .summary .blurb{margin-bottom:2px}.dataset .details .summary .datatype,.dataset .details .summary .dbkey{display:inline}.dataset .details .summary .datatype .value,.dataset .details .summary .dbkey .value{font-weight:bold}.dataset .details .summary .datatype .value:after{content:',';font-weight:normal;color:#555;margin-right:4px}.dataset .details .summary .dbkey:after{content:' ';display:block;margin-bottom:8px}.dataset .details .summary .info{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px;overflow:auto}.dataset .details .summary .info .value{white-space:pre-line}.dataset .details .summary .job-error-text{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px;overflow:auto;white-space:pre}.dataset .details .actions .metafile-dropdown{display:inline-block}.dataset .details .actions .visualizations-dropdown{display:inline-block}.dataset .details .actions .left{display:inline-block;float:left}.dataset .details .actions .left .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.dataset .details .actions .left .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.dataset .details .actions .left .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.dataset .details .actions .left .icon-btn:only-child{margin:0;border-radius:3px}.dataset .details .actions .left .icon-btn{margin-right:2px}.dataset .details .actions .left .icon-btn.visualization-btn{margin-left:0;border-radius:0 3px 3px 0;border-right:1px solid #bfbfbf}.dataset .details .actions .right{display:inline-block;float:right}.dataset .details .actions .right .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.dataset .details .actions .right .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.dataset .details .actions .right .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.dataset .details .actions .right .icon-btn:only-child{margin:0;border-radius:3px}.dataset .details .actions .right .icon-btn{margin-left:2px}.dataset .details .actions:not(:last-child){margin-bottom:8px}.dataset .details .tags-display{display:none;margin-bottom:8px}.dataset .details .tags-display .select2-container{min-width:0}.dataset .details .tags-display .select2-container .select2-choices{border-radius:3px}.dataset .details .annotation-display{display:none;margin-bottom:8px}.dataset .details .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px;white-space:pre-wrap;overflow:auto}.dataset .details .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}.dataset .details .annotation-display textarea{margin:0 0 2px 0;display:block;border-radius:3px;width:100%}.dataset .details .display-applications .display-application:last-child{margin-bottom:8px}.dataset .details .dataset-peek{margin-bottom:8px;width:100%;margin:0;border-radius:3px;background:white;color:black;font-size:10px;overflow:auto}.dataset .details .dataset-peek th{color:white;background:#25537b}.dataset .details .dataset-peek table,.dataset .details .dataset-peek th,.dataset .details .dataset-peek tr,.dataset .details .dataset-peek td{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:10px}.history-content.dataset .title-bar .title .hid:after,.history-content.dataset-collection .title-bar .title .hid:after{content:':'}.history-panel>.controls{margin:10px 10px 0 10px;padding:0}.history-panel>.controls .messages{margin-bottom:0}.history-panel>.controls .messages>*{cursor:pointer}.history-panel>.controls .messages>*:last-child{margin-bottom:8px}.history-panel>.controls .title{margin-bottom:4px}.history-panel>.controls .title input{width:100%;margin:-3px 0 -3px -3px;font-weight:bold}.history-panel>.controls .subtitle:not(:empty){margin-top:-4px;margin-bottom:6px}.history-panel>.controls .history-size{display:inline-block;margin-top:4px;color:black}.history-panel>.controls .actions{margin-bottom:0}.history-panel>.controls .quota-message{display:none;margin:8px 0 5px 0}.history-panel>.controls .tags-display,.history-panel>.controls .annotation-display{display:none;margin-bottom:8px}.history-panel>.controls .tags-display label,.history-panel>.controls .annotation-display label{display:block;margin:0;padding:0;font-weight:normal;color:#555}.history-panel>.controls .tags-display label:after,.history-panel>.controls .annotation-display label:after{content:':'}.history-panel>.controls .tags-display .select2-container{min-width:0}.history-panel>.controls .tags-display .select2-container .select2-choices{border-radius:3px}.history-panel>.controls .tags-display input{border-radius:3px}.history-panel>.controls .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.5);padding:4px;white-space:pre-wrap;overflow:auto}.history-panel>.controls .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}.history-panel>.controls .annotation-display textarea{margin:0 0 2px 0;border-radius:3px;width:100%}.history-panel .list-item.history-content{border-width:1px 0 0 0}.history-panel .list-item.history-content:last-child{border-width:1px 0 1px 0}.history-panel .empty-message{margin:0 10px 0 10px}.history-panel .dataset-collection .subtitle{margin-top:2px}.annotated-history-panel>.controls{margin:0}.annotated-history-panel>.controls .name{font-size:150%;margin-bottom:4px}.annotated-history-panel>.controls .subtitle{color:black}.annotated-history-panel>.controls .subtitle:not(:empty){margin:0 0 0 4px}.annotated-history-panel>.controls .messages:not(:empty){margin-top:16px}.annotated-history-panel>.controls .annotation-display{display:block;border:1px solid lightgrey;border-width:1px 0 0 0;padding:4px 0 4px 0;margin:4px 4px 0 4px;white-space:pre-wrap}.annotated-history-panel>.controls .annotation-display:empty{display:none}.annotated-history-panel>.controls .search{padding:16px 0 0 0;margin-bottom:0}.annotated-history-panel table.list-items{width:100%;table-layout:fixed}.annotated-history-panel table.list-items .headers{border-bottom:2px solid grey}.annotated-history-panel table.list-items .headers th{padding:8px}.annotated-history-panel table.list-items>tbody>tr{cursor:pointer;border-bottom:1px solid grey}.annotated-history-panel table.list-items>tbody>tr>td{margin:0;padding:0;vertical-align:top}.annotated-history-panel table.list-items>tbody>tr>td:nth-child(1){width:50%}.annotated-history-panel table.list-items>tbody>tr>td:nth-child(2){padding:8px 16px 8px 16px;white-space:pre-wrap}.annotated-history-panel table.list-items>tbody>tr>td>.list-item{border:0}.annotated-history-panel .empty-message{margin-top:8px}.current-history-panel .list-item.history-content.current-content{border-left:5px solid #4e5777}.multi-panel-history{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.multi-panel-history .flex-row-container,.multi-panel-history .flex-column-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:0;min-height:0;-webkit-align-items:stretch;-ms-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;-ms-align-content:stretch;align-content:stretch;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.multi-panel-history .flex-row-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.multi-panel-history .flex-column-container{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.multi-panel-history .flex-row,.multi-panel-history .flex-column{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:auto;-ms-flex-item-align:auto;align-self:auto}.multi-panel-history .header,.multi-panel-history .footer{width:100%;background-color:lightgrey}.multi-panel-history .header .btn,.multi-panel-history .footer .btn{height:21px}.multi-panel-history .header{min-height:29px;max-height:29px}.multi-panel-history .header .more-options .btn{height:26px}.multi-panel-history .header .more-options input[type=checkbox]{margin-top:1px}.multi-panel-history .footer{min-height:0;max-height:0}.multi-panel-history .smaller-btn{height:20px;line-height:normal;font-size:90%;padding-top:0;padding-bottom:0}.multi-panel-history .control-column{margin-top:4px}.multi-panel-history .control-column .btn{height:20px;line-height:normal;font-size:90%;padding-top:0;padding-bottom:0}.multi-panel-history .control-column .search-control{display:inline-block;width:40%}.multi-panel-history .control-column .search-control .search-clear,.multi-panel-history .control-column .search-control .search-loading{margin-top:-22px}.multi-panel-history .control-column input.search-query{font-size:90%;height:21px;line-height:normal;padding:2px 2px 1px 2px}.multi-panel-history .control-column .open-more-options{padding:2px 6px 2px 6px;font-size:100%}.multi-panel-history .control-column .header-info{display:inline-block;padding:2px 4px 2px 4px;color:grey}.multi-panel-history .control-column.control-column-right,.multi-panel-history .control-column.control-column-left{margin-right:8px;margin-left:8px}.multi-panel-history .control-column.control-column-right>*,.multi-panel-history .control-column.control-column-left>*{margin:0 4px 4px 0}.multi-panel-history .control-column.control-column-center{text-align:center;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-height:22px}.multi-panel-history .control-column.control-column-right{text-align:right}.multi-panel-history .outer-middle{overflow:auto}.multi-panel-history .middle{min-width:100%;margin:0 0 0 0;background-color:white;padding:8px}.multi-panel-history .history-column{width:312px;margin:0 8px 0 0}.multi-panel-history .history-column:first-child{position:fixed;z-index:10}.multi-panel-history .history-column:first-child .history-panel{border:1px solid black;box-shadow:4px 4px 4px rgba(96,96,96,0.3)}.multi-panel-history .history-column:nth-child(2){margin-left:320px}.multi-panel-history .history-column:last-child{margin-right:0}.multi-panel-history .history-column .dropdown-menu{z-index:inherit}.multi-panel-history .history-column .panel-controls{width:100%;height:24px;border-radius:3px;background-color:white;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-align-self:auto;-ms-flex-item-align:auto;align-self:auto}.multi-panel-history .history-column .panel-controls .btn{height:20px;line-height:normal;font-size:90%;padding-top:0;padding-bottom:0}.multi-panel-history .history-column .panel-controls .pull-left .btn{margin-right:4px}.multi-panel-history .history-column .panel-controls .pull-right .btn{margin-left:4px}.multi-panel-history .history-column .panel-controls .panel-menu{z-index:1}.multi-panel-history .history-column .panel-controls .panel-menu .dropdown-menu a{text-align:left}.multi-panel-history .history-column .panel-controls .current-label{display:inline-block;color:grey;padding-left:2px;margin-top:2px}.multi-panel-history .history-column .history-panel{width:100%;border:1px solid grey;border-radius:3px;background-color:#dfe5f9;overflow:auto}body.historyPage{background:#dfe5f9;color:#000;margin:5px;border:0;padding:0}div.historyLinks{margin:5px 5px}div.historyItem{margin:0 -5px;padding:8px 10px;border-top:solid #bfbfbf 1px;border-right:none;word-wrap:break-word;background:#eee}div.historyItem .state-icon{display:inline-block;vertical-align:middle;width:16px;height:16px;background-position:0 1px;background-repeat:no-repeat}div.historyItem .historyItemTitle{font-weight:bold;line-height:16px}.historyItemContainer:last-child div.historyItem{border-bottom:solid #bfbfbf 1px}div.historyItem div.historyItem{margin-right:-11px}div.historyItem-ok,div.historyItem-failed_metadata{background:#b0f1b0}div.historyItem-ok .state-icon,div.historyItem-failed_metadata .state-icon{display:none}div.historyItem-error{background:#f9c7c5}div.historyItem-error .state-icon{background-image:url(sprite-history-states.png);background-position:-15px 0;width:15px;height:15px}div.historyItem-empty{background:#f9c7c5}div.historyItem-empty .state-icon{background-image:url(sprite-history-states.png);background-position:0 0;width:15px;height:15px}div.historyItem-running{background:#ffc}div.historyItem-running .state-icon{background-image:url(data_running.gif)}div.historyItem-setting_metadata{background:#ffc}div.historyItem-setting_metadata .state-icon{background-image:url(data_running.gif)}div.historyItem-upload{background:#a8e5f7}div.historyItem-upload .state-icon{background-image:url(data_upload.gif)}div.historyItem-queued{background:#eee}div.historyItem-queued .state-icon{background-image:url(sprite-history-states.png);background-position:-15px -15px;width:15px;height:15px}div.historyItem-noPermission{filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}div.historyItem-noPermission .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-noPermission .state-icon:before{content:"\f05e"}div.historyItem-paused{background:#d9edf7}div.historyItem-paused .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-paused .state-icon:before{content:"\f04c"}div.historyItem-new .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-new .state-icon:before{content:"\f071"}div.historyItemTitleBar.spinner .state-icon{background:url(data_running.gif) 0 1px no-repeat !important}div.historyItemButtons{float:right}div.historyItemButtons .icon-button.display{background-image:url(sprite-history-buttons.png);background-position:-16px -16px;width:16px;height:16px}div.historyItemButtons .icon-button.display:hover{background-image:url(sprite-history-buttons.png);background-position:-32px 0;width:16px;height:16px}div.historyItemButtons .icon-button.display_disabled{background-image:url(sprite-history-buttons.png);background-position:-32px -16px;width:16px;height:16px}div.historyItemButtons .icon-button.delete{background-image:url(sprite-history-buttons.png);background-position:0 0;width:16px;height:16px}div.historyItemButtons .icon-button.delete:hover{background-image:url(sprite-history-buttons.png);background-position:-16px 0;width:16px;height:16px}div.historyItemButtons .icon-button.delete_disabled{background-image:url(sprite-history-buttons.png);background-position:0 -16px;width:16px;height:16px}div.historyItemButtons .icon-button.edit{background-image:url(sprite-history-buttons.png);background-position:0 -32px;width:16px;height:16px}div.historyItemButtons .icon-button.edit:hover{background-image:url(sprite-history-buttons.png);background-position:-16px -32px;width:16px;height:16px}div.historyItemButtons .icon-button.edit_disabled{background-image:url(sprite-history-buttons.png);background-position:-32px -32px;width:16px;height:16px}div.historyItemBody div{padding-top:2px}pre.peek{background:white;color:black;width:100%;font-size:10px;overflow:auto}pre.peek th{color:white;background:#25537b}pre.peek table,pre.peek th,pre.peek tr,pre.peek td{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:10px}.dataset-collection-element.state-ok,.dataset-collection-element.state-failed_metadata{background:#b0f1b0}.dataset-collection-element.state-ok .state-icon,.dataset-collection-element.state-failed_metadata .state-icon{display:none}.dataset-collection-element.state-error,.dataset-collection-element.state-empty{background:#f9c7c5}.dataset-collection-element.state-error .state-icon,.dataset-collection-element.state-empty .state-icon{background-color:white;border-radius:8px}.dataset-collection-element.state-error .state-icon:before,.dataset-collection-element.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.dataset-collection-element.state-upload{background:#a8e5f7}.dataset-collection-element.state-upload .state-icon{overflow:hidden}.dataset-collection-element.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.dataset-collection-element.state-queued{background:#eee}.dataset-collection-element.state-queued .state-icon:before{content:"\f017"}.dataset-collection-element.state-running,.dataset-collection-element.state-setting_metadata{background:#ffc}.dataset-collection-element.state-running .state-icon,.dataset-collection-element.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.dataset-collection-element.state-running .state-icon:before,.dataset-collection-element.state-setting_metadata .state-icon:before{content:"\f110"}.dataset-collection-element.state-paused{background:#d9edf7}.dataset-collection-element.state-paused .state-icon:before{content:"\f04c"}.dataset-collection-element.state-discarded{background:#eee}.dataset-collection-element.state-discarded .state-icon:before{content:"\f014"}.dataset-collection-element.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.dataset-collection-element.state-noPermission .state-icon{font-size:20px}.dataset-collection-element.state-noPermission .state-icon:before{content:"\f023"}.dataset-collection-element.state-new{background:#eee}.dataset-collection-element.state-new .state-icon:before{content:"\f06a"}.dataset-collection-element .title-bar .subtitle{margin-top:2px}.dataset-collection-element .details{display:none}.history-content.dataset-collection.state-ok,.history-content.dataset-collection.state-failed_metadata{background:#b0f1b0}.history-content.dataset-collection.state-ok .state-icon,.history-content.dataset-collection.state-failed_metadata .state-icon{display:none}.history-content.dataset-collection.state-error,.history-content.dataset-collection.state-empty{background:#f9c7c5}.history-content.dataset-collection.state-error .state-icon,.history-content.dataset-collection.state-empty .state-icon{background-color:white;border-radius:8px}.history-content.dataset-collection.state-error .state-icon:before,.history-content.dataset-collection.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.history-content.dataset-collection.state-upload{background:#a8e5f7}.history-content.dataset-collection.state-upload .state-icon{overflow:hidden}.history-content.dataset-collection.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.history-content.dataset-collection.state-queued{background:#eee}.history-content.dataset-collection.state-queued .state-icon:before{content:"\f017"}.history-content.dataset-collection.state-running,.history-content.dataset-collection.state-setting_metadata{background:#ffc}.history-content.dataset-collection.state-running .state-icon,.history-content.dataset-collection.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.history-content.dataset-collection.state-running .state-icon:before,.history-content.dataset-collection.state-setting_metadata .state-icon:before{content:"\f110"}.history-content.dataset-collection.state-paused{background:#d9edf7}.history-content.dataset-collection.state-paused .state-icon:before{content:"\f04c"}.history-content.dataset-collection.state-discarded{background:#eee}.history-content.dataset-collection.state-discarded .state-icon:before{content:"\f014"}.history-content.dataset-collection.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.history-content.dataset-collection.state-noPermission .state-icon{font-size:20px}.history-content.dataset-collection.state-noPermission .state-icon:before{content:"\f023"}.history-content.dataset-collection.state-new{background:#eee}.history-content.dataset-collection.state-new .state-icon:before{content:"\f06a"}.dataset-collection-panel{margin:0;padding:0}.dataset-collection-panel .vertically-spaced{margin-top:4px}.dataset-collection-panel .controls{padding:8px}.dataset-collection-panel .controls .navigation{margin-top:4px}.dataset-collection-panel .controls .navigation .back .fa-icon{margin-right:4px;font-size:120%;font-weight:bold;text-decoration:none}.dataset-collection-panel .controls .title{margin-top:12px}.dataset-collection-panel .controls .title .name{font-weight:bold}.dataset-collection-panel .list-items .dataset-collection-element{border-width:1px 0 0 0}.dataset-collection-panel .list-items .dataset-collection-element:last-child{border-bottom-width:1px}.job.list-item{border:1px solid #bfbfbf}.job.list-item .title-bar .subtitle{color:grey;font-size:80%}.job.list-item>.details{padding:0}.job.list-item>.details .params{padding:0 8px 0 8px}.job.list-item>.details .params .param .prompt,.job.list-item>.details .params .input .prompt{font-size:80%;color:grey}.job.list-item>.details .params .param .value,.job.list-item>.details .params .input .value{display:inline-block;font-weight:bold}.job.list-item>.details .list-panel{padding:0}.job.list-item>.details .list-panel .list-items{border:0;border-radius:0}.job.list-item>.details .list-panel .list-items .list-item{border:0;border-radius:0;border-top:1px solid #bfbfbf}.collection-creator{height:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.collection-creator ol,.collection-creator li{list-style:none;padding:0;margin:0}.collection-creator>*:not(.popover){padding:0 8px 0 8px}.collection-creator .btn{border-color:#bfbfbf}.collection-creator .vertically-spaced{margin-top:8px}.collection-creator .scroll-container{overflow:auto}.collection-creator .truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.collection-creator .empty-message{color:grey;font-style:italic}.collection-creator.flex-row-container,.collection-creator .flex-row-container,.collection-creator .flex-column-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-ms-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;-ms-align-content:stretch;align-content:stretch}.collection-creator.flex-row-container,.collection-creator .flex-row-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.collection-creator .flex-row{-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 0 auto}.collection-creator .flex-row.no-flex{-webkit-flex:0 auto;-ms-flex:0 auto;flex:0 0 auto}.collection-creator .flex-column-container{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.collection-creator .flex-column{-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 1 auto}.collection-creator .flex-column.no-flex{-webkit-flex:0 auto;-ms-flex:0 auto;flex:0 0 auto}.collection-creator .choose-filters .help{margin-bottom:2px;font-size:90%;color:grey}.collection-creator .choose-filters button{width:100%;margin-top:2px}.collection-creator .header .alert{display:none}.collection-creator .header .alert li{list-style:circle;margin-left:32px}.collection-creator .column{width:30%}.collection-creator .column-title{height:22px;line-height:22px;overflow:hidden}.collection-creator .column-title:hover{text-decoration:underline;cursor:pointer}.collection-creator .column-title .title{font-weight:bold}.collection-creator .column-title .title-info{color:grey}.collection-creator .column-title .title-info:before{content:' - '}.collection-creator .paired-column{text-align:center;width:22%}.collection-creator .header .main-help{margin-bottom:17px;overflow:hidden;padding:15px;background:#f8f8f8}.collection-creator .header .main-help:not(.expanded){max-height:49px}.collection-creator .header .main-help:not(.expanded) .help-content p:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.collection-creator .header .main-help:not(.expanded) .help-content>*:not(:first-child){display:none}.collection-creator .header .main-help.expanded{max-height:none}.collection-creator .header .main-help .help-content i{cursor:help;border-bottom:1px dotted grey;font-style:normal}.collection-creator .header .main-help .help-content ul,.collection-creator .header .main-help .help-content li{list-style:circle;margin-left:16px}.collection-creator .header .main-help .help-content .less-help{display:inline-block;width:100%;text-align:right}.collection-creator .header .main-help .more-help{float:right}.collection-creator .header .column-headers .column-header .unpaired-filter{width:100%}.collection-creator .header .column-headers .column-header .unpaired-filter .search-query{width:100%;height:22px}.collection-creator .header .paired-column a:not(:last-child){margin-right:8px}.collection-creator .header .reverse-column .column-title{text-align:right}.collection-creator .flex-bordered-vertically{height:0;border:1px solid lightgrey;border-width:1px 0 1px 0}.collection-creator .column-datasets{list-style:none;overflow:hidden}.collection-creator .column-datasets .dataset{height:32px;margin-top:2px;border:1px solid lightgrey;border-radius:3px;padding:0 8px 0 8px;line-height:28px;cursor:pointer}.collection-creator .column-datasets .dataset:last-of-type{margin-bottom:2px}.collection-creator .column-datasets .dataset.unpaired{border-color:grey}.collection-creator .column-datasets .dataset.paired{margin-left:34px;margin-right:34px;border:2px solid grey;background:#aff1af}.collection-creator .column-datasets .dataset.paired span{display:inline-block;overflow:hidden}.collection-creator .column-datasets .dataset.paired .forward-dataset-name{text-align:right;border-right:1px solid grey;padding-right:8px}.collection-creator .column-datasets .dataset.paired .forward-dataset-name:after{margin-left:8px;font-family:FontAwesome;content:'\f061'}.collection-creator .column-datasets .dataset.paired .pair-name-column{text-align:center}.collection-creator .column-datasets .dataset.paired .pair-name-column .pair-name:hover{text-decoration:underline}.collection-creator .column-datasets .dataset.paired .reverse-dataset-name{border-left:1px solid grey;padding-left:8px}.collection-creator .column-datasets .dataset.paired .reverse-dataset-name:before{margin-right:8px;font-family:FontAwesome;content:'\f060'}.collection-creator .column-datasets .dataset:hover{border-color:black}.collection-creator .column-datasets .dataset.selected{border-color:black;background:black;color:white}.collection-creator .column-datasets .dataset.selected a{color:white}.collection-creator .unpaired-columns{height:0;border:1px solid lightgrey;border-width:1px 0 1px 0}.collection-creator .unpaired-columns .forward-column .dataset.unpaired{margin-right:32px}.collection-creator .unpaired-columns .paired-column .dataset.unpaired{border-color:lightgrey;color:lightgrey}.collection-creator .unpaired-columns .paired-column .dataset.unpaired:hover{border-color:black;color:black}.collection-creator .unpaired-columns .reverse-column .dataset.unpaired{text-align:right;margin-left:32px}.collection-creator .flexible-partition .flexible-partition-drag{width:100%;height:8px;cursor:ns-resize;line-height:2px;text-align:center;color:lightgrey}.collection-creator .flexible-partition .flexible-partition-drag:before{content:'...'}.collection-creator .flexible-partition .flexible-partition-drag:hover{background:lightgrey;color:black}.collection-creator .flexible-partition .column-header{width:100%;text-align:center}.collection-creator .flexible-partition .column-header .column-title{display:inline}.collection-creator .flexible-partition .column-header>*:not(:last-child){margin-right:8px}.collection-creator .flexible-partition .column-header .remove-extensions-link{display:none}.collection-creator .paired-columns{height:0;border:1px solid lightgrey;border-width:1px 0 1px 0;margin-bottom:8px}.collection-creator .paired-columns .column-datasets{width:100%;overflow:auto}.collection-creator .paired-columns .unpair-btn{float:right;margin-top:-32px;width:31px;height:32px;border-color:transparent;background:transparent;font-size:120%}.collection-creator .paired-columns .unpair-btn:hover{border-color:#bfbfbf;background:#dedede}.collection-creator .paired-columns .empty-message{text-align:center}.collection-creator .element-drop-placeholder{width:60px;height:3px;margin:2px 0 0 14px;background:black}.collection-creator .element-drop-placeholder:before{float:left;font-size:120%;margin:-9px 0 0 -8px;font-family:FontAwesome;content:'\f0da'}.collection-creator .element-drop-placeholder:last-child{margin-bottom:8px}.collection-creator .footer{padding-bottom:8px}.collection-creator .footer .attributes .remove-extensions-prompt{line-height:32px}.collection-creator .footer .attributes .remove-extensions-prompt .remove-extensions{display:inline-block;width:24px;height:24px}.collection-creator .footer .attributes .collection-name-prompt{margin:5px 4px 0 0}.collection-creator .footer .attributes .collection-name-prompt.validation-warning:before{content:'(required)';margin-right:4px;color:red}.collection-creator .footer .attributes .collection-name{width:50%}.collection-creator .footer .attributes .collection-name.validation-warning{border-color:red}.collection-creator .footer .actions .other-options>*{display:none;margin-left:4px}.collection-creator.list-collection-creator .footer{margin-top:8px}.collection-creator.list-collection-creator .main-help{cursor:pointer}.collection-creator.list-collection-creator .collection-elements-controls{margin-bottom:8px}.collection-creator.list-collection-creator .collection-elements-controls .clear-selected{float:right !important;float:right;display:none}.collection-creator.list-collection-creator .collection-elements{max-height:400px;border:0 solid lightgrey;overflow-y:auto;overflow-x:hidden}.collection-creator.list-collection-creator .collection-element{height:32px;margin:2px 4px 0 4px;opacity:1;border:1px solid lightgrey;border-radius:3px;padding:0 8px 0 8px;line-height:28px;cursor:pointer;overflow:hidden}.collection-creator.list-collection-creator .collection-element:last-of-type{margin-bottom:2px}.collection-creator.list-collection-creator .collection-element:hover{border-color:black}.collection-creator.list-collection-creator .collection-element.selected{border-color:black;background:black;color:white}.collection-creator.list-collection-creator .collection-element.selected a{color:white}.collection-creator.list-collection-creator .collection-element.dragging{opacity:.4}.collection-creator.list-collection-creator .collection-element.dragging button{display:none}.collection-creator.list-collection-creator .collection-element .name:hover{text-decoration:underline}.collection-creator.list-collection-creator .collection-element button{margin-top:3px}.collection-creator.list-collection-creator .collection-element .discard{float:right !important;float:right}.collection-creator.list-collection-creator .element-drop-placeholder{margin-left:8px}.collection-creator.list-collection-creator .element-drop-placeholder:before{margin:-8.5px 0 0 -8px}.collection-creator.list-collection-creator .empty-message{margin:8px;color:grey;font-style:italic;text-align:center}.collection-creator.list-collection-creator .no-elements-left-message{text-align:left}.collection-creator.pair-collection-creator .footer{margin-top:8px}.collection-creator.pair-collection-creator .main-help{cursor:pointer}.collection-creator.pair-collection-creator .collection-elements-controls{margin-bottom:8px}.collection-creator.pair-collection-creator .collection-elements-controls .clear-selected{float:right !important;float:right;display:none}.collection-creator.pair-collection-creator .collection-elements{max-height:400px;border:0 solid lightgrey;overflow-y:auto;overflow-x:hidden}.collection-creator.pair-collection-creator .collection-element{height:32px;margin:2px 4px 0 4px;opacity:1;border:1px solid lightgrey;border-radius:3px;padding:0 8px 0 8px;line-height:28px;cursor:pointer;overflow:hidden}.collection-creator.pair-collection-creator .collection-element:last-of-type{margin-bottom:2px}.collection-creator.pair-collection-creator .collection-element:hover{border-color:black}.collection-creator.pair-collection-creator .collection-element button{margin-top:3px}.collection-creator.pair-collection-creator .collection-element .identifier:after{content:':';margin-right:6px}.collection-creator.pair-collection-creator .collection-element .name:hover{text-decoration:none}.collection-creator.pair-collection-creator .empty-message{margin:8px;color:grey;font-style:italic;text-align:center}.collection-creator.list-of-pairs-collection-creator .column-headers{margin-bottom:8px}.search-input .search-query{width:100%;padding-right:24px}.search-input .search-clear,.search-input .search-loading{position:relative;display:inline-block;float:right;margin-top:-24px;margin-right:4px;font-size:1.4em;line-height:23px;color:grey}.search-input .search-clear:hover{color:#303030}.dataset-choice{border:1px solid lightgrey;border-radius:3px;overflow:hidden;padding:10px 8px 8px 8px}.dataset-choice:hover{border-color:black;cursor:pointer}.dataset-choice:hover>*{cursor:pointer}.dataset-choice .prompt{margin-right:8px}.dataset-choice .prompt:after{content:':'}.dataset-choice .prompt:empty{display:none}.dataset-choice .none-selected-msg{color:grey}.dataset-choice .selected{display:inline-block}.dataset-choice .selected .title{font-weight:bold}.dataset-choice .selected .subtitle{color:grey}.dataset-choice .selected .subtitle:before{content:'-';margin:0 4px 0 4px}.dataset-choice .selected .subtitle i{font-style:normal}.dataset-choice .selected .subtitle i:not(:last-child):after{content:', '}.dataset-choice.multi .selected{display:block;font-weight:normal}.dataset-choice.multi table{width:100%;margin-top:8px;cursor:pointer}.dataset-choice.multi table:hover{border-color:black}.dataset-choice.multi table tr:nth-child(even){background-color:aliceblue}.dataset-choice.multi table th{padding:0;font-weight:normal;font-size:80%;color:grey}.dataset-choice.multi table th:not(:last-child),.dataset-choice.multi table td:not(:last-child){padding-right:8px}.dataset-choice.multi table td.cell-name{font-weight:bold}.dataset-choice-modal .list-panel .list-item.dataset{border-left-width:1px;border-right-width:1px}.dataset-choice-modal .list-panel .controls .title .name{font-size:120%}.peek-column-selector{border-radius:3px;border:1px solid #5f6990}.peek-column-selector td,.peek-column-selector th{padding:4px 10px 4px 4px}.peek-column-selector th:last-child{width:100%}.peek-column-selector .top-left{width:10%;white-space:normal;vertical-align:top;text-align:right;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-weight:normal}.peek-column-selector .renamable-header:hover{background-color:black}.peek-column-selector .control td.control-prompt{background-color:#5f6990;padding:0 4px 0 8px;text-align:right;color:white}.peek-column-selector .control td{padding:1px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;color:grey}.peek-column-selector .control td .button{min-width:28px;border:1px solid grey;border-radius:3px;padding:4px;color:grey}.peek-column-selector .control td:hover .button{background-color:#eee;border:1px solid black;cursor:pointer;color:black}.peek-column-selector .control td.disabled .button,.peek-column-selector .control td.disabled:hover .button{background-color:transparent;border:1px solid #ccc;cursor:not-allowed;color:#ccc}.peek-column-selector .control td.selected .button{background-color:black;border:1px solid black;color:white}.pagination{margin:0}.pagination-scroll-container{display:inline-block;background-color:#f8f8f8;border-radius:3px;border:1px solid #bfbfbf;overflow:auto}.pagination-scroll-container .pagination-page-list{margin:3px 0 3px 0}.pagination-scroll-container .pagination-page-list>li:first-child>a,.pagination-scroll-container .pagination-page-list>li:first-child>span{border-radius:0;border-left:0}.pagination-scroll-container .pagination-page-list>li:last-child>a,.pagination-scroll-container .pagination-page-list>li:last-child>span{border-radius:0}.pagination-scroll-container .pagination-page-list>li>a{float:none;position:static;border:1px solid #bfbfbf;border-width:0 0 0 1px}.toolMenuContainer{color:#000;background:#dfe5f9;min-height:100%;padding:5px 10px}div.toolSectionPad{margin:0;padding:0;height:5px;font-size:0}div.toolSectionWrapper{margin-bottom:5px}div.toolSectionDetailsInner{margin-left:5px;margin-right:5px}div.toolSectionTitle{font-weight:bold}div.toolPanelLabel{padding-top:10px;padding-bottom:5px;font-weight:bold;color:gray;text-transform:uppercase}div.toolTitle{padding-top:5px;padding-bottom:5px;margin-left:16px;margin-right:10px;display:list-item;list-style:square outside}div.toolSectionBody div.toolPanelLabel{padding-top:5px;padding-bottom:5px;margin-left:16px;margin-right:10px;display:list-item;list-style:none outside}div.toolTitleNoSection{padding-bottom:5px;font-weight:bold}#tool-search{padding-top:5px;padding-bottom:10px;position:relative}#loading_indicator{position:fixed;right:10px;top:10px;height:32px;width:32px;display:none;background:url(largespinner.gif)}#content_table td{text-align:right;white-space:nowrap;padding:2px 10px}#content_table th{white-space:nowrap;padding:2px 10px}#content_table td.stringalign{text-align:left}#content_table .dark_row{background-color:#ddd}#content_table th{background-color:#aaa}.toolMenuAndView .toolForm{float:left;background-color:white;margin:10px}.text-and-autocomplete-select{background:none;position:relative;padding-right:18px}.text-and-autocomplete-select:after{margin-top:6px;position:absolute;top:2px;right:6px;width:10px;height:10px;display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:"";opacity:80;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=8000);filter:alpha(opacity=8000)}.btn-default .text-and-autocomplete-select:after{border-top-color:#333}.btn-primary .text-and-autocomplete-select:after,.btn-success .text-and-autocomplete-select:after,.btn-warning .text-and-autocomplete-select:after,.btn-danger .text-and-autocomplete-select:after,.btn-info .text-and-autocomplete-select:after{border-top-color:#fff}.icon-button.general-question{background:url(question-octagon-frame.png) no-repeat;float:right;margin-top:3px;margin-right:4px}.icon-button.tag-question{background:url(question-balloon.png) no-repeat;float:right;margin-top:3px;margin-right:4px}.icon-button.tag{background-image:url(sprite-fugue.png);background-position:-16px -112px;width:16px;height:16px}.icon-button.tags{background-image:url(sprite-fugue.png);background-position:-32px -112px;width:16px;height:16px}.icon-button.tag--plus{background-image:url(sprite-fugue.png);background-position:0 -112px;width:16px;height:16px}.icon-button.toggle-expand{background-image:url(sprite-fugue.png);background-position:-80px -112px;width:16px;height:16px}.icon-button.toggle{background-image:url(sprite-fugue.png);background-position:-48px -112px;width:16px;height:16px}.icon-button.toggle:hover{background-image:url(sprite-fugue.png);background-position:-96px -112px;width:16px;height:16px}.icon-button.arrow-circle{background-image:url(sprite-fugue.png);background-position:-32px 0;width:16px;height:16px}.icon-button.chevron{background-image:url(sprite-fugue.png);background-position:-32px -64px;width:16px;height:16px}.icon-button.bug{background-image:url(sprite-fugue.png);background-position:-64px -32px;width:16px;height:16px}.icon-button.disk{background-image:url(sprite-fugue.png);background-position:-16px -80px;width:16px;height:16px}.icon-button.information{background-image:url(sprite-fugue.png);background-position:-96px -80px;width:16px;height:16px}.icon-button.annotate{background-image:url(sprite-fugue.png);background-position:-112px -96px;width:16px;height:16px}.icon-button.go-to-full-screen{background-image:url(sprite-fugue.png);background-position:0 0;width:16px;height:16px}.icon-button.import{background-image:url(sprite-fugue.png);background-position:-112px -80px;width:16px;height:16px}.icon-button.plus-button{background-image:url(sprite-fugue.png);background-position:-112px -48px;width:16px;height:16px}.icon-button.plus-button:hover{background-image:url(sprite-fugue.png);background-position:-112px -64px;width:16px;height:16px}.icon-button.gear{background-image:url(sprite-fugue.png);background-position:-96px 0;width:16px;height:16px}.icon-button.chart_curve{background-image:url(sprite-fugue.png);background-position:-64px -48px;width:16px;height:16px}.icon-button.disk--arrow{background-image:url(sprite-fugue.png);background-position:-80px -64px;width:16px;height:16px}.icon-button.disk--arrow:hover{background-image:url(sprite-fugue.png);background-position:0 -80px;width:16px;height:16px}.icon-button.cross-circle{background-image:url(sprite-fugue.png);background-position:-80px 0;width:16px;height:16px}.icon-button.cross-circle:hover{background-image:url(sprite-fugue.png);background-position:-80px -16px;width:16px;height:16px}.icon-button.arrow-split{background-image:url(sprite-fugue.png);background-position:-16px -32px;width:16px;height:16px}.icon-button.arrow-split:hover{background-image:url(sprite-fugue.png);background-position:-32px -32px;width:16px;height:16px}.icon-button.chevron-expand:hover{background-image:url(sprite-fugue.png);background-position:-16px -64px;width:16px;height:16px}.icon-button.chevron-expand{background-image:url(sprite-fugue.png);background-position:0 -64px;width:16px;height:16px}#for_bears{display:none} \ No newline at end of file + */@font-face{font-family:'FontAwesome';src:url('../images/fonts/fontawesome-webfont.eot?v=4.2.0');src:url('../images/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'),url('../images/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'),url('../images/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'),url('../images/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-icon{font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.select2-container{margin:0;position:relative;display:inline-block;zoom:1;*display:inline;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;height:26px;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #aaa;white-space:nowrap;line-height:26px;color:#444;text-decoration:none;border-radius:4px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.5, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 50%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to top, #eee 0, #fff 50%)}html[dir="rtl"] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#aaa;border-radius:0 0 4px 4px;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.9, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 90%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 90%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to bottom, #eee 0, #fff 90%)}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir="rtl"] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:8px;font-size:1px;text-decoration:none;border:0;background:url('../images/select2.png') right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;z-index:9999;top:100%;background:#fff;color:#000;border:1px solid #aaa;border-top:0;border-radius:0 0 4px 4px;-webkit-box-shadow:0 4px 5px rgba(0,0,0,0.15);box-shadow:0 4px 5px rgba(0,0,0,0.15)}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #aaa;border-bottom:0;border-radius:4px 4px 0 0;-webkit-box-shadow:0 -4px 5px rgba(0,0,0,0.15);box-shadow:0 -4px 5px rgba(0,0,0,0.15)}.select2-drop-active{border:1px solid #5897fb;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #5897fb}.select2-drop-auto-width{border-top:1px solid #aaa;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-left:1px solid #aaa;border-radius:0 4px 4px 0;background-clip:padding-box;background:#ccc;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(.6, #eee));background-image:-webkit-linear-gradient(center bottom, #ccc 0, #eee 60%);background-image:-moz-linear-gradient(center bottom, #ccc 0, #eee 60%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);background-image:linear-gradient(to top, #ccc 0, #eee 60%)}html[dir="rtl"] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-left:none;border-right:1px solid #aaa;border-radius:4px 0 0 4px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;background:url('../images/select2.png') no-repeat 0 1px}html[dir="rtl"] .select2-container .select2-choice .select2-arrow b{background-position:2px 1px}.select2-search{display:inline-block;width:100%;min-height:26px;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap}.select2-search input{width:100%;height:auto !important;min-height:26px;padding:4px 20px 4px 5px;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #aaa;border-radius:0;-webkit-box-shadow:none;box-shadow:none;background:#fff url('../images/select2.png') no-repeat 100% -22px;background:url('../images/select2.png') no-repeat 100% -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('../images/select2.png') no-repeat 100% -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat 100% -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat 100% -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}html[dir="rtl"] .select2-search input{padding:4px 5px 4px 20px;background:#fff url('../images/select2.png') no-repeat -37px -22px;background:url('../images/select2.png') no-repeat -37px -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('../images/select2.png') no-repeat -37px -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat -37px -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2.png') no-repeat -37px -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:#fff url('../images/select2-spinner.gif') no-repeat 100%;background:url('../images/select2-spinner.gif') no-repeat 100%,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('../images/select2-spinner.gif') no-repeat 100%,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2-spinner.gif') no-repeat 100%,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('../images/select2-spinner.gif') no-repeat 100%,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0;background-color:#eee;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center bottom, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center bottom, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to top, #fff 0, #eee 50%)}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #5897fb;border-top-color:transparent;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center top, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center top, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to bottom, #fff 0, #eee 50%)}.select2-dropdown-open .select2-choice .select2-arrow{background:transparent;border-left:none;filter:none}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:0 0 0 4px;margin:4px 4px 4px 0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:rgba(0,0,0,0)}html[dir="rtl"] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:bold}.select2-results .select2-result-label{padding:3px 7px 4px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#3875d7;color:#fff}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:transparent}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-ajax-error,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:#f4f4f4 url('../images/select2-spinner.gif') no-repeat 100%}.select2-results .select2-ajax-error{background:rgba(255,50,50,0.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto !important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #aaa;cursor:text;overflow:hidden;background-color:#fff;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(to bottom, #eee 1%, #fff 15%)}html[dir="rtl"] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px 3px 5px !important}.select2-container-multi .select2-choices{min-height:26px}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir="rtl"] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field input{padding:5px;margin:1px 0;font-family:sans-serif;font-size:100%;color:#666;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:transparent !important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:#fff url('../images/select2-spinner.gif') no-repeat 100% !important}.select2-default{color:#999 !important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:3px 0 3px 5px;position:relative;line-height:13px;color:#333;cursor:default;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));background-image:-webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:-moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:linear-gradient(to top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%)}html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:3px 18px 3px 5px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:3px;top:4px;font-size:1px;outline:none;background:url('../images/select2.png') right top no-repeat}html[dir="rtl"] .select2-search-choice-close{right:auto;left:3px}.select2-container-multi .select2-search-choice-close{left:3px}html[dir="rtl"] .select2-container-multi .select2-search-choice-close{left:auto;right:2px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover{background-position:right -11px}.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px 3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:none}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0) !important;width:1px !important;height:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;position:absolute !important;outline:0 !important;left:0 !important;top:0 !important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input,.select2-search-choice-close,.select2-container .select2-choice abbr,.select2-container .select2-choice .select2-arrow b{background-image:url('../images/select2x2.png') !important;background-repeat:no-repeat !important;background-size:60px 40px !important}.select2-search input{background-position:100% -21px !important}}.select2-minwidth{min-width:256px}.galaxy-frame .corner{-moz-border-radius:5px;border-radius:5px}.galaxy-frame .toggle{color:gold}.galaxy-frame .frame-background{z-index:1000;position:absolute;display:none;top:0;left:0;height:100%;width:100%;opacity:.6;background:#000;overflow:auto}.galaxy-frame .frame-shadow{z-index:1001;position:absolute;display:none;top:0;left:0;opacity:.5;background:#2c3143;border:1px solid #888}.galaxy-frame .frame-menu{z-index:1005;position:absolute;cursor:pointer;color:gold;right:10px}.galaxy-frame .frame-scroll-up{top:50px}.galaxy-frame .frame-scroll-down{bottom:20px}.galaxy-frame .frame{z-index:1002;overflow:hidden;position:absolute;background:#fff;border:1px solid #888;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3)}.galaxy-frame .frame .f-content{position:absolute;overflow:hidden;background:#fff;border:none;top:24px;bottom:3px;left:3px;right:3px}.galaxy-frame .frame .f-cover{position:absolute;display:none;top:0;left:0;height:100%;width:100%;opacity:0;background:#fff}.galaxy-frame .frame .f-iframe{border:none;width:100%;height:100%}.galaxy-frame .frame .f-header{height:17px;margin:2px;cursor:pointer;border:1px solid #000;background:#2c3143;color:#fff}.galaxy-frame .frame .f-title{position:absolute;top:2px;left:16px;right:16px;font-size:12px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;text-align:center}.galaxy-frame .frame .f-icon{position:absolute;cursor:pointer;font-size:14px}.galaxy-frame .frame .f-not-allowed{cursor:not-allowed}.galaxy-frame .frame .f-close{right:5px;top:3px}.galaxy-frame .frame .f-pin{left:6px;top:3px}.galaxy-frame .frame .f-resize{background:#fff;width:16px;height:16px;color:#2c3143;right:0;bottom:0;text-align:center;line-height:16px;border:0}.upload-button{position:relative;width:31px;height:21px;top:-4px;cursor:pointer;-moz-border-radius:3px;border-radius:3px}.upload-button .progress{height:21px}.upload-button .progress-bar-danger{background:#f9c7c5}.upload-button .progress-bar-success{background:#b0f1b0}.upload-button .progress-bar-info{background:#ffc}.upload-button .progress-bar-notransition{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.upload-button .label{position:absolute;top:2px;width:inherit;text-align:center;line-height:19px;font-size:1.2em}.upload-icon{font-size:1.2em;width:1.2em}.upload-icon-button{font-size:1.2em;width:1.2em;cursor:pointer}.upload-box{width:100%;height:90%;text-align:center;overflow:scroll;font-size:12px;line-height:1.33;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf;padding:10px;overflow-x:hidden;-ms-overflow-style:none}.upload-box .table{width:100%}.upload-box .table th{text-align:center;white-space:nowrap}.upload-box .table td{margin:0}.upload-box .upload-item .select2-arrow b{background-position:0 -3px}.upload-box .upload-item .select2-choice{max-height:20px;line-height:18px;background:transparent}.upload-box .upload-item .select2-container-disabled .select2-arrow{background:transparent}.upload-box .name-column{position:relative}.upload-box .mode{float:left;font-size:1.2em;width:1.2em;color:#555}.upload-box .title{width:130px;word-wrap:break-word;font-size:11px;float:left}.upload-box .text{position:absolute;display:none}.upload-box .text .text-content{font-size:11px;width:100%;height:50px;resize:none;background:inherit;color:#000}.upload-box .text .text-info{font-size:11px}.upload-box .extension{width:100px;min-width:100px;font-size:11px}.upload-box .genome{width:150px;min-width:150px;font-size:11px}.upload-box .size{width:60px;white-space:nowrap}.upload-box .info{width:130px;font-size:11px;line-height:1.2em}.upload-box .info .progress{top:1px;position:relative;width:100%;padding:0;margin:0;line-height:1.55em}.upload-box .info .progress .progress-bar{border-radius:inherit;-moz-border-radius:inherit}.upload-box .info .progress .percentage{position:absolute;text-align:center;width:100%;color:#fff}.upload-ftp{height:250px;width:500px;overflow:auto}.upload-ftp .upload-ftp-wait{font-size:1.2em;position:absolute;bottom:10px;right:10px}.upload-ftp .upload-ftp-help{margin-bottom:10px}.upload-ftp .upload-ftp-warning{text-align:center;margin-top:20px}.upload-ftp .upload-ftp-row{cursor:pointer}.upload-ftp .upload-ftp-row .label{width:240px}.upload-ftp .upload-ftp-row .label p{width:inherit;word-wrap:break-word}.upload-ftp .upload-ftp-row .nonlabel{white-space:nowrap}.upload-settings .upload-settings-cover{position:absolute;width:100%;height:100%;top:0;left:0;background:#fff;opacity:.4;cursor:no-drop}.upload-header{height:5%;text-align:left;max-height:20px;line-height:18px;margin-top:10px}.upload-header .header-title{font-weight:bold;padding-left:60px;padding-right:20px}.upload-header .header-selection{width:200px;min-width:200px;font-size:11px;padding-right:10px}.upload-header .select2-choice{max-height:20px;line-height:18px;background:transparent;text-align:center;font-weight:normal}.upload-header .select2-choice .select2-arrow b{background-position:0 -3px}.upload-top{height:5%;text-align:center}.upload-top .upload-info{margin-top:0;font-weight:normal;text-align:center}.no-highlight,.ui-button-icon{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.no-padding{padding:0 !important}.ui-margin-top{padding-top:5px !important}.ui-margin-bottom{margin-bottom:5px !important}.ui-error{-moz-border-radius:3px;border-radius:3px;background:#f9c7c5;padding:5px}.ui-label{font-weight:bold}.ui-message{padding:2px 10px 2px 10px;margin:0}.ui-icon{font-size:1.2em}.ui-button-icon{height:auto !important}.ui-button-icon ul i{font-size:1.2em;margin-right:5px;position:relative;top:1px}.ui-button-icon .button{margin-right:5px;margin-left:5px}.ui-button-icon .button .title{position:relative;font-size:.8em;font-weight:normal;top:-1px;word-break:break-word}.ui-button-icon .button.disabled{opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65)}.ui-button-menu .dropdown-menu{min-width:50px}.ui-button-menu .dropdown-item{text-align:left}.ui-button-icon-plain{border:none !important;background:none !important;height:inherit !important;width:inherit !important;padding-right:3px !important}.ui-tabs .ui-tabs-add{font-size:.8em;margin-right:5px}.ui-tabs .ui-tabs-delete{font-size:.8em;margin-left:5px;cursor:pointer}.ui-table tbody,.ui-table-plain tbody{cursor:pointer}.ui-table-plain{table-layout:fixed}.ui-table-plain tbody{cursor:auto !important}.ui-table-plain tbody td{padding:0 !important;border:none !important}.ui-table-plain .ui-table-section{border-left:solid 3px #ebd9b2;border-radius:5px !important;margin-bottom:5px;padding-left:10px}.ui-table-form-element{margin-top:5px;margin-bottom:5px;overflow:visible}.ui-table-form-element .ui-table-form-title{word-break:break-word;font-weight:bold}.ui-table-form-element .ui-table-form-title .ui-table-form-optional{cursor:pointer}.ui-table-form-element .ui-table-form-title .ui-table-form-optional .icon{margin-right:5px;font-size:1.2em}.ui-table-form-element .ui-table-form-field{margin-top:5px}.ui-table-form-separator{font-weight:bold;font-size:.9em}.ui-table-form-info{clear:both !important}.ui-table-form-error{display:none}.ui-table-form-error .ui-table-form-error-text{padding-left:5px}.ui-portlet,.ui-portlet-repeat,.ui-portlet-limited,.ui-portlet-section,.ui-portlet-narrow{border:solid #d6b161 1px;border-radius:3px;position:relative;clear:both;width:auto;height:100%}.ui-portlet .portlet-header,.ui-portlet-limited .portlet-header,.ui-portlet-narrow .portlet-header{background:#ebd9b2;border-bottom:solid #d6b161 1px;padding:2px 8px;overflow:visible;float:right;width:100%}.ui-portlet .portlet-header .portlet-title,.ui-portlet-limited .portlet-header .portlet-title,.ui-portlet-narrow .portlet-header .portlet-title{word-break:break-word;display:inline;vertical-align:middle}.ui-portlet .portlet-header .portlet-title .portlet-title-text,.ui-portlet-limited .portlet-header .portlet-title .portlet-title-text,.ui-portlet-narrow .portlet-header .portlet-title .portlet-title-text{vertical-align:middle;line-height:22px}.ui-portlet .portlet-header .portlet-title .icon,.ui-portlet-limited .portlet-header .portlet-title .icon,.ui-portlet-narrow .portlet-header .portlet-title .icon{font-size:1.2em;vertical-align:middle}.ui-portlet .portlet-header .portlet-operations .ui-button-icon,.ui-portlet-limited .portlet-header .portlet-operations .ui-button-icon,.ui-portlet-narrow .portlet-header .portlet-operations .ui-button-icon{margin-left:5px}.ui-portlet .portlet-content,.ui-portlet-limited .portlet-content,.ui-portlet-narrow .portlet-content{height:inherit;padding-left:10px;padding-right:10px;clear:both}.ui-portlet .portlet-content .content,.ui-portlet-limited .portlet-content .content,.ui-portlet-narrow .portlet-content .content{padding:0;height:100%;width:100%}.ui-portlet .portlet-content .buttons,.ui-portlet-limited .portlet-content .buttons,.ui-portlet-narrow .portlet-content .buttons{margin-top:5px;margin-bottom:5px}.ui-portlet .portlet-backdrop,.ui-portlet-limited .portlet-backdrop,.ui-portlet-narrow .portlet-backdrop{display:none;z-index:10;position:absolute;top:0;width:100%;height:100%;opacity:.2;background:#fff;cursor:not-allowed}.ui-portlet-repeat,.ui-portlet-section{border:none;border-left:solid 3px #ebd9b2;border-radius:5px;margin-bottom:5px}.ui-portlet-repeat .portlet-header,.ui-portlet-section .portlet-header{background:#ebd9b2;border-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0;padding:0 2px}.ui-portlet-repeat .portlet-header .portlet-title-text,.ui-portlet-section .portlet-header .portlet-title-text{vertical-align:middle;line-height:20px !important}.ui-portlet-repeat .portlet-content,.ui-portlet-section .portlet-content{padding-right:0}.ui-portlet-section{margin-top:5px;border-left:solid 3px #dfe5f9}.ui-portlet-section .portlet-header{background:#dfe5f9;border-bottom:solid #b4c2f1 1px}.ui-portlet-section .portlet-highlight{text-decoration:underline}.ui-portlet-narrow{border:none}.ui-portlet-narrow .portlet-header{border-radius:3px}.ui-portlet-narrow .portlet-header .portlet-operations .ui-button-icon{margin-left:3px}.ui-portlet-narrow .ui-portlet-repeat .portlet-header,.ui-portlet-narrow .ui-portlet-section .portlet-header{border-radius:5px;border-bottom-left-radius:0;border-top-left-radius:0}.ui-portlet-narrow .portlet-content{padding:0}.ui-portlet-narrow .ui-table-section,.ui-portlet-narrow .ui-portlet-repeat .portlet-content,.ui-portlet-narrow .ui-portlet-section .portlet-content{padding-left:5px}.ui-portlet-limited,.ui-portlet-narrow{max-width:900px}.ui-popover{max-width:700px;display:none}.ui-popover .popover-close{position:absolute;right:10px;top:7px;font-size:1.2em;cursor:pointer}.ui-popover .popover-title{padding:4px 10px}.ui-input,.ui-input-basic,.ui-textarea,.ui-options .ui-options-list,.ui-form-slider .ui-form-slider-text,.ui-select .select2-container-multi .select2-choices,.ui-select select,.ui-select .select2-container .select2-choice{width:100%;display:block;height:27px;padding:4px 10px;font-size:12px;line-height:1.42857143;color:#555;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);background-image:none;background:transparent;-webkit-appearance:none;-moz-border-radius:3px}.ui-input[disabled],.ui-input[readonly],fieldset[disabled] .ui-input{cursor:not-allowed;background-color:#eee}.ui-input-basic,.ui-select select,.ui-select .select2-container .select2-choice{-webkit-box-shadow:inset 0 -1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 -1px 1px rgba(0,0,0,0.075)}.ui-textarea{height:100px !important}.ui-options .ui-options-list{height:100% !important}.ui-options .ui-options-list input[type=checkbox],.ui-options .ui-options-list input[type=radio]{display:none}.ui-options .ui-options-list label{margin:0;cursor:pointer}.ui-options .ui-options-list .ui-drilldown-button{position:relative;top:2px;left:-3px;margin-right:3px;cursor:pointer}.ui-options .ui-options-list input[type=checkbox]+label:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-size:1.2em;margin-right:5px;position:relative;top:1px;width:10px;content:"\f096"}.ui-options .ui-options-list input[type=checkbox]:checked+label:before{content:"\f046"}.ui-options .ui-options-list input[type=radio]+label:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-size:1.2em;margin-right:5px;position:relative;top:1px;width:10px;content:"\f1db"}.ui-options .ui-options-list input[type=radio]:checked+label:before{content:"\f192"}.ui-form-slider{display:inline-block;width:100%}.ui-form-slider .ui-form-slider-text{width:100px;float:left}.ui-form-slider .ui-form-slider-element{width:calc(100% - 110px);float:left;top:8px;left:10px}.ui-radiobutton{width:100%}.ui-radiobutton label{height:23px;line-height:1em}.ui-radiobutton i{padding-right:5px}.ui-button-check{cursor:pointer;margin-bottom:5px}.ui-button-check .icon{font-size:1.2em;width:1.2em}.ui-color-picker .ui-color-picker-header{cursor:pointer}.ui-color-picker .ui-color-picker-value{float:left;border-radius:3px;border:solid 1px #000;width:12px;height:12px;margin-right:5px}.ui-color-picker .ui-color-picker-label{float:left;line-height:1.2em}.ui-color-picker .ui-color-picker-view{height:100%;overflow:auto;display:none;float:left;margin-top:5px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel{width:210px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content{margin-bottom:15px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .label{padding-bottom:2px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .line .ui-color-picker-box{cursor:pointer;float:left;margin-right:5px;border:solid 1px #c0c0c0;width:15px;height:15px;border-radius:2px}.ui-color-picker .ui-color-picker-view .ui-color-picker-panel .ui-color-picker-content .line .ui-color-picker-box .ui-color-picker-check{color:black;font-size:1.2em;position:relative;left:1px}.ui-list .ui-list-select{float:left;width:calc(100% - 27px)}.ui-list .ui-list-button .ui-button-icon{margin-top:3px;margin-right:5px}.ui-list .ui-list-message,.ui-list .ui-list-portlet{clear:both}.ui-list .ui-list-id{cursor:pointer;margin-top:5px}.ui-list .ui-list-id .ui-list-delete{font-size:1.2em;margin-right:5px}.ui-select{position:relative}.ui-select .button{position:absolute;top:5px;right:5px}.ui-select select{position:relative;top:0;height:27px;width:100%;padding-right:20px;cursor:pointer;padding-left:5px}.ui-select .select2-container{width:100%}.ui-select .select2-container .select2-choice{height:27px;padding-left:5px}.ui-select .select2-container .select2-choice .select2-arrow{display:none}.ui-select .select2-container-multi .select2-choices{padding:0}.ui-select-multiple select{height:80px !important;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.ui-select-content .ui-options{float:left;padding-top:2px}.select2-container .select2-choice,.select2-container .select2-choices{border:1px solid #aaa}.select2-dropdown-open .select2-choice,.select2-dropdown-open .select2-choices{border:1px solid #aaa;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #aaa;border-top-left-radius:0;border-top-right-radius:0}.select2-drop-active{border:1px solid #aaa;border-radius:3px;border-top-left-radius:0;border-top-right-radius:0}.select2-drop-active .select2-search{padding-top:5px}.select2-drop.select2-drop-above.select2-drop-active{border:1px solid #aaa;border-radius:3px;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-drop.select2-drop-above.select2-drop-active .select2-search{padding-top:0}.libraryRow{background-color:#ebd9b2}.datasetHighlighted{background-color:#f9f9f9}.libraryItemDeleted-True{font-style:italic}div.libraryItemBody{padding:4px 4px 2px 4px}li.folderRow,li.datasetRow{border-top:solid 1px #c6bfa8}li.folderRow:hover,li.datasetRow:hover{background-color:#f9f9f9}td.right-center{vertical-align:middle !important;text-align:right}.library-genome-select{max-width:350px}.library-extension-select{max-width:140px}.library_table td{border-top:1px solid #5f6990 !important}.library_table th{border-bottom:2px solid #5f6990 !important}.library_table a{color:#0a143d}.library_table a:hover{color:maroon}.library_style_container{width:95%;margin:auto;margin-top:2em;overflow:auto !important}.library_style_container tr{height:32px}tr.light td{background-color:white;color:black}tr.light:hover td{background-color:#f5e8cc}tr.dark td{background-color:#d6b161;color:white}tr.dark:hover td{background-color:#ebd4a4;color:white}a.dark{color:white}.dataset_table tr{border-bottom:1px solid #5f6990 !important}.dataset_table th{border:none !important}.dataset_table td{border:none !important}th.button_heading{width:2em}.bigdrop.select2-container .select2-results{max-height:300px}.bigdrop .select2-results{max-height:300px}.select2-container-multi{width:100%}.roles-selection{width:66%}#library_toolbar{margin-bottom:1em}#library_toolbar span{margin-right:.2em}img.expanderIcon{padding-right:4px}input.datasetCheckbox,li,ul{padding:0;margin:0}.rowTitle{padding:2px}ul{list-style:none}.libraryTitle th{text-align:left}pre.peek{background:white;color:black;overflow:auto}pre.peek th{color:white;background:#ebd9b2}.help-button{float:right}span.expandLink{padding-left:12px;display:inline-block;vertical-align:middle;background:url(../images/silk/resultset_next.png) no-repeat}.folderRow.expanded span.expandLink{background:url(../images/silk/resultset_bottom.png) no-repeat}.folderRow span.rowIcon{float:left;margin-right:5px;width:16px;height:16px;display:inline-block;vertical-align:middle;background:url(../images/silk/folder.png)}.libraryItem-error{margin-right:2px;padding:0 2px 0 2px;border:1px solid #dd1b15;background:#f9c7c5}.libraryItem-queued{margin-right:2px;padding:0 2px 0 2px;border:1px solid #bfbfbf;background:#eee}.libraryItem-running{margin-right:2px;padding:0 2px 0 2px;border:1px solid #aa6;background:#ffc}.libraryItem-upload{margin-right:2px;padding:0 2px 0 2px;border:1px solid #119ac2;background:#a8e5f7}.pagination-sm{height:15px}.library-paginator{margin-left:2em}.toast-title{font-weight:bold}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-0.3em;top:-0.3em;float:right;font-size:20px;font-weight:bold;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{margin:4em 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;border-radius:3px 3px 3px 3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100)}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important}#toast-container>.toast-error{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important}#toast-container>.toast-success{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important}#toast-container>.toast-warning{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important}#toast-container.toast-top-full-width>div,#toast-container.toast-bottom-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-0.2em;top:-0.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:black;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;-moz-box-shadow:5px 5px 4px -4px #666;-webkit-box-shadow:2px 2px 2px #999;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none;display:inline}.vakata-context li>a{display:block;padding:0 2em 0 2em;text-decoration:none;width:auto;color:black;white-space:nowrap;line-height:2.4em;-moz-text-shadow:1px 1px 0 white;-webkit-text-shadow:1px 1px 0 white;text-shadow:1px 1px 0 white;-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==");background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:white;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;-moz-text-shadow:0 0 0 transparent;-webkit-text-shadow:0 0 0 transparent;text-shadow:0 0 0 transparent;-moz-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:transparent;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:white;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7");background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:white;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px 0 2px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:transparent;color:#666}.jstree-default .jstree-disabled.jstree-hovered{background:transparent;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:bold}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none !important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:transparent;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:transparent}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}#jstree-dnd.jstree-default .jstree-ok,#jstree-dnd.jstree-default .jstree-er{background-image:url("../images/jstree/32px.png");background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:transparent;width:16px;height:16px}#jstree-dnd.jstree-default .jstree-ok{background-position:-9px -71px}#jstree-dnd.jstree-default .jstree-er{background-position:-39px -71px}.jstree-default>.jstree-striped{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-hovered,.jstree-default>.jstree-wholerow-ul .jstree-clicked{background:transparent;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-moz-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #beebff), color-stop(100%, #a8e4ff));background:-webkit-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:-o-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:-ms-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:linear-gradient(to bottom, #beebff 0, #a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-image:url("../images/jstree/32px.png")}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:transparent}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-node,.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:transparent}.jstree-default .jstree-disabled.jstree-hovered{background:transparent}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:transparent}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("../images/jstree/throbber.gif") center center no-repeat}.jstree-default .jstree-file{background:url("../images/jstree/32px.png") -100px -68px no-repeat}.jstree-default .jstree-folder{background:url("../images/jstree/32px.png") -260px -4px no-repeat}.jstree-default.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==")}.jstree-default.jstree-rtl .jstree-last{background:transparent}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-node,.jstree-default-small .jstree-icon{background-image:url("../images/jstree/32px.png")}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:transparent}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-node,.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:transparent}.jstree-default-small .jstree-disabled.jstree-hovered{background:transparent}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:transparent}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("../images/jstree/throbber.gif") center center no-repeat}.jstree-default-small .jstree-file{background:url("../images/jstree/32px.png") -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url("../images/jstree/32px.png") -263px -7px no-repeat}.jstree-default-small.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==")}.jstree-default-small.jstree-rtl .jstree-last{background:transparent}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-node,.jstree-default-large .jstree-icon{background-image:url("../images/jstree/32px.png")}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:transparent}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-node,.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:transparent}.jstree-default-large .jstree-disabled.jstree-hovered{background:transparent}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:transparent}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("../images/jstree/throbber.gif") center center no-repeat}.jstree-default-large .jstree-file{background:url("../images/jstree/32px.png") -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url("../images/jstree/32px.png") -256px 0 no-repeat}.jstree-default-large.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==")}.jstree-default-large.jstree-rtl .jstree-last{background:transparent}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:bold;font-size:1.1em;text-shadow:1px 1px white}#jstree-dnd.jstree-dnd-responsive>i{background:transparent;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url("../images/jstree/40px.png");background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url("../images/jstree/40px.png");background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url("../images/jstree/40px.png")}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0 !important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px !important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0 !important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:bold;font-size:1.1em;text-shadow:1px 1px white}.jstree-default-responsive>.jstree-striped{background:transparent}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,0.7);border-bottom:1px solid rgba(64,64,64,0.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-image:url("../images/jstree/40px.png");background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:transparent}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url("../images/jstree/40px.png") 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url("../images/jstree/40px.png") -40px -40px no-repeat;background-size:120px 240px}}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}.unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%}.clear:before,.clear:after{content:" ";display:table}.clear:after{clear:both}.clear:before,.clear:after{content:" ";display:table}.clear:after{clear:both}body{background:#fff;color:#000;margin:10px}body.full-content{overflow:hidden;margin:0;padding:0;width:100%;height:100%}#background{position:absolute;background:#fff;z-index:-1;top:0;left:0;margin:0;padding:0;width:100%;height:100%}#messagebox{position:absolute;top:34px;left:0;width:100%;height:30px !important;overflow:hidden;border-bottom:solid #999 1px;font-size:90%}#inactivebox{position:absolute;top:34px;left:0;width:100%;height:30px !important;overflow:hidden;border-bottom:solid #999 1px;font-size:90%}#left,#left-border,#center,#right-border,#right{position:absolute;top:34px;bottom:0;overflow:hidden;background:#fff}#left{left:0;width:250px;z-index:200;border-right:solid #999 1px}#left-border{left:250px}#center{left:250px;right:250px;overflow:hidden;z-index:1}#right-border{right:250px}#right{width:250px;right:0;z-index:200;border-left:solid #999 1px}body.has-message-box #left,body.has-inactivity-box #left,body.has-message-box #left-border,body.has-inactivity-box #left-border,body.has-message-box #center,body.has-inactivity-box #center,body.has-message-box #right-border,body.has-inactivity-box #right-border,body.has-message-box #right,body.has-inactivity-box #right{top:64px}body.has-message-box.has-inactivity-box #left,body.has-message-box.has-inactivity-box #left-border,body.has-message-box.has-inactivity-box #center,body.has-message-box.has-inactivity-box #right-border,body.has-message-box.has-inactivity-box #right{top:94px}body.has-message-box.has-inactivity-box #inactivebox{top:64px}.subnavbar{background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), color-stop(25%, #fff), to(#e6e6e6));background-image:-webkit-linear-gradient(#fff, #fff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #fff, #fff 25%, #e6e6e6);background-image:linear-gradient(#fff, #fff 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-bottom:solid #bfbfbf 1px;border-top:solid #bfbfbf 1px;padding:5px;color:#555}.unified-panel-header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;height:30px;z-index:1000;text-shadow:rgba(255,255,255,0.8) 0 1px 0;background:#eee;border-bottom:solid #999 1px;margin:0;padding:0;padding-right:10px;padding-left:10px;font-weight:bold;color:#555}.unified-panel-header a{color:#555}.unified-panel-header .fa{font-size:1.2em}.unified-panel-header-inner{padding-top:8px}.unified-panel-footer{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;bottom:0;height:25px;line-height:25px;width:100%;z-index:1000;border-top:solid #999 1px;background:#eee;color:#555}.unified-panel-footer a{color:#555}.unified-panel-footer .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize}#right>.unified-panel-footer .drag{left:0}.panel-collapse{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;width:100%;z-index:1000;color:#555;font-size:1.33333333em;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;z-index:201;display:block;position:fixed;left:0;top:inherit;bottom:0;padding:0 5px;text-align:center;height:25px;line-height:25px;width:20px;background:none;border-right:solid #999 1px;border-top:solid #999 1px;background:#eee}.panel-collapse a{color:#555}.panel-collapse .drag{position:absolute;top:0;right:0;padding:0 5px;text-align:center;height:25px;width:20px;background-image:url(../images/visualization/draggable_horizontal.png);background-repeat:no-repeat;background-position:50% 50%;cursor:w-resize}.panel-collapse:before{content:'\f053'}.panel-collapse.hidden:before{content:'\f054'}.panel-collapse.right{left:inherit;right:0;border-right:none;border-left:solid #bfbfbf 1px}.panel-collapse.right.right:before{content:'\f054'}.panel-collapse.right.right.hidden:before{content:'\f053'}.menu-bg{background:whiteSmoke top repeat-x}div.unified-panel-body{position:absolute;top:30px;bottom:0;width:100%}#left>div.unified-panel-body,#right>div.unified-panel-body{bottom:25px}.panel-header-button{color:#333;text-decoration:none;display:inline-block;cursor:pointer;margin:-1px;padding:1px;margin-top:-0.2em;padding-right:.5em;padding-left:.5em}.panel-header-button:hover{color:maroon;-webkit-transition:color .25s linear;transition:color .25s linear}.panel-header-button .caret{margin-top:7px}.panel-header-button.popup{padding-right:1.75em;background:url(../images/dropdownarrow.png) no-repeat right 7px}#DD-helper{background:white;opacity:0;z-index:900;position:absolute;top:0;left:0;width:100%;height:100%}.panel-error-message,.panel-warning-message,.panel-done-message,.panel-info-message{height:30px;line-height:30px;padding:0;padding-left:26px;background-color:#f9c7c5;background-image:url(error_small.png);background-repeat:no-repeat;background-position:6px 50%}.panel-warning-message{background-image:url(warn_small.png);background-color:#fce1bb}.panel-done-message{background-image:url(ok_small.png);background-color:#b0f1b0}.panel-info-message{background-image:url(info_small.png);background-color:#a8e5f7}#masthead{position:absolute;top:0;left:0;width:100%;min-width:990px;padding:0}#masthead .nav{z-index:15001}#masthead .nav>li>a{cursor:pointer;text-decoration:none}#masthead .nav>li>a:hover{color:gold}#masthead li.dropdown>a:hover .caret{border-top-color:gold;border-bottom-color:gold}#masthead .navbar-brand{position:absolute;left:0;top:0;font-family:verdana;font-weight:bold;font-size:20px;line-height:1;color:white;padding:5px 20px 12px;margin-left:-15px;z-index:2000}#masthead .navbar-brand img{display:inline;width:26px;vertical-align:top}#masthead .navbar-brand a{color:white;text-decoration:none}#masthead .iconbar{position:absolute;top:7px;right:110px;cursor:pointer;color:#999;overflow:hidden}#masthead .iconbar .symbol{float:left;margin:0 10px;font-size:11px}#masthead .iconbar .symbol .number{font-weight:bold;font-size:10px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;position:relative;left:23px;top:-12px}#masthead .iconbar .toggle{color:gold}.quota-meter-container{position:absolute;top:0;right:0;height:32px}.quota-meter{position:absolute;top:8px;right:8px;height:16px;width:100px;background-color:#f5f5f5}.quota-meter-bar{position:absolute;top:0;left:0;height:16px;background-color:#25537b}.quota-meter-bar-warn{background-color:#bf822c}.quota-meter-bar-error{background-color:#b93d39}.quota-meter-text{position:absolute;top:50%;left:0;width:100px;height:16px;margin-top:-6px;text-align:center;z-index:9001;color:#000;white-space:nowrap}div.metadataForm{border:solid #aaa 1px}div.metadataFormTitle{font-weight:bold;padding:5px;padding-left:10px;padding-right:10px;background:#ccc;background-repeat:repeat-x;background-position:top;border-bottom:solid #aaa 1px}div.metadataFormBody{background:#fff;padding:5px 0}div.metadataFormBody div.metadataFormTitle{background:transparent;border:none;font-weight:bold;border-bottom:solid #dcb790 1px;margin-bottom:5px}div.metadataFormDisabled div.metadataFormTitle{background:#eee;border-color:#999}div.metadataFormDisabled{border-color:#999}div.metadataHelpBody{width:100%;overflow:auto}div.titleRow{font-weight:bold;border-bottom:dotted gray 1px;margin-bottom:.5em;padding-bottom:.25em}div.toolFormBody div.toolFormTitle{background:transparent;border:none;font-weight:bold;border-bottom:solid #d6b161 1px;margin-bottom:5px}div.toolFormDisabled div.toolFormTitle{background:#f5f5f5;border-color:#bfbfbf}div.toolFormDisabled{border-color:#bfbfbf}div.toolHelp{margin-top:15px;padding:5px}div.toolHelpBody{width:100%}.toolForm.toolFormInCanvas{border:solid #d6b161 1px;background:#fff}.toolForm.toolFormInCanvas.toolForm-active{border:solid #25537b 3px;margin:4px}.toolForm.toolFormInCanvas .toolFormTitle{font-size:12px;line-height:1.42857143}div.form,div.toolForm{border:solid #d6b161 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}div.form-title,div.toolFormTitle{padding:5px 10px;background:#ebd9b2;border-bottom:solid #d6b161 1px}div.form-body{padding:5px 0}div.form-row{padding:5px 10px}div.form-title-row{padding:5px 10px}div.repeat-group-item{border-left:solid #d6b161 5px;margin-left:10px;margin-bottom:10px}div.form-row-error{background:#f9c7c5}div.form-row label{font-weight:bold;display:block;margin-bottom:.2em}div.form-row label.inline{display:inline}div.form-row-input{width:90%;float:left}div.form-row-input label{font-weight:normal;display:inline}div.form-row-error-message{width:300px;float:left;color:red;font-weight:bold;padding:3px 0}.form-row .help,.toolParamHelp,.ui-table-form-info{color:#666}.form-row .help a,.toolParamHelp a{color:#666}.form-row.form-actions{background:whiteSmoke;border-top:solid #ddd 1px;padding-top:10px;padding-bottom:10px;margin-top:5px}select{padding:2px;font-size:12px;line-height:1.42857143}select,input,textarea{font:inherit}.form-row select,.form-row textarea,.form-row input[type="text"],.form-row input[type="file"],.form-row input[type="password"]{max-width:90%}textarea,input[type="text"],input[type="password"]{font-size:12px;line-height:1.42857143;border:1px solid #aaa;padding:3px}input[type="submit"],button{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf}input[type="submit"]:focus,button:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="submit"]:hover,button:hover,input[type="submit"]:focus,button:focus{color:#333;text-decoration:none}input[type="submit"]:active,button:active,input[type="submit"].active,button.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}input[type="submit"].disabled,button.disabled,input[type="submit"][disabled],button[disabled],fieldset[disabled] input[type="submit"],fieldset[disabled] button{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}input[type="submit"]:hover,button:hover,input[type="submit"]:focus,button:focus,input[type="submit"]:active,button:active,input[type="submit"].active,button.active,.open .dropdown-toggleinput[type="submit"],.open .dropdown-togglebutton{color:#333;background-color:#dedede;border-color:#a1a1a1}input[type="submit"]:active,button:active,input[type="submit"].active,button.active,.open .dropdown-toggleinput[type="submit"],.open .dropdown-togglebutton{background-image:none}input[type="submit"].disabled,button.disabled,input[type="submit"][disabled],button[disabled],fieldset[disabled] input[type="submit"],fieldset[disabled] button,input[type="submit"].disabled:hover,button.disabled:hover,input[type="submit"][disabled]:hover,button[disabled]:hover,fieldset[disabled] input[type="submit"]:hover,fieldset[disabled] button:hover,input[type="submit"].disabled:focus,button.disabled:focus,input[type="submit"][disabled]:focus,button[disabled]:focus,fieldset[disabled] input[type="submit"]:focus,fieldset[disabled] button:focus,input[type="submit"].disabled:active,button.disabled:active,input[type="submit"][disabled]:active,button[disabled]:active,fieldset[disabled] input[type="submit"]:active,fieldset[disabled] button:active,input[type="submit"].disabled.active,button.disabled.active,input[type="submit"][disabled].active,button[disabled].active,fieldset[disabled] input[type="submit"].active,fieldset[disabled] button.active{background-color:#f2f2f2;border-color:#bfbfbf}input[type="submit"].btn-primary,button.btn-primary{color:#fff;background-color:#25537b;border-color:#000}input[type="submit"].btn-primary:hover,button.btn-primary:hover,input[type="submit"].btn-primary:focus,button.btn-primary:focus,input[type="submit"].btn-primary:active,button.btn-primary:active,input[type="submit"].btn-primary.active,button.btn-primary.active,.open .dropdown-toggleinput[type="submit"].btn-primary,.open .dropdown-togglebutton.btn-primary{color:#fff;background-color:#1c3e5c;border-color:#000}input[type="submit"].btn-primary:active,button.btn-primary:active,input[type="submit"].btn-primary.active,button.btn-primary.active,.open .dropdown-toggleinput[type="submit"].btn-primary,.open .dropdown-togglebutton.btn-primary{background-image:none}input[type="submit"].btn-primary.disabled,button.btn-primary.disabled,input[type="submit"].btn-primary[disabled],button.btn-primary[disabled],fieldset[disabled] input[type="submit"].btn-primary,fieldset[disabled] button.btn-primary,input[type="submit"].btn-primary.disabled:hover,button.btn-primary.disabled:hover,input[type="submit"].btn-primary[disabled]:hover,button.btn-primary[disabled]:hover,fieldset[disabled] input[type="submit"].btn-primary:hover,fieldset[disabled] button.btn-primary:hover,input[type="submit"].btn-primary.disabled:focus,button.btn-primary.disabled:focus,input[type="submit"].btn-primary[disabled]:focus,button.btn-primary[disabled]:focus,fieldset[disabled] input[type="submit"].btn-primary:focus,fieldset[disabled] button.btn-primary:focus,input[type="submit"].btn-primary.disabled:active,button.btn-primary.disabled:active,input[type="submit"].btn-primary[disabled]:active,button.btn-primary[disabled]:active,fieldset[disabled] input[type="submit"].btn-primary:active,fieldset[disabled] button.btn-primary:active,input[type="submit"].btn-primary.disabled.active,button.btn-primary.disabled.active,input[type="submit"].btn-primary[disabled].active,button.btn-primary[disabled].active,fieldset[disabled] input[type="submit"].btn-primary.active,fieldset[disabled] button.btn-primary.active{background-color:#25537b;border-color:#000}.search-query{display:inline-block;padding:4px;font-size:12px;line-height:1.42857143;color:#555;border:1px solid #aaa;padding-left:14px !important;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;max-width:auto}.search-query:focus{border-color:rgba(24,132,218,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);outline:0;outline:thin dotted \9}.search-spinner{position:absolute;display:none;right:6px;top:9px}#search-clear-btn{position:absolute;right:6px;top:9px;display:block;font-size:1.4em !important;text-decoration:none;color:#888;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#search-clear-btn:before{content:"\f057"}.errormessagelarge,.warningmessagelarge,.donemessagelarge,.infomessagelarge{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px;min-height:36px;padding-left:52px;background-image:url(error_large.png);background-repeat:no-repeat;background-position:10px 8px}.errormessagelarge h4,.warningmessagelarge h4,.donemessagelarge h4,.infomessagelarge h4{margin-top:0;color:inherit}.errormessagelarge .alert-link,.warningmessagelarge .alert-link,.donemessagelarge .alert-link,.infomessagelarge .alert-link{font-weight:bold}.errormessagelarge>p,.warningmessagelarge>p,.donemessagelarge>p,.infomessagelarge>p,.errormessagelarge>ul,.warningmessagelarge>ul,.donemessagelarge>ul,.infomessagelarge>ul{margin-bottom:0}.errormessagelarge>p+p,.warningmessagelarge>p+p,.donemessagelarge>p+p,.infomessagelarge>p+p{margin-top:5px}.errormessagelarge{background-color:#f9c7c5;border-color:#dd1b15;color:#7f2a27;padding-left:52px}.errormessagelarge hr{border-top-color:#c61813}.errormessagelarge .alert-link{color:#581d1b}.warningmessagelarge{background-color:#fce1bb;border-color:#e28809;color:#81581e;padding-left:52px;background-image:url(warn_large.png)}.warningmessagelarge hr{border-top-color:#ca7a08}.warningmessagelarge .alert-link{color:#583c14}.donemessagelarge{background-color:#b0f1b0;border-color:#20b520;color:#295f29;padding-left:52px;background-image:url(ok_large.png)}.donemessagelarge hr{border-top-color:#1c9f1c}.donemessagelarge .alert-link{color:#1a3c1a}.infomessagelarge{background-color:#a8e5f7;border-color:#119ac2;color:#1f5768;background-image:url(info_large.png)}.infomessagelarge hr{border-top-color:#0f87ab}.infomessagelarge .alert-link{color:#143641}.screencastBox{padding-left:10px;border-color:#aa6;background-color:#ffc;background-image:none}.errormessage,.warningmessage,.donemessage,.infomessage,.errormessagesmall,.warningmessagesmall,.donemessagesmall,.infomessagesmall{padding:15px;margin-bottom:17px;border:1px solid transparent;border-radius:3px;padding:5px;padding-left:25px;min-height:15px;background-image:url(error_small.png);background-repeat:no-repeat;background-position:5px 5px}.errormessage h4,.warningmessage h4,.donemessage h4,.infomessage h4,.errormessagesmall h4,.warningmessagesmall h4,.donemessagesmall h4,.infomessagesmall h4{margin-top:0;color:inherit}.errormessage .alert-link,.warningmessage .alert-link,.donemessage .alert-link,.infomessage .alert-link,.errormessagesmall .alert-link,.warningmessagesmall .alert-link,.donemessagesmall .alert-link,.infomessagesmall .alert-link{font-weight:bold}.errormessage>p,.warningmessage>p,.donemessage>p,.infomessage>p,.errormessagesmall>p,.warningmessagesmall>p,.donemessagesmall>p,.infomessagesmall>p,.errormessage>ul,.warningmessage>ul,.donemessage>ul,.infomessage>ul,.errormessagesmall>ul,.warningmessagesmall>ul,.donemessagesmall>ul,.infomessagesmall>ul{margin-bottom:0}.errormessage>p+p,.warningmessage>p+p,.donemessage>p+p,.infomessage>p+p,.errormessagesmall>p+p,.warningmessagesmall>p+p,.donemessagesmall>p+p,.infomessagesmall>p+p{margin-top:5px}.errormessage,.errormessagesmall{background-color:#f9c7c5;border-color:#dd1b15;color:#7f2a27}.errormessage hr,.errormessagesmall hr{border-top-color:#c61813}.errormessage .alert-link,.errormessagesmall .alert-link{color:#581d1b}.warningmessage,.warningmessagesmall{background-color:#fce1bb;border-color:#e28809;color:#81581e;background-image:url(warn_small.png)}.warningmessage hr,.warningmessagesmall hr{border-top-color:#ca7a08}.warningmessage .alert-link,.warningmessagesmall .alert-link{color:#583c14}.donemessage,.donemessagesmall{background-color:#b0f1b0;border-color:#20b520;color:#295f29;background-image:url(ok_small.png)}.donemessage hr,.donemessagesmall hr{border-top-color:#1c9f1c}.donemessage .alert-link,.donemessagesmall .alert-link{color:#1a3c1a}.infomessage,.infomessagesmall{background-color:#a8e5f7;border-color:#119ac2;color:#1f5768;background-image:url(info_small.png)}.infomessage hr,.infomessagesmall hr{border-top-color:#0f87ab}.infomessage .alert-link,.infomessagesmall .alert-link{color:#143641}.errormark,.warningmark,.donemark,.infomark,.ok_bgr,.err_bgr{padding-left:20px;min-height:15px;background:url(error_small.png) no-repeat}.warningmark{background-image:url(warn_small.png)}.donemark{background-image:url(ok_small.png)}.infomark,.ok_bgr{background-image:url(info_small.png)}table.simple{font-size:12px;background:#fff;margin:1em;border-collapse:collapse;text-align:left}table.simple th{font-size:14px;font-weight:normal;padding:10px 8px;border-bottom:2px solid #333}table.simple td{padding:10px 8px 0 8px}table.simple tbody tr:hover td{color:#333}table.tabletip{width:100%;border-collapse:collapse;text-align:left}table.tabletip th{white-space:nowrap;border-bottom:1px solid #444;padding-right:3px}table.tabletip td{border-bottom:1px solid #ddd}table.tabletip tbody tr:hover td{background-color:#eee}table.colored{border-top:solid #d6b161 1px;border-bottom:solid #d6b161 1px}table.colored td,table.colored th{text-align:left;padding:5px;line-height:1.42857143}table.colored tr.header{background:#ebd9b2;color:#000;background-repeat:repeat-x;background-position:top;border-bottom:solid #d6b161 1px;font-weight:bold}table.colored tr{background:#fff}table.colored tr.odd_row{background:#f9f9f9}div.debug{margin:10px;padding:5px;background:#ff9;border:solid #ff3 1px;color:black}.grid-header{padding-bottom:1em}.grid-header h2{margin:0;margin-bottom:.5em}.grid-header .title{font-weight:bold}.grid,.ui-table,.ui-table-plain{padding-top:1em;border-collapse:collapse;width:100%}.grid tbody td,.ui-table tbody td,.ui-table-plain tbody td{line-height:1.42857143;border-top:solid #ddd 1px;border-bottom:solid #ddd 1px;padding:5px}.grid tbody td:empty{padding:0}.grid thead tr{height:2em}.grid thead th{line-height:1.42857143;background:#ebd9b2;color:#000;border-top:solid #d6b161 1px;border-bottom:solid #d6b161 1px;padding:5px;text-align:left;white-space:nowrap}.grid tfoot td{background-color:#f8f8f8;border-top:solid #ddd 1px;border-bottom:solid #ddd 1px;padding:5px}.grid .current{background-color:#eef}.count-box{min-width:1.1em;padding:5px;border-width:1px;border-style:solid;text-align:center;display:inline-block}.text-filter-val{border:solid 1px #aaa;padding:1px 2px 1px 3px;margin-right:5px;-moz-border-radius:.5em;-webkit-border-radius:.5em;font-style:italic}.page-link a,.inactive-link{padding:0 7px 0 7px;color:#555}.inactive-link,.current-filter{font-weight:bold;color:#000}.submit-image{background:url(../images/fugue/magnifier-left.png) no-repeat center transparent;background-color:#eee;width:9.42857143;height:9.42857143;cursor:pointer;margin:0;padding:0;border:1px solid #aaa;border-left:none}#advanced-search td{padding:3px}#advanced-search table{border-collapse:separate}.delete-search-icon{background:url(../images/delete_tag_icon_gray.png) center no-repeat;display:inline-block;width:10px;cursor:pointer;height:18px;vertical-align:middle;margin-left:2px}.search-box-input{border:0;float:left;outline:medium none;font-style:italic;font-size:inherit}.search-box{vertical-align:bottom;display:inline-block;padding:0;white-space:nowrap}.gray-background{background-color:#ddd}.loading-elt-overlay{background-color:white;opacity:.5;width:100%;height:100%;z-index:14000;position:fixed;display:none}div.odd_row{background:#f9f9f9}#footer{display:none}span.toolParameterExpandableCollapsable{font-weight:bold;cursor:pointer}ul.toolParameterExpandableCollapsable{list-style:none}ul.manage-table-actions{float:right;margin-top:-2.5em}ul.manage-table-actions li{display:block;float:left;margin-left:.5em}.state-color-new{border-color:#bfbfbf;background:#eee}.state-color-upload{border-color:#119ac2;background:#a8e5f7}.state-color-waiting{border-color:#bfbfbf;background:#eee}.state-color-queued{border-color:#bfbfbf;background:#eee}.state-color-running{border-color:#aa6;background:#ffc}.state-color-ok{border-color:#20b520;background:#b0f1b0}.state-color-error{border-color:#dd1b15;background:#f9c7c5}.state-color-deleted{border-color:#306;background:#39f}.state-fg-new{color:#ffb030}.state-fg-upload{color:#d090d0}.state-fg-waiting{color:#e8c060}.state-fg-queued{color:#888}.state-fg-running{color:#aa6}.state-fg-ok{color:#6a6}.state-fg-error{color:#a66}.state-fg-deleted{color:#39f}button{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf}button:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}button:hover,button:focus{color:#333;text-decoration:none}button:active,button.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}button.disabled,button[disabled],fieldset[disabled] button{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}button:hover,button:focus,button:active,button.active,.open .dropdown-togglebutton{color:#333;background-color:#dedede;border-color:#a1a1a1}button:active,button.active,.open .dropdown-togglebutton{background-image:none}button.disabled,button[disabled],fieldset[disabled] button,button.disabled:hover,button[disabled]:hover,fieldset[disabled] button:hover,button.disabled:focus,button[disabled]:focus,fieldset[disabled] button:focus,button.disabled:active,button[disabled]:active,fieldset[disabled] button:active,button.disabled.active,button[disabled].active,fieldset[disabled] button.active{background-color:#f2f2f2;border-color:#bfbfbf}.action-button{display:inline-block;padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:3px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf}.action-button:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.action-button:hover,.action-button:focus{color:#333;text-decoration:none}.action-button:active,.action-button.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.action-button.disabled,.action-button[disabled],fieldset[disabled] .action-button{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.action-button:hover,.action-button:focus,.action-button:active,.action-button.active,.open .dropdown-toggle.action-button{color:#333;background-color:#dedede;border-color:#a1a1a1}.action-button:active,.action-button.active,.open .dropdown-toggle.action-button{background-image:none}.action-button.disabled,.action-button[disabled],fieldset[disabled] .action-button,.action-button.disabled:hover,.action-button[disabled]:hover,fieldset[disabled] .action-button:hover,.action-button.disabled:focus,.action-button[disabled]:focus,fieldset[disabled] .action-button:focus,.action-button.disabled:active,.action-button[disabled]:active,fieldset[disabled] .action-button:active,.action-button.disabled.active,.action-button[disabled].active,fieldset[disabled] .action-button.active{background-color:#f2f2f2;border-color:#bfbfbf}a.action-button{color:#333;text-decoration:none}.action-button>img{vertical-align:middle}.action-button:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.menubutton{padding:4px 10px;margin-bottom:0;font-size:12px;font-weight:normal;line-height:1.42857143;text-align:center;vertical-align:middle;border:1px solid transparent;border-radius:3px;white-space:nowrap;white-space:normal;color:#333;background-color:#f2f2f2;border-color:#bfbfbf;display:inline-block;cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.menubutton:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.menubutton:hover,.menubutton:focus{color:#333;text-decoration:none}.menubutton:active,.menubutton.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.menubutton.disabled,.menubutton[disabled],fieldset[disabled] .menubutton{cursor:not-allowed;pointer-events:none;opacity:.65;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=65);filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.menubutton:hover,.menubutton:focus,.menubutton:active,.menubutton.active,.open .dropdown-toggle.menubutton{color:#333;background-color:#dedede;border-color:#a1a1a1}.menubutton:active,.menubutton.active,.open .dropdown-toggle.menubutton{background-image:none}.menubutton.disabled,.menubutton[disabled],fieldset[disabled] .menubutton,.menubutton.disabled:hover,.menubutton[disabled]:hover,fieldset[disabled] .menubutton:hover,.menubutton.disabled:focus,.menubutton[disabled]:focus,fieldset[disabled] .menubutton:focus,.menubutton.disabled:active,.menubutton[disabled]:active,fieldset[disabled] .menubutton:active,.menubutton.disabled.active,.menubutton[disabled].active,fieldset[disabled] .menubutton.active{background-color:#f2f2f2;border-color:#bfbfbf}.menubutton:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.menubutton:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.menubutton a{text-decoration:none}.menubutton .label,.menubutton>label{position:relative;display:inline-block;border-right:none;text-decoration:none;text-align:left;max-height:2.85714286;line-height:1.42857143;overflow:hidden;text-overflow:ellipsis}.menubutton.popup .label{border-right:solid #bfbfbf 1px;padding-right:6px}.menubutton.popup,.menubutton.popup.split{padding-right:18px}.menubutton.popup:after,.menubutton.popup.split:after{top:45%;position:absolute;right:6px;display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:""}.btn-default .menubutton.popup:after,.btn-default .menubutton.popup.split:after{border-top-color:#333}.btn-primary .menubutton.popup:after,.btn-primary .menubutton.popup.split:after,.btn-success .menubutton.popup:after,.btn-success .menubutton.popup.split:after,.btn-warning .menubutton.popup:after,.btn-warning .menubutton.popup.split:after,.btn-danger .menubutton.popup:after,.btn-danger .menubutton.popup.split:after,.btn-info .menubutton.popup:after,.btn-info .menubutton.popup.split:after{border-top-color:#fff}div.popmenu-wrapper{position:absolute;top:100%;z-index:20000}div.popmenu-wrapper ul.dropdown-menu{display:block;position:relative;float:none}ul.dropdown-menu a{text-decoration:none}ul.dropdown-menu li.head>a{text-shadow:0 1px 0 rgba(255,255,255,0.5);font-size:11px;font-weight:bold;line-height:1.42857143;color:#999;text-transform:uppercase}ul.dropdown-menu li.head>a:hover{background:inherit;border-color:transparent}.popup-arrow{cursor:pointer;text-decoration:none;color:#555}.popup-arrow:hover{color:black}div.permissionContainer{padding-left:20px}.text-content hr{display:block;background:black;color:black;width:100%;height:1px;border:none;background:#aaa;color:#aaa}.text-content table{border-collapse:collapse;border-top:1px solid #ccc;border-left:1px solid #ccc}.text-content blockquote{color:#666}.text-content fieldset{border-color:#ccc;border:1px solid #ccc}.text-content th,.text-content td{border-bottom:1px solid #ddd;border-right:1px solid #ccc}.text-content th,.text-content td{padding:.8em}.icon-button{width:16px;height:16px;display:block;float:left;margin-left:2px;text-indent:20px;background-repeat:no-repeat;background-position:0 0;padding:0}.fa-icon-button{text-align:center;text-decoration:none;display:inline-block;cursor:pointer;width:16px;height:16px;line-height:8px}.fa-icon-button:hover{color:maroon;-webkit-transition:color .25s linear;transition:color .25s linear}.editable-text{cursor:pointer}.editable-text:hover{cursor:text;border:dotted #999 1px}.icon-button.multiinput{background:url(../images/documents-stack.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}.icon-button.multiinput.disabled{background:url(../images/documents-stack-faded.png) no-repeat;cursor:pointer}.icon-button.link{background:url(../images/silk/link.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}.icon-button.link-broken{background:url(../images/silk/link_break.png) no-repeat;cursor:pointer;float:none;display:inline-block;margin-left:10px}.workflow-invocation-complete{border:solid 1px #6a6;border-left-width:5px;margin:10px 0;padding-left:5px}.icon-btn,.ui-button-icon,.ui-button-icon-plain{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;border-radius:3px;border:1px solid #bfbfbf;background-color:#f2f2f2;color:#333;cursor:pointer}.icon-btn:focus,.icon-btn:hover{outline:0;background-color:white;color:maroon}.icon-btn.disabled{background-color:transparent;color:#bbb;border-color:#bbb}.icon-btn-group{display:inline-block}.icon-btn-group .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.icon-btn-group .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.icon-btn-group .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.icon-btn-group .icon-btn:only-child{margin:0;border-radius:3px}.list-item{border:1px solid #bfbfbf}.list-item .vertical-spacing{margin-bottom:8px}.list-item .info-section{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px}.list-item .padded{padding:6px 10px 6px 8px}.list-item .warnings:not(:empty){padding-top:4px}.list-item .warnings [class$=messagesmall]{margin:6px 10px 2px 8px;font-size:90%}.list-item .warnings [class$=messagesmall]:first-child{margin-top:0}.list-item .warnings [class$=messagesmall]:last-child{margin-bottom:0}.list-item .help-text{font-weight:normal;color:#555}.list-item .selector{float:left;display:none;width:32px;height:32px;margin:0 0 -6px 0;padding:8px 0 2px 7px;font-size:80%;color:#333;cursor:pointer;vertical-align:middle}.list-item .selector:hover{color:maroon}.list-item .title-bar{cursor:pointer;outline:none;padding:6px 10px 6px 8px}.list-item .title-bar .title{display:inline;font-weight:bold;text-decoration:underline;word-wrap:break-word;word-break:break-all;line-height:16px}.list-item .title-bar .subtitle{color:#777;font-size:90%}.list-item .title-bar .subtitle a{color:inherit}.list-item .primary-actions{display:inline-block;float:right;margin:6px 10px 0}.list-item .primary-actions .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.list-item .primary-actions .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.list-item .primary-actions .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.list-item .primary-actions .icon-btn:only-child{margin:0;border-radius:3px}.list-item .primary-actions .icon-btn{margin-left:2px}.list-item .details{display:none;padding:0 10px 6px 8px}.list-item .details>[class$=messagesmall]{margin:0 0 8px 0}.list-item .details label{margin:0;padding:0;font-weight:normal}.list-item .details .prompt{font-weight:normal;color:#555}.list-item .details .prompt:after{content:':';margin-right:4px}.list-panel .vertical-spacing{margin-bottom:8px}.list-panel .controls>*:not(:empty){margin-bottom:8px}.list-panel .controls .name{word-wrap:break-word;font-weight:bold}.list-panel .controls .name input{width:100%;margin:-3px 0 -3px -3px;font-weight:bold}.list-panel .controls .subtitle{color:#777;font-size:90%}.list-panel .controls .subtitle a{color:inherit}.list-panel .controls .editable-text{border:solid transparent 1px}.list-panel .controls .editable-text:hover{cursor:pointer;border:1px dotted #999}.list-panel .controls .actions{display:inline-block;float:right}.list-panel .controls .actions .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.list-panel .controls .actions .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.list-panel .controls .actions .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.list-panel .controls .actions .icon-btn:only-child{margin:0;border-radius:3px}.list-panel .controls .actions .icon-btn{margin-left:2px}.list-panel .controls .messages:before,.list-panel .controls .messages:after{content:" ";display:table}.list-panel .controls .messages:after{clear:both}.list-panel .controls .messages:before,.list-panel .controls .messages:after{content:" ";display:table}.list-panel .controls .messages:after{clear:both}.list-panel .controls .messages [class$=message],.list-panel .controls .messages [class$=messagesmall]{margin:0}.list-panel .controls .messages [class$=message]:not(:last-child),.list-panel .controls .messages [class$=messagesmall]:not(:last-child){margin-bottom:8px}.list-panel .controls .list-actions{display:none}.list-panel .controls .list-actions:before,.list-panel .controls .list-actions:after{content:" ";display:table}.list-panel .controls .list-actions:after{clear:both}.list-panel .controls .list-actions:before,.list-panel .controls .list-actions:after{content:" ";display:table}.list-panel .controls .list-actions:after{clear:both}.list-panel .controls .list-actions .btn{padding-top:2px;padding-bottom:2px;font-size:90%}.list-panel .controls .list-actions .list-action-menu{float:right}.list-panel .list-items .list-item{border-width:1px 0 1px 0}.list-panel .list-items .list-item:not(:last-child){border-bottom-width:0}.list-panel .empty-message{display:none;margin:0}.list-item .details .list-panel{margin-top:8px;border-radius:3px;background:white;padding:4px}.list-item .details .list-panel .list-items{border:1px solid #bfbfbf;border-radius:3px}.list-item .details .list-panel .list-items .list-item:first-child{border-top-width:0;border-radius:3px 3px 0 0}.list-item .details .list-panel .list-items .list-item:last-child{border-bottom-width:0;border-radius:0 0 3px 3px}.history-panel-header .panel-header-button{display:inline-block;height:22px;width:22px;text-align:center;line-height:19px;font-size:1.2em;padding:0}.state-icon{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;margin-right:4px;vertical-align:middle;width:16px;height:16px;line-height:16px;text-align:center;font-size:16px}.state-icon-running{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.state-icon-running:before{content:"\f110"}.state-icon-upload{overflow:hidden}.state-icon-upload:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.state-icon-error{background-color:white;border-radius:8px}.state-icon-error:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.has-job-state-mixin.state-ok,.has-job-state-mixin.state-failed_metadata{background:#b0f1b0}.has-job-state-mixin.state-ok .state-icon,.has-job-state-mixin.state-failed_metadata .state-icon{display:none}.has-job-state-mixin.state-error,.has-job-state-mixin.state-empty{background:#f9c7c5}.has-job-state-mixin.state-error .state-icon,.has-job-state-mixin.state-empty .state-icon{background-color:white;border-radius:8px}.has-job-state-mixin.state-error .state-icon:before,.has-job-state-mixin.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.has-job-state-mixin.state-upload{background:#a8e5f7}.has-job-state-mixin.state-upload .state-icon{overflow:hidden}.has-job-state-mixin.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.has-job-state-mixin.state-queued{background:#eee}.has-job-state-mixin.state-queued .state-icon:before{content:"\f017"}.has-job-state-mixin.state-running,.has-job-state-mixin.state-setting_metadata{background:#ffc}.has-job-state-mixin.state-running .state-icon,.has-job-state-mixin.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.has-job-state-mixin.state-running .state-icon:before,.has-job-state-mixin.state-setting_metadata .state-icon:before{content:"\f110"}.has-job-state-mixin.state-paused{background:#d9edf7}.has-job-state-mixin.state-paused .state-icon:before{content:"\f04c"}.has-job-state-mixin.state-discarded{background:#eee}.has-job-state-mixin.state-discarded .state-icon:before{content:"\f014"}.has-job-state-mixin.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.has-job-state-mixin.state-noPermission .state-icon{font-size:20px}.has-job-state-mixin.state-noPermission .state-icon:before{content:"\f023"}.has-job-state-mixin.state-new{background:#eee}.has-job-state-mixin.state-new .state-icon:before{content:"\f06a"}.dataset.state-ok,.dataset.state-failed_metadata{background:#b0f1b0}.dataset.state-ok .state-icon,.dataset.state-failed_metadata .state-icon{display:none}.dataset.state-error,.dataset.state-empty{background:#f9c7c5}.dataset.state-error .state-icon,.dataset.state-empty .state-icon{background-color:white;border-radius:8px}.dataset.state-error .state-icon:before,.dataset.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.dataset.state-upload{background:#a8e5f7}.dataset.state-upload .state-icon{overflow:hidden}.dataset.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.dataset.state-queued{background:#eee}.dataset.state-queued .state-icon:before{content:"\f017"}.dataset.state-running,.dataset.state-setting_metadata{background:#ffc}.dataset.state-running .state-icon,.dataset.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.dataset.state-running .state-icon:before,.dataset.state-setting_metadata .state-icon:before{content:"\f110"}.dataset.state-paused{background:#d9edf7}.dataset.state-paused .state-icon:before{content:"\f04c"}.dataset.state-discarded{background:#eee}.dataset.state-discarded .state-icon:before{content:"\f014"}.dataset.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.dataset.state-noPermission .state-icon{font-size:20px}.dataset.state-noPermission .state-icon:before{content:"\f023"}.dataset.state-new{background:#eee}.dataset.state-new .state-icon:before{content:"\f06a"}.dataset .details .summary{margin-bottom:8px}.dataset .details .summary .blurb{margin-bottom:2px}.dataset .details .summary .datatype,.dataset .details .summary .dbkey{display:inline}.dataset .details .summary .datatype .value,.dataset .details .summary .dbkey .value{font-weight:bold}.dataset .details .summary .datatype .value:after{content:',';font-weight:normal;color:#555;margin-right:4px}.dataset .details .summary .dbkey:after{content:' ';display:block;margin-bottom:8px}.dataset .details .summary .info{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px;overflow:auto}.dataset .details .summary .info .value{white-space:pre-line}.dataset .details .summary .job-error-text{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px;overflow:auto;white-space:pre}.dataset .details .actions .metafile-dropdown{display:inline-block}.dataset .details .actions .visualizations-dropdown{display:inline-block}.dataset .details .actions .left{display:inline-block;float:left}.dataset .details .actions .left .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.dataset .details .actions .left .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.dataset .details .actions .left .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.dataset .details .actions .left .icon-btn:only-child{margin:0;border-radius:3px}.dataset .details .actions .left .icon-btn{margin-right:2px}.dataset .details .actions .left .icon-btn.visualization-btn{margin-left:0;border-radius:0 3px 3px 0;border-right:1px solid #bfbfbf}.dataset .details .actions .right{display:inline-block;float:right}.dataset .details .actions .right .icon-btn:not(:last-child){margin:0;border-radius:0;border-right:none}.dataset .details .actions .right .icon-btn:first-child{margin-right:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.dataset .details .actions .right .icon-btn:last-child{margin-left:0;border-radius:0 3px 3px 0}.dataset .details .actions .right .icon-btn:only-child{margin:0;border-radius:3px}.dataset .details .actions .right .icon-btn{margin-left:2px}.dataset .details .actions:not(:last-child){margin-bottom:8px}.dataset .details .tags-display{display:none;margin-bottom:8px}.dataset .details .tags-display .select2-container{min-width:0}.dataset .details .tags-display .select2-container .select2-choices{border-radius:3px}.dataset .details .annotation-display{display:none;margin-bottom:8px}.dataset .details .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.3);padding:4px;white-space:pre-wrap;overflow:auto}.dataset .details .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}.dataset .details .annotation-display textarea{margin:0 0 2px 0;display:block;border-radius:3px;width:100%}.dataset .details .display-applications .display-application:last-child{margin-bottom:8px}.dataset .details .dataset-peek{margin-bottom:8px;width:100%;margin:0;border-radius:3px;background:white;color:black;font-size:10px;overflow:auto}.dataset .details .dataset-peek th{color:white;background:#25537b}.dataset .details .dataset-peek table,.dataset .details .dataset-peek th,.dataset .details .dataset-peek tr,.dataset .details .dataset-peek td{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:10px}.history-content.dataset .title-bar .title .hid:after,.history-content.dataset-collection .title-bar .title .hid:after{content:':'}.history-panel>.controls{margin:10px 10px 0 10px;padding:0}.history-panel>.controls .messages{margin-bottom:0}.history-panel>.controls .messages>*{cursor:pointer}.history-panel>.controls .messages>*:last-child{margin-bottom:8px}.history-panel>.controls .title{margin-bottom:4px}.history-panel>.controls .title input{width:100%;margin:-3px 0 -3px -3px;font-weight:bold}.history-panel>.controls .subtitle:not(:empty){margin-top:-4px;margin-bottom:6px}.history-panel>.controls .history-size{display:inline-block;margin-top:4px;color:black}.history-panel>.controls .actions{margin-bottom:0}.history-panel>.controls .quota-message{display:none;margin:8px 0 5px 0}.history-panel>.controls .tags-display,.history-panel>.controls .annotation-display{display:none;margin-bottom:8px}.history-panel>.controls .tags-display label,.history-panel>.controls .annotation-display label{display:block;margin:0;padding:0;font-weight:normal;color:#555}.history-panel>.controls .tags-display label:after,.history-panel>.controls .annotation-display label:after{content:':'}.history-panel>.controls .tags-display .select2-container{min-width:0}.history-panel>.controls .tags-display .select2-container .select2-choices{border-radius:3px}.history-panel>.controls .tags-display input{border-radius:3px}.history-panel>.controls .annotation-display .annotation{border-radius:3px;border:1px solid rgba(153,153,153,0.5);padding:4px;white-space:pre-wrap;overflow:auto}.history-panel>.controls .annotation-display .annotation:empty:after{position:relative;top:-4px;font-size:10px;font-style:italic;color:grey;content:'Click here to edit annotation'}.history-panel>.controls .annotation-display textarea{margin:0 0 2px 0;border-radius:3px;width:100%}.history-panel .list-item.history-content{border-width:1px 0 0 0}.history-panel .list-item.history-content:last-child{border-width:1px 0 1px 0}.history-panel .empty-message{margin:0 10px 0 10px}.history-panel .dataset-collection .subtitle{margin-top:2px}.annotated-history-panel>.controls{margin:0}.annotated-history-panel>.controls .name{font-size:150%;margin-bottom:4px}.annotated-history-panel>.controls .subtitle{color:black}.annotated-history-panel>.controls .subtitle:not(:empty){margin:0 0 0 4px}.annotated-history-panel>.controls .messages:not(:empty){margin-top:16px}.annotated-history-panel>.controls .annotation-display{display:block;border:1px solid lightgrey;border-width:1px 0 0 0;padding:4px 0 4px 0;margin:4px 4px 0 4px;white-space:pre-wrap}.annotated-history-panel>.controls .annotation-display:empty{display:none}.annotated-history-panel>.controls .search{padding:16px 0 0 0;margin-bottom:0}.annotated-history-panel table.list-items{width:100%;table-layout:fixed}.annotated-history-panel table.list-items .headers{border-bottom:2px solid grey}.annotated-history-panel table.list-items .headers th{padding:8px}.annotated-history-panel table.list-items>tbody>tr{cursor:pointer;border-bottom:1px solid grey}.annotated-history-panel table.list-items>tbody>tr>td{margin:0;padding:0;vertical-align:top}.annotated-history-panel table.list-items>tbody>tr>td:nth-child(1){width:50%}.annotated-history-panel table.list-items>tbody>tr>td:nth-child(2){padding:8px 16px 8px 16px;white-space:pre-wrap}.annotated-history-panel table.list-items>tbody>tr>td>.list-item{border:0}.annotated-history-panel .empty-message{margin-top:8px}.current-history-panel .list-item.history-content.current-content{border-left:5px solid #4e5777}.multi-panel-history{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.multi-panel-history .flex-row-container,.multi-panel-history .flex-column-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:0;min-height:0;-webkit-align-items:stretch;-ms-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;-ms-align-content:stretch;align-content:stretch;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.multi-panel-history .flex-row-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.multi-panel-history .flex-column-container{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.multi-panel-history .flex-row,.multi-panel-history .flex-column{-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-align-self:auto;-ms-flex-item-align:auto;align-self:auto}.multi-panel-history .header,.multi-panel-history .footer{width:100%;background-color:lightgrey}.multi-panel-history .header .btn,.multi-panel-history .footer .btn{height:21px}.multi-panel-history .header{min-height:29px;max-height:29px}.multi-panel-history .header .more-options .btn{height:26px}.multi-panel-history .header .more-options input[type=checkbox]{margin-top:1px}.multi-panel-history .footer{min-height:0;max-height:0}.multi-panel-history .smaller-btn{height:20px;line-height:normal;font-size:90%;padding-top:0;padding-bottom:0}.multi-panel-history .control-column{margin-top:4px}.multi-panel-history .control-column .btn{height:20px;line-height:normal;font-size:90%;padding-top:0;padding-bottom:0}.multi-panel-history .control-column .search-control{display:inline-block;width:40%}.multi-panel-history .control-column .search-control .search-clear,.multi-panel-history .control-column .search-control .search-loading{margin-top:-22px}.multi-panel-history .control-column input.search-query{font-size:90%;height:21px;line-height:normal;padding:2px 2px 1px 2px}.multi-panel-history .control-column .open-more-options{padding:2px 6px 2px 6px;font-size:100%}.multi-panel-history .control-column .header-info{display:inline-block;padding:2px 4px 2px 4px;color:grey}.multi-panel-history .control-column.control-column-right,.multi-panel-history .control-column.control-column-left{margin-right:8px;margin-left:8px}.multi-panel-history .control-column.control-column-right>*,.multi-panel-history .control-column.control-column-left>*{margin:0 4px 4px 0}.multi-panel-history .control-column.control-column-center{text-align:center;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-height:22px}.multi-panel-history .control-column.control-column-right{text-align:right}.multi-panel-history .outer-middle{overflow:auto}.multi-panel-history .middle{min-width:100%;margin:0 0 0 0;background-color:white;padding:8px}.multi-panel-history .history-column{width:312px;margin:0 8px 0 0}.multi-panel-history .history-column:first-child{position:fixed;z-index:10}.multi-panel-history .history-column:first-child .history-panel{border:1px solid black;box-shadow:4px 4px 4px rgba(96,96,96,0.3)}.multi-panel-history .history-column:nth-child(2){margin-left:320px}.multi-panel-history .history-column:last-child{margin-right:0}.multi-panel-history .history-column .dropdown-menu{z-index:inherit}.multi-panel-history .history-column .panel-controls{width:100%;height:24px;border-radius:3px;background-color:white;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-align-self:auto;-ms-flex-item-align:auto;align-self:auto}.multi-panel-history .history-column .panel-controls .btn{height:20px;line-height:normal;font-size:90%;padding-top:0;padding-bottom:0}.multi-panel-history .history-column .panel-controls .pull-left .btn{margin-right:4px}.multi-panel-history .history-column .panel-controls .pull-right .btn{margin-left:4px}.multi-panel-history .history-column .panel-controls .panel-menu{z-index:1}.multi-panel-history .history-column .panel-controls .panel-menu .dropdown-menu a{text-align:left}.multi-panel-history .history-column .panel-controls .current-label{display:inline-block;color:grey;padding-left:2px;margin-top:2px}.multi-panel-history .history-column .history-panel{width:100%;border:1px solid grey;border-radius:3px;background-color:#dfe5f9;overflow:auto}pre.peek{background:white;color:black;width:100%;font-size:10px;overflow:auto}pre.peek th{color:white;background:#25537b}pre.peek table,pre.peek th,pre.peek tr,pre.peek td{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:10px}.dataset-collection-element.state-ok,.dataset-collection-element.state-failed_metadata{background:#b0f1b0}.dataset-collection-element.state-ok .state-icon,.dataset-collection-element.state-failed_metadata .state-icon{display:none}.dataset-collection-element.state-error,.dataset-collection-element.state-empty{background:#f9c7c5}.dataset-collection-element.state-error .state-icon,.dataset-collection-element.state-empty .state-icon{background-color:white;border-radius:8px}.dataset-collection-element.state-error .state-icon:before,.dataset-collection-element.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.dataset-collection-element.state-upload{background:#a8e5f7}.dataset-collection-element.state-upload .state-icon{overflow:hidden}.dataset-collection-element.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.dataset-collection-element.state-queued{background:#eee}.dataset-collection-element.state-queued .state-icon:before{content:"\f017"}.dataset-collection-element.state-running,.dataset-collection-element.state-setting_metadata{background:#ffc}.dataset-collection-element.state-running .state-icon,.dataset-collection-element.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.dataset-collection-element.state-running .state-icon:before,.dataset-collection-element.state-setting_metadata .state-icon:before{content:"\f110"}.dataset-collection-element.state-paused{background:#d9edf7}.dataset-collection-element.state-paused .state-icon:before{content:"\f04c"}.dataset-collection-element.state-discarded{background:#eee}.dataset-collection-element.state-discarded .state-icon:before{content:"\f014"}.dataset-collection-element.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.dataset-collection-element.state-noPermission .state-icon{font-size:20px}.dataset-collection-element.state-noPermission .state-icon:before{content:"\f023"}.dataset-collection-element.state-new{background:#eee}.dataset-collection-element.state-new .state-icon:before{content:"\f06a"}.dataset-collection-element .title-bar .subtitle{margin-top:2px}.dataset-collection-element .details{display:none}.history-content.dataset-collection.state-ok,.history-content.dataset-collection.state-failed_metadata{background:#b0f1b0}.history-content.dataset-collection.state-ok .state-icon,.history-content.dataset-collection.state-failed_metadata .state-icon{display:none}.history-content.dataset-collection.state-error,.history-content.dataset-collection.state-empty{background:#f9c7c5}.history-content.dataset-collection.state-error .state-icon,.history-content.dataset-collection.state-empty .state-icon{background-color:white;border-radius:8px}.history-content.dataset-collection.state-error .state-icon:before,.history-content.dataset-collection.state-empty .state-icon:before{font-size:20px;line-height:16px;color:red;content:"\f057"}.history-content.dataset-collection.state-upload{background:#a8e5f7}.history-content.dataset-collection.state-upload .state-icon{overflow:hidden}.history-content.dataset-collection.state-upload .state-icon:before{display:inline-block;-webkit-animation:eclipse 2s infinite linear;-moz-animation:eclipse 2s infinite linear;-o-animation:eclipse 2s infinite linear;animation:eclipse 2s infinite linear;content:"\f062"}@-moz-keyframes eclipse{0%{-moz-transform:translate(0, 16px)}100%{-moz-transform:translate(0, -16px)}}@-webkit-keyframes eclipse{0%{-webkit-transform:translate(0, 16px)}100%{-webkit-transform:translate(0, -16px)}}@-o-keyframes eclipse{0%{-o-transform:translate(0, 16px)}100%{-o-transform:translate(0, -16px)}}@-ms-keyframes eclipse{0%{-ms-transform:translate(0, 16px)}100%{-ms-transform:translate(0, -16px)}}@keyframes eclipse{0%{transform:translate(0, 16px)}100%{transform:translate(0, -16px)}}.history-content.dataset-collection.state-queued{background:#eee}.history-content.dataset-collection.state-queued .state-icon:before{content:"\f017"}.history-content.dataset-collection.state-running,.history-content.dataset-collection.state-setting_metadata{background:#ffc}.history-content.dataset-collection.state-running .state-icon,.history-content.dataset-collection.state-setting_metadata .state-icon{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.history-content.dataset-collection.state-running .state-icon:before,.history-content.dataset-collection.state-setting_metadata .state-icon:before{content:"\f110"}.history-content.dataset-collection.state-paused{background:#d9edf7}.history-content.dataset-collection.state-paused .state-icon:before{content:"\f04c"}.history-content.dataset-collection.state-discarded{background:#eee}.history-content.dataset-collection.state-discarded .state-icon:before{content:"\f014"}.history-content.dataset-collection.state-noPermission{background:#eee;filter:alpha(opacity=60);-moz-opacity:.6;opacity:.6}.history-content.dataset-collection.state-noPermission .state-icon{font-size:20px}.history-content.dataset-collection.state-noPermission .state-icon:before{content:"\f023"}.history-content.dataset-collection.state-new{background:#eee}.history-content.dataset-collection.state-new .state-icon:before{content:"\f06a"}.dataset-collection-panel{margin:0;padding:0}.dataset-collection-panel .vertically-spaced{margin-top:4px}.dataset-collection-panel .controls{padding:8px}.dataset-collection-panel .controls .navigation{margin-top:4px}.dataset-collection-panel .controls .navigation .back .fa-icon{margin-right:4px;font-size:120%;font-weight:bold;text-decoration:none}.dataset-collection-panel .controls .title{margin-top:12px}.dataset-collection-panel .controls .title .name{font-weight:bold}.dataset-collection-panel .list-items .dataset-collection-element{border-width:1px 0 0 0}.dataset-collection-panel .list-items .dataset-collection-element:last-child{border-bottom-width:1px}.job.list-item{border:1px solid #bfbfbf}.job.list-item .title-bar .subtitle{color:grey;font-size:80%}.job.list-item>.details{padding:0}.job.list-item>.details .params{padding:0 8px 0 8px}.job.list-item>.details .params .param .prompt,.job.list-item>.details .params .input .prompt{font-size:80%;color:grey}.job.list-item>.details .params .param .value,.job.list-item>.details .params .input .value{display:inline-block;font-weight:bold}.job.list-item>.details .list-panel{padding:0}.job.list-item>.details .list-panel .list-items{border:0;border-radius:0}.job.list-item>.details .list-panel .list-items .list-item{border:0;border-radius:0;border-top:1px solid #bfbfbf}.collection-creator{height:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.collection-creator ol,.collection-creator li{list-style:none;padding:0;margin:0}.collection-creator>*:not(.popover){padding:0 8px 0 8px}.collection-creator .btn{border-color:#bfbfbf}.collection-creator .vertically-spaced{margin-top:8px}.collection-creator .scroll-container{overflow:auto}.collection-creator .truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.collection-creator .empty-message{color:grey;font-style:italic}.collection-creator.flex-row-container,.collection-creator .flex-row-container,.collection-creator .flex-column-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-ms-align-items:stretch;align-items:stretch;-webkit-align-content:stretch;-ms-align-content:stretch;align-content:stretch}.collection-creator.flex-row-container,.collection-creator .flex-row-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.collection-creator .flex-row{-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 0 auto}.collection-creator .flex-row.no-flex{-webkit-flex:0 auto;-ms-flex:0 auto;flex:0 0 auto}.collection-creator .flex-column-container{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.collection-creator .flex-column{-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 1 auto}.collection-creator .flex-column.no-flex{-webkit-flex:0 auto;-ms-flex:0 auto;flex:0 0 auto}.collection-creator .choose-filters .help{margin-bottom:2px;font-size:90%;color:grey}.collection-creator .choose-filters button{width:100%;margin-top:2px}.collection-creator .header .alert{display:none}.collection-creator .header .alert li{list-style:circle;margin-left:32px}.collection-creator .column{width:30%}.collection-creator .column-title{height:22px;line-height:22px;overflow:hidden}.collection-creator .column-title:hover{text-decoration:underline;cursor:pointer}.collection-creator .column-title .title{font-weight:bold}.collection-creator .column-title .title-info{color:grey}.collection-creator .column-title .title-info:before{content:' - '}.collection-creator .paired-column{text-align:center;width:22%}.collection-creator .header .main-help{margin-bottom:17px;overflow:hidden;padding:15px;background:#f8f8f8}.collection-creator .header .main-help:not(.expanded){max-height:49px}.collection-creator .header .main-help:not(.expanded) .help-content p:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.collection-creator .header .main-help:not(.expanded) .help-content>*:not(:first-child){display:none}.collection-creator .header .main-help.expanded{max-height:none}.collection-creator .header .main-help .help-content i{cursor:help;border-bottom:1px dotted grey;font-style:normal}.collection-creator .header .main-help .help-content ul,.collection-creator .header .main-help .help-content li{list-style:circle;margin-left:16px}.collection-creator .header .main-help .help-content .less-help{display:inline-block;width:100%;text-align:right}.collection-creator .header .main-help .more-help{float:right}.collection-creator .header .column-headers .column-header .unpaired-filter{width:100%}.collection-creator .header .column-headers .column-header .unpaired-filter .search-query{width:100%;height:22px}.collection-creator .header .paired-column a:not(:last-child){margin-right:8px}.collection-creator .header .reverse-column .column-title{text-align:right}.collection-creator .flex-bordered-vertically{height:0;border:1px solid lightgrey;border-width:1px 0 1px 0}.collection-creator .column-datasets{list-style:none;overflow:hidden}.collection-creator .column-datasets .dataset{height:32px;margin-top:2px;border:1px solid lightgrey;border-radius:3px;padding:0 8px 0 8px;line-height:28px;cursor:pointer}.collection-creator .column-datasets .dataset:last-of-type{margin-bottom:2px}.collection-creator .column-datasets .dataset.unpaired{border-color:grey}.collection-creator .column-datasets .dataset.paired{margin-left:34px;margin-right:34px;border:2px solid grey;background:#aff1af}.collection-creator .column-datasets .dataset.paired span{display:inline-block;overflow:hidden}.collection-creator .column-datasets .dataset.paired .forward-dataset-name{text-align:right;border-right:1px solid grey;padding-right:8px}.collection-creator .column-datasets .dataset.paired .forward-dataset-name:after{margin-left:8px;font-family:FontAwesome;content:'\f061'}.collection-creator .column-datasets .dataset.paired .pair-name-column{text-align:center}.collection-creator .column-datasets .dataset.paired .pair-name-column .pair-name:hover{text-decoration:underline}.collection-creator .column-datasets .dataset.paired .reverse-dataset-name{border-left:1px solid grey;padding-left:8px}.collection-creator .column-datasets .dataset.paired .reverse-dataset-name:before{margin-right:8px;font-family:FontAwesome;content:'\f060'}.collection-creator .column-datasets .dataset:hover{border-color:black}.collection-creator .column-datasets .dataset.selected{border-color:black;background:black;color:white}.collection-creator .column-datasets .dataset.selected a{color:white}.collection-creator .unpaired-columns{height:0;border:1px solid lightgrey;border-width:1px 0 1px 0}.collection-creator .unpaired-columns .forward-column .dataset.unpaired{margin-right:32px}.collection-creator .unpaired-columns .paired-column .dataset.unpaired{border-color:lightgrey;color:lightgrey}.collection-creator .unpaired-columns .paired-column .dataset.unpaired:hover{border-color:black;color:black}.collection-creator .unpaired-columns .reverse-column .dataset.unpaired{text-align:right;margin-left:32px}.collection-creator .flexible-partition .flexible-partition-drag{width:100%;height:8px;cursor:ns-resize;line-height:2px;text-align:center;color:lightgrey}.collection-creator .flexible-partition .flexible-partition-drag:before{content:'...'}.collection-creator .flexible-partition .flexible-partition-drag:hover{background:lightgrey;color:black}.collection-creator .flexible-partition .column-header{width:100%;text-align:center}.collection-creator .flexible-partition .column-header .column-title{display:inline}.collection-creator .flexible-partition .column-header>*:not(:last-child){margin-right:8px}.collection-creator .flexible-partition .column-header .remove-extensions-link{display:none}.collection-creator .paired-columns{height:0;border:1px solid lightgrey;border-width:1px 0 1px 0;margin-bottom:8px}.collection-creator .paired-columns .column-datasets{width:100%;overflow:auto}.collection-creator .paired-columns .unpair-btn{float:right;margin-top:-32px;width:31px;height:32px;border-color:transparent;background:transparent;font-size:120%}.collection-creator .paired-columns .unpair-btn:hover{border-color:#bfbfbf;background:#dedede}.collection-creator .paired-columns .empty-message{text-align:center}.collection-creator .element-drop-placeholder{width:60px;height:3px;margin:2px 0 0 14px;background:black}.collection-creator .element-drop-placeholder:before{float:left;font-size:120%;margin:-9px 0 0 -8px;font-family:FontAwesome;content:'\f0da'}.collection-creator .element-drop-placeholder:last-child{margin-bottom:8px}.collection-creator .footer{padding-bottom:8px}.collection-creator .footer .attributes .remove-extensions-prompt{line-height:32px}.collection-creator .footer .attributes .remove-extensions-prompt .remove-extensions{display:inline-block;width:24px;height:24px}.collection-creator .footer .attributes .collection-name-prompt{margin:5px 4px 0 0}.collection-creator .footer .attributes .collection-name-prompt.validation-warning:before{content:'(required)';margin-right:4px;color:red}.collection-creator .footer .attributes .collection-name{width:50%}.collection-creator .footer .attributes .collection-name.validation-warning{border-color:red}.collection-creator .footer .actions .other-options>*{display:none;margin-left:4px}.collection-creator.list-collection-creator .footer{margin-top:8px}.collection-creator.list-collection-creator .main-help{cursor:pointer}.collection-creator.list-collection-creator .collection-elements-controls{margin-bottom:8px}.collection-creator.list-collection-creator .collection-elements-controls .clear-selected{float:right !important;float:right;display:none}.collection-creator.list-collection-creator .collection-elements{max-height:400px;border:0 solid lightgrey;overflow-y:auto;overflow-x:hidden}.collection-creator.list-collection-creator .collection-element{height:32px;margin:2px 4px 0 4px;opacity:1;border:1px solid lightgrey;border-radius:3px;padding:0 8px 0 8px;line-height:28px;cursor:pointer;overflow:hidden}.collection-creator.list-collection-creator .collection-element:last-of-type{margin-bottom:2px}.collection-creator.list-collection-creator .collection-element:hover{border-color:black}.collection-creator.list-collection-creator .collection-element.selected{border-color:black;background:black;color:white}.collection-creator.list-collection-creator .collection-element.selected a{color:white}.collection-creator.list-collection-creator .collection-element.dragging{opacity:.4}.collection-creator.list-collection-creator .collection-element.dragging button{display:none}.collection-creator.list-collection-creator .collection-element .name:hover{text-decoration:underline}.collection-creator.list-collection-creator .collection-element button{margin-top:3px}.collection-creator.list-collection-creator .collection-element .discard{float:right !important;float:right}.collection-creator.list-collection-creator .element-drop-placeholder{margin-left:8px}.collection-creator.list-collection-creator .element-drop-placeholder:before{margin:-8.5px 0 0 -8px}.collection-creator.list-collection-creator .empty-message{margin:8px;color:grey;font-style:italic;text-align:center}.collection-creator.list-collection-creator .no-elements-left-message{text-align:left}.collection-creator.pair-collection-creator .footer{margin-top:8px}.collection-creator.pair-collection-creator .main-help{cursor:pointer}.collection-creator.pair-collection-creator .collection-elements-controls{margin-bottom:8px}.collection-creator.pair-collection-creator .collection-elements-controls .clear-selected{float:right !important;float:right;display:none}.collection-creator.pair-collection-creator .collection-elements{max-height:400px;border:0 solid lightgrey;overflow-y:auto;overflow-x:hidden}.collection-creator.pair-collection-creator .collection-element{height:32px;margin:2px 4px 0 4px;opacity:1;border:1px solid lightgrey;border-radius:3px;padding:0 8px 0 8px;line-height:28px;cursor:pointer;overflow:hidden}.collection-creator.pair-collection-creator .collection-element:last-of-type{margin-bottom:2px}.collection-creator.pair-collection-creator .collection-element:hover{border-color:black}.collection-creator.pair-collection-creator .collection-element button{margin-top:3px}.collection-creator.pair-collection-creator .collection-element .identifier:after{content:':';margin-right:6px}.collection-creator.pair-collection-creator .collection-element .name:hover{text-decoration:none}.collection-creator.pair-collection-creator .empty-message{margin:8px;color:grey;font-style:italic;text-align:center}.collection-creator.list-of-pairs-collection-creator .column-headers{margin-bottom:8px}.search-input .search-query{width:100%;padding-right:24px}.search-input .search-clear,.search-input .search-loading{position:relative;display:inline-block;float:right;margin-top:-24px;margin-right:4px;font-size:1.4em;line-height:23px;color:grey}.search-input .search-clear:hover{color:#303030}.dataset-choice{border:1px solid lightgrey;border-radius:3px;overflow:hidden;padding:10px 8px 8px 8px}.dataset-choice:hover{border-color:black;cursor:pointer}.dataset-choice:hover>*{cursor:pointer}.dataset-choice .prompt{margin-right:8px}.dataset-choice .prompt:after{content:':'}.dataset-choice .prompt:empty{display:none}.dataset-choice .none-selected-msg{color:grey}.dataset-choice .selected{display:inline-block}.dataset-choice .selected .title{font-weight:bold}.dataset-choice .selected .subtitle{color:grey}.dataset-choice .selected .subtitle:before{content:'-';margin:0 4px 0 4px}.dataset-choice .selected .subtitle i{font-style:normal}.dataset-choice .selected .subtitle i:not(:last-child):after{content:', '}.dataset-choice.multi .selected{display:block;font-weight:normal}.dataset-choice.multi table{width:100%;margin-top:8px;cursor:pointer}.dataset-choice.multi table:hover{border-color:black}.dataset-choice.multi table tr:nth-child(even){background-color:aliceblue}.dataset-choice.multi table th{padding:0;font-weight:normal;font-size:80%;color:grey}.dataset-choice.multi table th:not(:last-child),.dataset-choice.multi table td:not(:last-child){padding-right:8px}.dataset-choice.multi table td.cell-name{font-weight:bold}.dataset-choice-modal .list-panel .list-item.dataset{border-left-width:1px;border-right-width:1px}.dataset-choice-modal .list-panel .controls .title .name{font-size:120%}.peek-column-selector{border-radius:3px;border:1px solid #5f6990}.peek-column-selector td,.peek-column-selector th{padding:4px 10px 4px 4px}.peek-column-selector th:last-child{width:100%}.peek-column-selector .top-left{width:10%;white-space:normal;vertical-align:top;text-align:right;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;font-weight:normal}.peek-column-selector .renamable-header:hover{background-color:black}.peek-column-selector .control td.control-prompt{background-color:#5f6990;padding:0 4px 0 8px;text-align:right;color:white}.peek-column-selector .control td{padding:1px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;color:grey}.peek-column-selector .control td .button{min-width:28px;border:1px solid grey;border-radius:3px;padding:4px;color:grey}.peek-column-selector .control td:hover .button{background-color:#eee;border:1px solid black;cursor:pointer;color:black}.peek-column-selector .control td.disabled .button,.peek-column-selector .control td.disabled:hover .button{background-color:transparent;border:1px solid #ccc;cursor:not-allowed;color:#ccc}.peek-column-selector .control td.selected .button{background-color:black;border:1px solid black;color:white}.pagination{margin:0}.pagination-scroll-container{display:inline-block;background-color:#f8f8f8;border-radius:3px;border:1px solid #bfbfbf;overflow:auto}.pagination-scroll-container .pagination-page-list{margin:3px 0 3px 0}.pagination-scroll-container .pagination-page-list>li:first-child>a,.pagination-scroll-container .pagination-page-list>li:first-child>span{border-radius:0;border-left:0}.pagination-scroll-container .pagination-page-list>li:last-child>a,.pagination-scroll-container .pagination-page-list>li:last-child>span{border-radius:0}.pagination-scroll-container .pagination-page-list>li>a{float:none;position:static;border:1px solid #bfbfbf;border-width:0 0 0 1px}.toolMenuContainer{color:#000;background:#dfe5f9;min-height:100%;padding:5px 10px}div.toolSectionPad{margin:0;padding:0;height:5px;font-size:0}div.toolSectionWrapper{margin-bottom:5px}div.toolSectionDetailsInner{margin-left:5px;margin-right:5px}div.toolSectionTitle{font-weight:bold}div.toolPanelLabel{padding-top:10px;padding-bottom:5px;font-weight:bold;color:gray;text-transform:uppercase}div.toolTitle{padding-top:5px;padding-bottom:5px;margin-left:16px;margin-right:10px;display:list-item;list-style:square outside}div.toolSectionBody div.toolPanelLabel{padding-top:5px;padding-bottom:5px;margin-left:16px;margin-right:10px;display:list-item;list-style:none outside}div.toolTitleNoSection{padding-bottom:5px;font-weight:bold}#tool-search{padding-top:5px;padding-bottom:10px;position:relative}#loading_indicator{position:fixed;right:10px;top:10px;height:32px;width:32px;display:none;background:url(largespinner.gif)}#content_table td{text-align:right;white-space:nowrap;padding:2px 10px}#content_table th{white-space:nowrap;padding:2px 10px}#content_table td.stringalign{text-align:left}#content_table .dark_row{background-color:#ddd}#content_table th{background-color:#aaa}.toolMenuAndView .toolForm{float:left;background-color:white;margin:10px}.text-and-autocomplete-select{background:none;position:relative;padding-right:18px}.text-and-autocomplete-select:after{margin-top:6px;position:absolute;top:2px;right:6px;width:10px;height:10px;display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:"";opacity:80;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=8000);filter:alpha(opacity=8000)}.btn-default .text-and-autocomplete-select:after{border-top-color:#333}.btn-primary .text-and-autocomplete-select:after,.btn-success .text-and-autocomplete-select:after,.btn-warning .text-and-autocomplete-select:after,.btn-danger .text-and-autocomplete-select:after,.btn-info .text-and-autocomplete-select:after{border-top-color:#fff}.icon-button.general-question{background:url(question-octagon-frame.png) no-repeat;float:right;margin-top:3px;margin-right:4px}.icon-button.tag-question{background:url(question-balloon.png) no-repeat;float:right;margin-top:3px;margin-right:4px}.icon-button.tag{background-image:url(sprite-fugue.png);background-position:-16px -112px;width:16px;height:16px}.icon-button.tags{background-image:url(sprite-fugue.png);background-position:-32px -112px;width:16px;height:16px}.icon-button.tag--plus{background-image:url(sprite-fugue.png);background-position:0 -112px;width:16px;height:16px}.icon-button.toggle-expand{background-image:url(sprite-fugue.png);background-position:-80px -112px;width:16px;height:16px}.icon-button.toggle{background-image:url(sprite-fugue.png);background-position:-48px -112px;width:16px;height:16px}.icon-button.toggle:hover{background-image:url(sprite-fugue.png);background-position:-96px -112px;width:16px;height:16px}.icon-button.arrow-circle{background-image:url(sprite-fugue.png);background-position:-32px 0;width:16px;height:16px}.icon-button.chevron{background-image:url(sprite-fugue.png);background-position:-32px -64px;width:16px;height:16px}.icon-button.bug{background-image:url(sprite-fugue.png);background-position:-64px -32px;width:16px;height:16px}.icon-button.disk{background-image:url(sprite-fugue.png);background-position:-16px -80px;width:16px;height:16px}.icon-button.information{background-image:url(sprite-fugue.png);background-position:-96px -80px;width:16px;height:16px}.icon-button.annotate{background-image:url(sprite-fugue.png);background-position:-112px -96px;width:16px;height:16px}.icon-button.go-to-full-screen{background-image:url(sprite-fugue.png);background-position:0 0;width:16px;height:16px}.icon-button.import{background-image:url(sprite-fugue.png);background-position:-112px -80px;width:16px;height:16px}.icon-button.plus-button{background-image:url(sprite-fugue.png);background-position:-112px -48px;width:16px;height:16px}.icon-button.plus-button:hover{background-image:url(sprite-fugue.png);background-position:-112px -64px;width:16px;height:16px}.icon-button.gear{background-image:url(sprite-fugue.png);background-position:-96px 0;width:16px;height:16px}.icon-button.chart_curve{background-image:url(sprite-fugue.png);background-position:-64px -48px;width:16px;height:16px}.icon-button.disk--arrow{background-image:url(sprite-fugue.png);background-position:-80px -64px;width:16px;height:16px}.icon-button.disk--arrow:hover{background-image:url(sprite-fugue.png);background-position:0 -80px;width:16px;height:16px}.icon-button.cross-circle{background-image:url(sprite-fugue.png);background-position:-80px 0;width:16px;height:16px}.icon-button.cross-circle:hover{background-image:url(sprite-fugue.png);background-position:-80px -16px;width:16px;height:16px}.icon-button.arrow-split{background-image:url(sprite-fugue.png);background-position:-16px -32px;width:16px;height:16px}.icon-button.arrow-split:hover{background-image:url(sprite-fugue.png);background-position:-32px -32px;width:16px;height:16px}.icon-button.chevron-expand:hover{background-image:url(sprite-fugue.png);background-position:-16px -64px;width:16px;height:16px}.icon-button.chevron-expand{background-image:url(sprite-fugue.png);background-position:0 -64px;width:16px;height:16px}#for_bears{display:none} \ No newline at end of file diff --git a/static/style/blue/reports.css b/static/style/blue/reports.css new file mode 100644 index 00000000000..be512d2cb21 --- /dev/null +++ b/static/style/blue/reports.css @@ -0,0 +1 @@ +.reports-panel-container{position:absolute;top:30px;bottom:10px;overflow:scroll;width:100%;padding:10px}#spark_time_select{display:inline-block}#spark_select{height:23px;width:30px;padding:0;border-radius:2px}.jqstooltip{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.dir_arrow{visibility:hidden}#back_button,#next_button,#curr_button,.miss_pages,.page_button{position:relative;float:left;height:24px;width:23px;margin:0 -1px 0 0;padding-top:2.5px;border:1px solid #bfbfbf;z-index:0}#back_button{cursor:pointer;border-top-left-radius:3px;border-bottom-left-radius:3px}#curr_button{background:#ebd9b2;border:1px solid #5f6990;z-index:1}#formHeader>tbody>tr{vertical-align:middle}#next_button{cursor:pointer;border-top-right-radius:3px;border-bottom-right-radius:3px}#page_selector{cursor:default;position:relative;text-align:center}.page_button>a{text-decoration:none;padding:8px;margin:-8px;height:100%;width:100%}#entries_edit{position:relative;padding:0;width:36px;height:20px;text-align:center;border:1px solid black;border-radius:3px;z-index:6}#entry_submit{cursor:default;position:relative;display:inline-block;border:1px solid black;padding:0;width:22px;height:22px;border-radius:11px;background-color:#ebd9b2;text-align:center;opacity:0;z-index:0}.half_width{width:50%}.third_width{width:30%}.quarter_width{width:25%} \ No newline at end of file diff --git a/templates/base.mako b/templates/base.mako index dba96d2d483..0752855bd95 100644 --- a/templates/base.mako +++ b/templates/base.mako @@ -48,6 +48,7 @@ "libs/jquery/jquery", "libs/jquery/jquery.migrate", "libs/jquery/select2", + "libs/jquery.sparklines", "libs/bootstrap", "libs/underscore", "libs/backbone/backbone", diff --git a/templates/display_base.mako b/templates/display_base.mako index 7a114ed3c46..a446f81e4a2 100644 --- a/templates/display_base.mako +++ b/templates/display_base.mako @@ -70,8 +70,8 @@ border-top: 4px solid #DDDDDD; } - ## Make sure that history items and workflow steps do not get too long. - .historyItemContainer, .toolForm { + ## Make sure that workflow steps do not get too long. + .toolForm { max-width: 500px; } @@ -81,12 +81,6 @@ margin-bottom: 10px; } - ## Add border to history item container. - .historyItemContainer { - padding-right: 3px; - border-right-style: solid; - border-right-color: #66AA66; - } diff --git a/templates/page_base.mako b/templates/page_base.mako index 76f4490ec79..5e5d7c16e4c 100644 --- a/templates/page_base.mako +++ b/templates/page_base.mako @@ -14,7 +14,6 @@ <%def name="get_pages( sort_id, order, page_specs, *args, **kwargs )"> ## Creates the page buttons ${get_page_script()} - ${get_page_css()}
↞
@@ -61,92 +60,6 @@
-<%def name="get_page_css()"> - <%doc> - Page Styling - - - - <%doc> - Entry Styling - - - - <%def name="get_page_script()"> + \ No newline at end of file diff --git a/templates/webapps/galaxy/cloud/index.mako b/templates/webapps/galaxy/cloud/index.mako index 3dbb0fa22e5..9b5e98f5a08 100644 --- a/templates/webapps/galaxy/cloud/index.mako +++ b/templates/webapps/galaxy/cloud/index.mako @@ -176,7 +176,7 @@
-
+
This is your AWS Secret Key, also found in the Security Credentials section of the AWS Console.
diff --git a/templates/webapps/galaxy/history/display.mako b/templates/webapps/galaxy/history/display.mako index 82bf1636059..977ae417e09 100644 --- a/templates/webapps/galaxy/history/display.mako +++ b/templates/webapps/galaxy/history/display.mako @@ -46,7 +46,7 @@
-${ galaxy_client.load( app='app', historyId=historyId, history=history, hdas=hdas, jobs=jobs, tools=tools ) } +${ galaxy_client.load( app='app', historyId=historyId, history=history, contents=contents, jobs=jobs, tools=tools ) } diff --git a/templates/webapps/galaxy/history/view.mako b/templates/webapps/galaxy/history/view.mako index 10a285601cb..abd0bb33f1a 100644 --- a/templates/webapps/galaxy/history/view.mako +++ b/templates/webapps/galaxy/history/view.mako @@ -168,7 +168,7 @@ a.btn { userIsOwner = ${ 'true' if user_is_owner else 'false' }, isCurrent = ${ 'true' if history_is_current else 'false' }, historyJSON = ${ h.dumps( history ) }, - hdaJSON = ${ h.dumps( hdas ) }, + contentsJSON = ${ h.dumps( contents ) }, panelToUse = ( userIsOwner )? //TODO: change class names ({ location: 'mvc/history/history-panel-edit', className: 'HistoryPanelEdit' }): diff --git a/templates/webapps/galaxy/library/common/ldda_info.mako b/templates/webapps/galaxy/library/common/ldda_info.mako index 562a1c61443..d17cf5d53d6 100644 --- a/templates/webapps/galaxy/library/common/ldda_info.mako +++ b/templates/webapps/galaxy/library/common/ldda_info.mako @@ -28,6 +28,15 @@ ${parent.javascripts()} +<%def name="stylesheets()"> + ${parent.stylesheets()} + + + %if current_version: This is the latest version of this library dataset %else: @@ -168,7 +177,7 @@ %endfor %if ldda.peek != "no peek":
-
+
${util.unicodify( ldda.display_peek() )}
diff --git a/templates/webapps/galaxy/library/common/ldda_permissions.mako b/templates/webapps/galaxy/library/common/ldda_permissions.mako index cabd26f1542..c1b36f21414 100644 --- a/templates/webapps/galaxy/library/common/ldda_permissions.mako +++ b/templates/webapps/galaxy/library/common/ldda_permissions.mako @@ -2,6 +2,16 @@ <%namespace file="/message.mako" import="render_msg" /> <%namespace file="/dataset/security_common.mako" import="render_permission_form" /> +<%def name="stylesheets()"> + ${parent.stylesheets()} + + + <% if len( lddas ) > 1: name_str = '%d selected datasets' % len( lddas ) @@ -27,7 +37,7 @@
- ${ldd_assoc.name | h} + ${ldd_assoc.name | h}
diff --git a/templates/webapps/galaxy/workflow/build_from_current_history.mako b/templates/webapps/galaxy/workflow/build_from_current_history.mako index 8b3a1c6f30c..f05752a4f6f 100644 --- a/templates/webapps/galaxy/workflow/build_from_current_history.mako +++ b/templates/webapps/galaxy/workflow/build_from_current_history.mako @@ -12,8 +12,14 @@ margin-top: 10px; margin-bottom: 10px; } - div.historyItem { - margin-right: 0; + .list-item.dataset.history-content { + padding: 8px 10px; + } + .list-item.dataset.history-content .title-bar { + cursor: auto; + } + input[type="checkbox"].as-input { + margin-left: 8px; } th { border-bottom: solid black 1px; @@ -43,26 +49,26 @@ %else: <% data_state = data.state %> %endif -
- - - %if data_state != 'ok': - - %endif - + +
-
-
-
- ${data.hid}: ${data.display_name()} + <% encoded_id = trans.app.security.encode_id( data.id ) %> + + + - -
+
+
+
+ ${data.hid} + ${data.display_name()} +
-
- %if disabled: -
-
${_('Treat as input dataset')}
- %endif -
+ %if disabled: + + + %endif + +

The following list contains each tool that was run to create the @@ -88,7 +94,7 @@ into a workflow will be shown in gray.

- + @@ -104,7 +110,7 @@ into a workflow will be shown in gray.

cls += " toolFormDisabled" disabled = True tool_name = getattr( job, 'name', tool_name ) - else: + else: tool = app.toolbox.get_tool( job.tool_id ) if tool: tool_name = tool.name @@ -120,7 +126,7 @@ into a workflow will be shown in gray.

if disabled: disabled_why = getattr( job, 'disabled_why', "This tool cannot be used in workflows" ) %> - + diff --git a/templates/webapps/reports/base_panels.mako b/templates/webapps/reports/base_panels.mako index d2c3f3623ff..84bd5624026 100644 --- a/templates/webapps/reports/base_panels.mako +++ b/templates/webapps/reports/base_panels.mako @@ -1,5 +1,11 @@ <%inherit file="/base/base_panels.mako"/> +<%def name="stylesheets()"> + ${parent.stylesheets()} + ${h.css( "reports" )} + + + ## Default title <%def name="title()">Galaxy Reports diff --git a/templates/webapps/reports/index.mako b/templates/webapps/reports/index.mako index 0ab41755770..f47cc35fe2b 100644 --- a/templates/webapps/reports/index.mako +++ b/templates/webapps/reports/index.mako @@ -53,7 +53,7 @@ - +
@@ -74,6 +74,7 @@
diff --git a/templates/webapps/reports/jobs_errors_per_tool.mako b/templates/webapps/reports/jobs_errors_per_tool.mako index 6977be38960..e6ac96c10a1 100644 --- a/templates/webapps/reports/jobs_errors_per_tool.mako +++ b/templates/webapps/reports/jobs_errors_per_tool.mako @@ -1,6 +1,10 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline, make_spark_settings" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> +<%! + import re +%> %if message: ${render_msg( message, 'done' )} @@ -12,30 +16,35 @@ ${get_css()}

Jobs In Error Per Tool

-
Click Tool ID to view details. Click error number to view job details.
+
+

Click Tool ID to view details. Click error number to view job details.

+ Graph goes from present to past for ${make_spark_settings( "jobs", "errors_per_tool", limit, sort_id, order, time_period )} +
${_('Tool')}
@@ -143,7 +149,7 @@ into a workflow will be shown in gray.

%for _, data in datasets: -
${history_item( data, disabled )}
+
${history_item( data, disabled )}
%endfor
%if len( jobs ) == 0: %else: - %if is_user_jobs_only: - %else: - %endif + <% ctr = 0 %> %for job in jobs: + <% key = re.sub(r'\W+', '', job[1]) %> %if ctr % 2 == 1: %else: @@ -43,6 +52,11 @@ ${get_css()} %endif + %try: + ${make_sparkline(key, trends[key], "bar", "/ " + time_period[:-1])} + %except KeyError: + %endtry + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/jobs_per_month_all.mako b/templates/webapps/reports/jobs_per_month_all.mako index c8c044e96ae..9d72ceb6a50 100644 --- a/templates/webapps/reports/jobs_per_month_all.mako +++ b/templates/webapps/reports/jobs_per_month_all.mako @@ -1,5 +1,6 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> %if message: @@ -12,30 +13,32 @@ ${get_css()}

Jobs Per Month

-
Click Month to view details.
+
Click Month to view details. Graph goes from the 1st to the last of the month.
There are no jobs in the error state.
- ${get_sort_url(sort_id, order, 'tool_id', 'jobs', 'errors_per_tool', 'Tool ID')} + + ${get_sort_url(sort_id, order, 'tool_id', 'jobs', 'errors_per_tool', 'Tool ID', spark_time=time_period)} ${arrow} - ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'errors_per_tool', 'User Jobs in Error')} + + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'errors_per_tool', 'User Jobs in Error', spark_time=time_period)} ${arrow} - ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'errors_per_tool', 'User and Monitor Jobs in Error')} + + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'errors_per_tool', 'User and Monitor Jobs in Error', spark_time=time_period)} ${arrow}
${job[1]} ${job[0]}
%if len( jobs ) == 0: %else: - %if is_user_jobs_only: - %else: - %endif + <% ctr = 0 %> %for job in jobs: + <% key = str(job[2]) + str(job[3]) %> %if ctr % 2 == 1: %else: @@ -43,6 +46,8 @@ ${get_css()} %endif + ${make_sparkline(key, trends[key], "bar", "/ day")} + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/jobs_per_month_in_error.mako b/templates/webapps/reports/jobs_per_month_in_error.mako index b1eca3b99f1..7fe813adcb7 100644 --- a/templates/webapps/reports/jobs_per_month_in_error.mako +++ b/templates/webapps/reports/jobs_per_month_in_error.mako @@ -1,5 +1,6 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> %if message: @@ -18,24 +19,26 @@ ${get_css()} %else: - %if is_user_jobs_only: - %else: - %endif + <% ctr = 0 %> %for job in jobs: + <% key = str(job[2]) + str(job[3]) %> %if ctr % 2 == 1: %else: @@ -43,6 +46,8 @@ ${get_css()} %endif + ${make_sparkline(key, trends[key], "bar", "/ day")} + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/jobs_per_tool.mako b/templates/webapps/reports/jobs_per_tool.mako index 90a866400d9..54818cea6ac 100644 --- a/templates/webapps/reports/jobs_per_tool.mako +++ b/templates/webapps/reports/jobs_per_tool.mako @@ -1,41 +1,49 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline, make_spark_settings" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> +<%! + import re +%> %if message: ${render_msg( message, 'done' )} %endif ${get_css()} - +

Jobs Per Tool

-
Click Tool ID to view details
+
+ Click Tool ID to view details. Graph goes from present to past ${make_spark_settings( "jobs", "per_tool", limit, sort_id, order, time_period )} +
There are no jobs.
+ ${get_sort_url(sort_id, order, 'date', 'jobs', 'per_month_all', 'Month')} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_month_all', 'User Jobs')} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_month_all', 'User and Monitor Jobs')} ${arrow}
${job[2]} ${job[3]} ${job[1]}
There are no jobs in the error state.
+ ${get_sort_url(sort_id, order, 'date', 'jobs', 'per_month_in_error', 'Month')} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_month_in_error', 'User Jobs')} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_month_in_error', 'User and Monitor Jobs')} ${arrow}
${job[2]} ${job[3]} ${job[1]}
%if len( jobs ) == 0: %else: - %if is_user_jobs_only: - %else: - %endif + <% ctr = 0 %> %for job in jobs: + <% key = re.sub(r'\W+', '', job[0]) %> %if ctr % 2 == 1: %else: @@ -43,6 +51,11 @@ ${get_css()} %endif + %try: + ${make_sparkline(key, trends[key], "bar", "/ " + time_period[:-1])} + %except KeyError: + %endtry + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/jobs_per_user.mako b/templates/webapps/reports/jobs_per_user.mako index 4726ca9f7ab..6dd741eb958 100644 --- a/templates/webapps/reports/jobs_per_user.mako +++ b/templates/webapps/reports/jobs_per_user.mako @@ -1,6 +1,10 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline, make_spark_settings" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> +<%! + import re +%> %if message: ${render_msg( message, 'done' )} @@ -12,23 +16,27 @@ ${get_css()}

Jobs Per User

-
Click User to view details.
+
+ Click User to view details. Graph goes from present to past ${make_spark_settings( "jobs", "per_user", limit, sort_id, order, time_period )} +
There are no jobs.
- ${get_sort_url(sort_id, order, 'tool_id', 'jobs', 'per_tool', 'Tool ID')} + + ${get_sort_url(sort_id, order, 'tool_id', 'jobs', 'per_tool', 'Tool ID', spark_time=time_period)} ${arrow} - ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_tool', 'User Jobs')} + + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_tool', 'User Jobs', spark_time=time_period)} ${arrow} - ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_tool', 'User and Monitor Jobs')} + + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_tool', 'User and Monitor Jobs', spark_time=time_period)} ${arrow}
${job[0]} ${job[1]}
%if len( jobs ) == 0: %else: - - + <% ctr = 0 %> %for job in jobs: + <% key = re.sub(r'\W+', '', job[0]) %> %if ctr % 2 == 1: %else: @@ -36,6 +44,11 @@ ${get_css()} %endif + %try: + ${make_sparkline(key, trends[key], "bar", "/ " + time_period[:-1])} + %except KeyError: + %endtry + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/jobs_specified_month_all.mako b/templates/webapps/reports/jobs_specified_month_all.mako index 7f6085e4f54..ad3adf1a4c2 100644 --- a/templates/webapps/reports/jobs_specified_month_all.mako +++ b/templates/webapps/reports/jobs_specified_month_all.mako @@ -1,5 +1,6 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> <%namespace file="/page_base.mako" import="get_pages, get_entry_selector" /> @@ -31,41 +32,46 @@ ${get_css()} %else: - - - + %if is_user_jobs_only: - %else: - %endif + <% ctr = 0 entries = 1 %> %for job in jobs: + <% key = job[1] %> + %if entries > page_specs.entries: <%break%> %endif - + %if ctr % 2 == 1: %else: %endif + + ${make_sparkline(key, trends[key], "bar", "/ hour")} + <% ctr += 1 diff --git a/templates/webapps/reports/jobs_specified_month_in_error.mako b/templates/webapps/reports/jobs_specified_month_in_error.mako index 3ca44979401..b1c40bc44be 100644 --- a/templates/webapps/reports/jobs_specified_month_in_error.mako +++ b/templates/webapps/reports/jobs_specified_month_in_error.mako @@ -1,5 +1,6 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> %if message: @@ -17,33 +18,37 @@ ${get_css()} %else: - - + %if is_user_jobs_only: - %else: - %endif + <% ctr = 0 %> %for job in jobs: + <% key = job[1] %> %if ctr % 2 == 1: %else: %endif - - + + + ${make_sparkline(key, trends[key], "bar", "/ hour")} + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/jobs_tool_per_month.mako b/templates/webapps/reports/jobs_tool_per_month.mako index 916bfb661f3..86877ada9f0 100644 --- a/templates/webapps/reports/jobs_tool_per_month.mako +++ b/templates/webapps/reports/jobs_tool_per_month.mako @@ -1,5 +1,6 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> %if message: @@ -13,30 +14,35 @@ ${get_css()}

Jobs per month for tool "${tool_id}"

-
Click Jobs to view details
+
+

Click Jobs to view details.

+

Graph goes from first of the month to the last

+
There are no jobs.
- ${get_sort_url(sort_id, order, 'user_email', 'jobs', 'per_user', 'User')} + + ${get_sort_url(sort_id, order, 'user_email', 'jobs', 'per_user', 'User', spark_time=time_period)} ${arrow} - ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_user', 'Total Jobs')} + + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'per_user', 'Total Jobs', spark_time=time_period)} ${arrow}
${job[0]} ${job[1]}
There are no jobs for ${month_label} ${year_label}
Day + Day ${get_sort_url(sort_id, order, 'date', 'jobs', 'specified_month_all', 'Date', page=page_specs.page, entries=page_specs.entries)} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'specified_month_all', 'User Jobs', page=page_specs.page, entries=page_specs.entries)} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'specified_month_all', 'User and Monitor Jobs', page=page_specs.page, entries=page_specs.entries)} ${arrow}
${job[0]} ${month_label} ${job[1]}, ${year_label} ${job[2]}
There are no jobs in the error state for ${month_label} ${year_label}
Day + Day ${get_sort_url(sort_id, order, 'date', 'jobs', 'specified_month_in_error', 'Date')} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'specified_month_in_error', 'User Jobs in Error')} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'specified_month_in_error', 'User and Monitor Jobs in Error')} ${arrow}
${job[0]}${month_label} ${job[3]}, ${year_label}${job[2]}${month_label} ${job[1]}, ${year_label}${job[2]}
%if len( jobs ) == 0: %else: - %if is_user_jobs_only: - %else: - %endif + <% ctr = 0 %> %for job in jobs: + <% key = job[2] + job[3] %> %if ctr % 2 == 1: %else: @@ -44,6 +50,8 @@ ${get_css()} %endif + ${make_sparkline(key, trends[key], "bar", "/ day")} + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/jobs_user_per_month.mako b/templates/webapps/reports/jobs_user_per_month.mako index 7acbd73b0d5..90a0c1aa1e1 100644 --- a/templates/webapps/reports/jobs_user_per_month.mako +++ b/templates/webapps/reports/jobs_user_per_month.mako @@ -1,13 +1,16 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> -<% from galaxy import util %> +<% + from galaxy import util +%> %if message: ${render_msg( message, 'done' )} %endif - + ${get_css()} <% @@ -18,23 +21,28 @@ ${get_css()}

Jobs per month for user "${_email}"

-

Click Total Jobs to see the user's jobs for that month

+

+

Click Total Jobs to see the user's jobs for that month

+

Graph goes from first of the month to the last

+

There are no jobs for tool "${tool_id}"
+ ${get_sort_url(sort_id, order, 'date', 'jobs', 'tool_per_month', 'Month', tool_id=tool_id)} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'tool_per_month', 'User Jobs', tool_id=tool_id)} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'tool_per_month', 'User and Monitor Jobs', tool_id=tool_id)} ${arrow}
${job[2]} ${job[3]} ${job[1]}
%if len( jobs ) == 0: %else: - - + <% ctr = 0 %> %for job in jobs: + <% key = job[2] + job[3] %> %if ctr % 2 == 1: %else: @@ -42,6 +50,8 @@ ${get_css()} %endif + ${make_sparkline(key, trends[key], "bar", "/ day")} + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/registered_users_per_month.mako b/templates/webapps/reports/registered_users_per_month.mako index 5b54030f52a..8653a7741b6 100644 --- a/templates/webapps/reports/registered_users_per_month.mako +++ b/templates/webapps/reports/registered_users_per_month.mako @@ -17,11 +17,11 @@ ${get_css()} %else: - - diff --git a/templates/webapps/reports/registered_users_specified_month.mako b/templates/webapps/reports/registered_users_specified_month.mako index 0f63a3da3ce..f912d6aca36 100644 --- a/templates/webapps/reports/registered_users_specified_month.mako +++ b/templates/webapps/reports/registered_users_specified_month.mako @@ -14,8 +14,8 @@ %else: - - + + <% ctr = 0 %> %for user in users: diff --git a/templates/webapps/reports/requests_per_month_all.mako b/templates/webapps/reports/requests_per_month_all.mako index 2cd67314e45..a36ced7e8ee 100644 --- a/templates/webapps/reports/requests_per_month_all.mako +++ b/templates/webapps/reports/requests_per_month_all.mako @@ -13,8 +13,8 @@ %else: - - + + <% ctr = 0 %> %for request in requests: diff --git a/templates/webapps/reports/requests_per_user.mako b/templates/webapps/reports/requests_per_user.mako index 0eff425889f..f2727b0e6df 100644 --- a/templates/webapps/reports/requests_per_user.mako +++ b/templates/webapps/reports/requests_per_user.mako @@ -13,8 +13,8 @@ %else: - - + + <% ctr = 0 %> %for request in requests: diff --git a/templates/webapps/reports/requests_user_per_month.mako b/templates/webapps/reports/requests_user_per_month.mako index e3a78a52118..b3d5a2823ca 100644 --- a/templates/webapps/reports/requests_user_per_month.mako +++ b/templates/webapps/reports/requests_user_per_month.mako @@ -20,11 +20,11 @@ ${get_css()} %else: - - diff --git a/templates/webapps/reports/users_last_access_date.mako b/templates/webapps/reports/users_last_access_date.mako index 9a0b31ae5dc..a3564792e05 100644 --- a/templates/webapps/reports/users_last_access_date.mako +++ b/templates/webapps/reports/users_last_access_date.mako @@ -34,11 +34,11 @@ ${get_css()}
There are no jobs for user "${ _email }"
+ ${get_sort_url(sort_id, order, 'date', 'jobs', 'user_per_month', 'Month', email=email )} ${arrow} + ${get_sort_url(sort_id, order, 'total_jobs', 'jobs', 'user_per_month', 'Total Jobs', email=email)} ${arrow}
${job[2]} ${job[3]} ${job[1]}
There are no registered users
+ ${get_sort_url(sort_id, order, 'date', 'users', 'registered_users_per_month', 'Month')} ${arrow} + ${get_sort_url(sort_id, order, 'num_users', 'users', 'registered_users_per_month', 'Number of Registrations')} ${arrow}
There are no user registrations for ${month_label} ${year_label}
DayNew RegistrationsDayNew Registrations
There are no requests
MonthTotalMonthTotal
There are no requests
UserTotal RequestsUserTotal Requests
There are no requests for user "${util.restore_text( email )}"
+ ${get_sort_url(sort_id, order, 'date', 'users' 'requests_users_per_month', 'Month')} ${arrow} Total + Total ${get_sort_url(sort_id, order, 'num_users', 'users' 'requests_users_per_month', 'Month')} ${arrow}
%if users: - - diff --git a/templates/webapps/reports/users_user_disk_usage.mako b/templates/webapps/reports/users_user_disk_usage.mako index d2511140f6c..c232bf1dcc6 100644 --- a/templates/webapps/reports/users_user_disk_usage.mako +++ b/templates/webapps/reports/users_user_disk_usage.mako @@ -27,11 +27,11 @@ ${get_css()}
+ ${get_sort_url(sort_id, order, 'zero', 'users', 'last_access_date', 'Email', days_not_logged_in=days_not_logged_in)} ${arrow} + ${get_sort_url(sort_id, order, 'one', 'users', 'last_access_date', 'Date of last Login', days_not_logged_in=days_not_logged_in)} ${arrow}
%if users: - - diff --git a/templates/webapps/reports/workflows_per_month_all.mako b/templates/webapps/reports/workflows_per_month_all.mako index 23f21d65167..559fc72727f 100644 --- a/templates/webapps/reports/workflows_per_month_all.mako +++ b/templates/webapps/reports/workflows_per_month_all.mako @@ -1,6 +1,7 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> +<%namespace file="/spark_base.mako" import="make_sparkline, make_spark_settings" /> %if message: ${render_msg( message, 'done' )} @@ -16,17 +17,19 @@ ${get_css()} %else: - - + <% ctr = 0 %> %for workflow in workflows: + <% key = str(workflow[2]) + str(workflow[3]) %> <% month = workflow[0] total = workflow[1] @@ -38,6 +41,11 @@ ${get_css()} %endif + %try: + ${make_sparkline(key, trends[key], "bar", "/ day")} + %except KeyError: + %endtry + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/workflows_per_user.mako b/templates/webapps/reports/workflows_per_user.mako index cf0596322a1..d656c292496 100644 --- a/templates/webapps/reports/workflows_per_user.mako +++ b/templates/webapps/reports/workflows_per_user.mako @@ -1,6 +1,11 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline, make_spark_settings" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> +<%! + import re + from galaxy import util +%> %if message: ${render_msg( message, 'done' )} @@ -11,30 +16,32 @@ ${get_css()}

Workflows Per User

+
Graph goes from present to past ${make_spark_settings( "jobs", "per_user", limit, sort_id, order, time_period )}
+ ${get_sort_url(sort_id, order, 'email', 'users', 'user_disk_usage', 'Email')} + ${get_sort_url(sort_id, order, 'disk_usage', 'users', 'user_disk_usage', 'Disk Usage')} ${arrow}
There are no workflows
+ ${get_sort_url(sort_id, order, 'date', 'workflows', 'per_month_all', 'Month')} ${arrow} + ${get_sort_url(sort_id, order, 'total_workflows', 'workflows', 'per_month_all', 'Total')} ${arrow}
${month} ${total}
%if len( workflows ) == 0: %else: - - + <% ctr = 0 %> %for workflow in workflows: <% - from galaxy import util email = workflow[0] total = workflow[1] user = trans.sa_session.query( trans.model.User ) \ .filter_by( email=email ) \ .one() + key = re.sub(r'\W+', '', workflow[0]) %> %if ctr % 2 == 1: @@ -43,6 +50,11 @@ ${get_css()} %endif + %try: + ${make_sparkline(key, trends[key], "bar", "/ " + time_period[:-1])} + %except KeyError: + %endtry + <% ctr += 1 %> %endfor diff --git a/templates/webapps/reports/workflows_per_workflow.mako b/templates/webapps/reports/workflows_per_workflow.mako new file mode 100644 index 00000000000..6c4c325e211 --- /dev/null +++ b/templates/webapps/reports/workflows_per_workflow.mako @@ -0,0 +1,64 @@ +<%inherit file="/base.mako"/> +<%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline, make_spark_settings" /> +<%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> +<%! + import re +%> + +%if message: + ${render_msg( message, 'done' )} +%endif + +${get_css()} + + +
+
+

Runs per Workflow

+
+ Graph goes from present to past ${make_spark_settings( 'workflows', 'per_workflow', limit, sort_id, order, time_period )} +
+
There are no workflows
- ${get_sort_url(sort_id, order, 'user_email', 'workflows', 'per_user', 'User')} + + ${get_sort_url(sort_id, order, 'user_email', 'workflows', 'per_user', 'User', spark_time=time_period)} ${arrow} - ${get_sort_url(sort_id, order, 'total_workflows', 'workflows', 'per_user', 'Total Workflows')} + + ${get_sort_url(sort_id, order, 'total_workflows', 'workflows', 'per_user', 'Total Workflows', spark_time=time_period)} ${arrow}
${email} ${total}
+ %if len( runs ) == 0: + + %else: + + + + + + + <% ctr = 0 %> + %for run in runs: + <% key = re.sub(r'\W+', '', str(run[2])) %> + %if ctr % 2 == 1: + + %else: + + %endif + + + + %try: + ${make_sparkline(key, trends[key], "bar", "/ " + time_period[:-1])} + %except KeyError: + %endtry + + + <% ctr += 1 %> + %endfor + %endif +
There are no runs.
+ ${get_sort_url(sort_id, order, 'workflow_id', 'workflows', 'per_workflow', 'Workflow ID', spark_time=time_period)} + ${arrow} + + ${get_sort_url(sort_id, order, 'workflow_name', 'workflows', 'per_workflow', 'Workflow Name', spark_time=time_period)} + ${arrow} + + ${get_sort_url(sort_id, order, 'total_runs', 'workflows', 'per_workflow', 'Workflow Runs', spark_time=time_period)} + ${arrow} +
${run[2]}${run[0]}${run[1]}
+
+
+ diff --git a/templates/webapps/reports/workflows_user_per_month.mako b/templates/webapps/reports/workflows_user_per_month.mako index eb895740b46..61207e354fe 100644 --- a/templates/webapps/reports/workflows_user_per_month.mako +++ b/templates/webapps/reports/workflows_user_per_month.mako @@ -1,5 +1,6 @@ <%inherit file="/base.mako"/> <%namespace file="/message.mako" import="render_msg" /> +<%namespace file="/spark_base.mako" import="make_sparkline" /> <%namespace file="/sorting_base.mako" import="get_sort_url, get_css" /> <% @@ -19,23 +20,28 @@ ${get_css()}

Workflows per month for user "${_email}"

+

+

Graph goes from first of the month to the last

+

%if len( workflows ) == 0: %else: - - + <% ctr = 0 %> %for workflow in workflows: <% + key = workflow[2] + workflow[3] month = workflow[0] total = workflow[1] %> @@ -46,6 +52,8 @@ ${get_css()} %endif + ${make_sparkline(key, trends[key], "bar", "/ day")} + <% ctr += 1 %> %endfor diff --git a/templates/webapps/tool_shed/message.mako b/templates/webapps/tool_shed/message.mako deleted file mode 100644 index 51dbfc351a2..00000000000 --- a/templates/webapps/tool_shed/message.mako +++ /dev/null @@ -1 +0,0 @@ -<%inherit file="../../message.mako"/> diff --git a/test/functional/test_toolbox.py b/test/functional/test_toolbox.py index c74660a4daa..ba721509822 100644 --- a/test/functional/test_toolbox.py +++ b/test/functional/test_toolbox.py @@ -45,6 +45,7 @@ class ToolTestCase( TwillTestCase ): job_stdio = None job_output_exceptions = None tool_execution_exception = None + expected_failure_occurred = False try: try: tool_response = galaxy_interactor.run_tool( testdef, test_history ) @@ -53,22 +54,26 @@ class ToolTestCase( TwillTestCase ): except RunToolException as e: tool_inputs = e.inputs tool_execution_exception = e - raise e + if not testdef.expect_failure: + raise e + else: + expected_failure_occurred = True except Exception as e: tool_execution_exception = e raise e - self.assertTrue( data_list or data_collection_list ) + if not expected_failure_occurred: + self.assertTrue( data_list or data_collection_list ) - try: - job_stdio = self._verify_outputs( testdef, test_history, jobs, shed_tool_id, data_list, data_collection_list, galaxy_interactor ) - except JobOutputsError as e: - job_stdio = e.job_stdio - job_output_exceptions = e.output_exceptions - raise e - except Exception as e: - job_output_exceptions = [e] - raise e + try: + job_stdio = self._verify_outputs( testdef, test_history, jobs, shed_tool_id, data_list, data_collection_list, galaxy_interactor ) + except JobOutputsError as e: + job_stdio = e.job_stdio + job_output_exceptions = e.output_exceptions + raise e + except Exception as e: + job_output_exceptions = [e] + raise e finally: job_data = {} if tool_inputs is not None: @@ -191,8 +196,12 @@ class ToolTestCase( TwillTestCase ): # the job completed so re-hit the API for more information. data_collection_returned = data_collection_list[ name ] data_collection = galaxy_interactor._get( "dataset_collections/%s" % data_collection_returned[ "id" ], data={"instance_type": "history"} ).json() - elements = data_collection[ "elements" ] - element_dict = dict( map(lambda e: (e["element_identifier"], e["object"]), elements) ) + + def get_element( elements, id ): + for element in elements: + if element["element_identifier"] == id: + return element + return False expected_collection_type = output_collection_def.collection_type if expected_collection_type: @@ -202,20 +211,29 @@ class ToolTestCase( TwillTestCase ): message = template % (name, expected_collection_type, collection_type) raise AssertionError(message) - for element_identifier, ( element_outfile, element_attrib ) in output_collection_def.element_tests.items(): - if element_identifier not in element_dict: - template = "Failed to find identifier [%s] for testing, tool generated collection with identifiers [%s]" - message = template % (element_identifier, ",".join(element_dict.keys())) - raise AssertionError(message) - hda = element_dict[ element_identifier ] + def verify_elements( element_objects, element_tests ): + for element_identifier, ( element_outfile, element_attrib ) in element_tests.items(): + element = get_element( element_objects, element_identifier ) + if not element: + template = "Failed to find identifier [%s] for testing, tool generated collection elements [%s]" + message = template % (element_identifier, element_objects) + raise AssertionError(message) - galaxy_interactor.verify_output_dataset( - history, - hda_id=hda["id"], - outfile=element_outfile, - attributes=element_attrib, - shed_tool_id=shed_tool_id - ) + element_type = element["element_type"] + if element_type != "dataset_collection": + hda = element[ "object" ] + galaxy_interactor.verify_output_dataset( + history, + hda_id=hda["id"], + outfile=element_outfile, + attributes=element_attrib, + shed_tool_id=shed_tool_id + ) + if element_type == "dataset_collection": + elements = element[ "object" ][ "elements" ] + verify_elements( elements, element_attrib.get( "elements", {} ) ) + + verify_elements( data_collection[ "elements" ], output_collection_def.element_tests ) except Exception as e: register_exception(e) diff --git a/test/functional/tool-data/fasta_indexes.loc b/test/functional/tool-data/fasta_indexes.loc new file mode 100644 index 00000000000..3383ed89752 --- /dev/null +++ b/test/functional/tool-data/fasta_indexes.loc @@ -0,0 +1,2 @@ +hg19 hg19 hg19 hg19 +hg18 hg18 hg18 hg18 \ No newline at end of file diff --git a/test/functional/tool-data/sample_tool_data_tables.xml b/test/functional/tool-data/sample_tool_data_tables.xml index ac42063caae..7264fa39f93 100644 --- a/test/functional/tool-data/sample_tool_data_tables.xml +++ b/test/functional/tool-data/sample_tool_data_tables.xml @@ -7,4 +7,8 @@ value, path
There are no workflows for user "${_email}"
+ ${get_sort_url(sort_id, order, 'date', 'workflows', 'user_per_month', 'Month', email=util.sanitize_text( email ))} ${arrow} + ${get_sort_url(sort_id, order, 'total_workflows', 'workflows', 'user_per_month', 'Total', email=util.sanitize_text( email ))} ${arrow}
${month} ${total}
+ + value, dbkey, name, path + +
diff --git a/test/functional/tools/collection_creates_dynamic_list_of_pairs.xml b/test/functional/tools/collection_creates_dynamic_list_of_pairs.xml new file mode 100644 index 00000000000..bd56401b0a3 --- /dev/null +++ b/test/functional/tools/collection_creates_dynamic_list_of_pairs.xml @@ -0,0 +1,71 @@ + + samp1_1.fq && + echo "B" > samp1_2.fq && + echo "C" > samp2_1.fq && + echo "D" > samp2_2.fq && + echo "E" > samp3_1.fq && + echo "F" > samp3_2.fq && + ## Galaxy wants forward and reverse in pattern not _1 and _2. + ## There is bash magic that would be more concise then this basename + ## pattern but I think this is more portable. + for f in *_1.fq; do mv "\$f" "`basename \$f _1.fq`_forward.fq"; done && + for f in *_2.fq; do mv "\$f" "`basename \$f _2.fq`_reverse.fq"; done + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/functional/tools/collection_creates_dynamic_nested.xml b/test/functional/tools/collection_creates_dynamic_nested.xml new file mode 100644 index 00000000000..68edc0cc34b --- /dev/null +++ b/test/functional/tools/collection_creates_dynamic_nested.xml @@ -0,0 +1,66 @@ + + + echo "A" > oe1_ie1.fq ; + echo "B" > oe1_ie2.fq ; + echo "C" > oe2_ie1.fq ; + echo "D" > oe2_ie2.fq ; + echo "E" > oe3_ie1.fq ; + echo "F" > oe3_ie2.fq + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/functional/tools/collection_creates_list_of_pairs.xml b/test/functional/tools/collection_creates_list_of_pairs.xml new file mode 100644 index 00000000000..3b7b7804162 --- /dev/null +++ b/test/functional/tools/collection_creates_list_of_pairs.xml @@ -0,0 +1,50 @@ + + + + #for $list_key in $list_output.keys()# + #for $pair_key in $list_output[$list_key].keys()# + echo "identifier is $list_key:$pair_key" > "$list_output[$list_key][$pair_key]"; + #end for# + #end for# + echo 'ensure not empty'; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/functional/tools/dbkey_filter_input.xml b/test/functional/tools/dbkey_filter_input.xml new file mode 100644 index 00000000000..a4f0bdc9b9b --- /dev/null +++ b/test/functional/tools/dbkey_filter_input.xml @@ -0,0 +1,39 @@ + + Filter (single) input on a dbkey + + cat $inputs > $output + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/functional/tools/dbkey_filter_multi_input.xml b/test/functional/tools/dbkey_filter_multi_input.xml new file mode 100644 index 00000000000..7ecaeaaf943 --- /dev/null +++ b/test/functional/tools/dbkey_filter_multi_input.xml @@ -0,0 +1,34 @@ + + Filter select on dbkey of multiple inputs + > $output; + #end for# + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/functional/tools/samples_tool_conf.xml b/test/functional/tools/samples_tool_conf.xml index 4b1f5fb7001..a3f3a358607 100644 --- a/test/functional/tools/samples_tool_conf.xml +++ b/test/functional/tools/samples_tool_conf.xml @@ -16,6 +16,8 @@ + + @@ -55,9 +57,11 @@ + - + + diff --git a/tools/extract/extract_genomic_dna.py b/tools/extract/extract_genomic_dna.py old mode 100644 new mode 100755 index a5018934224..72d672ed97c --- a/tools/extract/extract_genomic_dna.py +++ b/tools/extract/extract_genomic_dna.py @@ -4,7 +4,7 @@ usage: %prog $input $out_file1 -1, --cols=N,N,N,N,N: Columns for start, end, strand in input file -d, --dbkey=N: Genome build of input file -o, --output_format=N: the data type of the output file - -g, --GALAXY_DATA_INDEX_DIR=N: the directory containing alignseq.loc + -g, --GALAXY_DATA_INDEX_DIR=N: the directory containing alignseq.loc or twobit.loc -I, --interpret_features: if true, complete features are interpreted when input is GFF -F, --fasta=: genomic sequences to use for extraction -G, --gff: input and output file, when it is interval, coordinates are treated as GFF format (1-based, half-open) rather than 'traditional' 0-based, closed format. @@ -35,18 +35,27 @@ def reverse_complement( s ): return "".join( reversed_s ) def check_seq_file( dbkey, GALAXY_DATA_INDEX_DIR ): + # Checks for the presence of *.nib files matching the dbkey within alignseq.loc seq_file = "%s/alignseq.loc" % GALAXY_DATA_INDEX_DIR - seq_path = '' - for line in open( seq_file ): + for line in open(seq_file): line = line.rstrip( '\r\n' ) if line and not line.startswith( "#" ) and line.startswith( 'seq' ): fields = line.split( '\t' ) - if len( fields ) < 3: - continue - if fields[1] == dbkey: - seq_path = fields[2].strip() - break - return seq_path + if len( fields) >= 3 and fields[1] == dbkey: + print "Using *.nib genomic reference files" + return fields[2].strip() + + # If no entry in aligseq.loc was found, check for the presence of a *.2bit file in twobit.loc + seq_file = "%s/twobit.loc" % GALAXY_DATA_INDEX_DIR + for line in open( seq_file ): + line = line.rstrip( '\r\n' ) + if line and not line.startswith( "#" ) and line.endswith( '.2bit' ): + fields = line.split( '\t' ) + if len(fields) >= 2 and fields[0] == dbkey: + print "Using a *.2bit genomic reference file" + return fields[1].strip() + + return '' def __main__(): # diff --git a/tools/extract/extract_genomic_dna.xml b/tools/extract/extract_genomic_dna.xml index d568d84835a..69847cd77c4 100644 --- a/tools/extract/extract_genomic_dna.xml +++ b/tools/extract/extract_genomic_dna.xml @@ -29,7 +29,7 @@ - + @@ -39,10 +39,10 @@ - - - - + + + +