2016-09-26 08:29:29 +02:00
function generatePDF ( t , e , n , i ) { if ( t && e ) { if ( ! n ) return refreshTimer && clearTimeout ( refreshTimer ) , void ( refreshTimer = setTimeout ( function ( ) { generatePDF ( t , e , ! 0 , i ) } , 500 ) ) ; refreshTimer = null , t = calculateAmounts ( t ) ; var o = GetPdfMake ( t , e , i ) ; return i && o . getDataUrl ( i ) , o } } function copyObject ( t ) { return ! ! t && JSON . parse ( JSON . stringify ( t ) ) } function processVariables ( t ) { if ( ! t ) return "" ; for ( var e = [ "MONTH" , "QUARTER" , "YEAR" ] , n = 0 ; n < e . length ; n ++ ) { var i = e [ n ] , o = new RegExp ( ":" + i + "[+-]?[\\d]*" , "g" ) , a = t . match ( o ) ; if ( a ) for ( var s = 0 ; s < a . length ; s ++ ) { var r = a [ s ] , c = 0 ; r . split ( "+" ) . length > 1 ? c = r . split ( "+" ) [ 1 ] : r . split ( "-" ) . length > 1 && ( c = parseInt ( r . split ( "-" ) [ 1 ] ) * - 1 ) , t = t . replace ( r , getDatePart ( i , c ) ) } } return t } function getDatePart ( t , e ) { return e = parseInt ( e ) , e || ( e = 0 ) , "MONTH" == t ? getMonth ( e ) : "QUARTER" == t ? getQuarter ( e ) : "YEAR" == t ? getYear ( e ) : void 0 } function getMonth ( t ) { var e = new Date , n = [ "January" , "February" , "March" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December" ] , i = e . getMonth ( ) ; return i = parseInt ( i ) + t , i %= 12 , i < 0 && ( i += 12 ) , n [ i ] } function getYear ( t ) { var e = new Date , n = e . getFullYear ( ) ; return parseInt ( n ) + t } function getQuarter ( t ) { var e = new Date , n = Math . floor ( ( e . getMonth ( ) + 3 ) / 3 ) ; return n += t , n %= 4 , 0 == n && ( n = 4 ) , "Q" + n } function isStorageSupported ( ) { try { return "localStorage" in window && null !== window . localStorage } catch ( t ) { return ! 1 } } function isValidEmailAddress ( t ) { var e = new RegExp ( /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i ) ; return e . test ( t ) } function enableHoverClick ( t , e , n ) { } function setAsLink ( t , e ) { e ? ( t . css ( "text-decoration" , "underline" ) , t . css ( "cursor" , "pointer" ) ) : ( t . css ( "text-decoration" , "none" ) , t . css ( "cursor" , "text" ) ) } function setComboboxValue ( t , e , n ) { t . find ( "input" ) . val ( e ) , t . find ( "input.form-control" ) . val ( n ) , e && n ? ( t . find ( "select" ) . combobox ( "setSelected" ) , t . find ( ".combobox-container" ) . addClass ( "combobox-selected" ) ) : t . find ( ".combobox-container" ) . removeClass ( "combobox-selected" ) } function convertDataURIToBinary ( t ) { var e = t . indexOf ( BASE64 _MARKER ) + BASE64 _MARKER . length , n = t . substring ( e ) ; return base64DecToArr ( n ) } function getContactDisplayName ( t ) { return t . first _name || t . last _name ? ( t . first _name || "" ) + " " + ( t . last _name || "" ) : t . email } function getClientDisplayName ( t ) { var e = ! ! t . contacts && t . contacts [ 0 ] ; return t . name ? t . name : e ? getContactDisplayName ( e ) : "" } function populateInvoiceComboboxes ( t , e ) { for ( var n = { } , i = { } , o = { } , a = $ ( "select#client" ) , s = 0 ; s < invoices . length ; s ++ ) { var r = invoices [ s ] , c = r . client ; o . hasOwnProperty ( c . public _id ) || ( o [ c . public _id ] = [ ] ) , o [ c . public _id ] . push ( r ) , i [ r . public _id ] = r } for ( var s = 0 ; s < clients . length ; s ++ ) { var c = clients [ s ] ; n [ c . public _id ] = c } a . append ( new Option ( "" , "" ) ) ; for ( var s = 0 ; s < clients . length ; s ++ ) { var c = clients [ s ] , l = getClientDisplayName ( c ) ; l && a . append ( new Option ( l , c . public _id ) ) } t && a . val ( t ) , a . combobox ( ) , a . on ( "change" , function ( t ) { var e = $ ( "input[name=client]" ) . val ( ) , a = $ ( "input[name=invoice]" ) . val ( ) , s = i [ a ] ; if ( s && s . client . public _id == e ) return void t . preventDefault ( ) ; setComboboxValue ( $ ( ".invoice-select" ) , "" , "" ) , $invoiceCombobox = $ ( "select#invoice" ) , $invoiceCombobox . find ( "option" ) . remove ( ) . end ( ) . combobox ( "refresh" ) , $invoiceCombobox . append ( new Option ( "" , "" ) ) ; for ( var r = e ? o . hasOwnProperty ( e ) ? o [ e ] : [ ] : invoices , c = 0 ; c < r . length ; c ++ ) { var s = r [ c ] , l = n [ s . client . public _id ] ; l && getClientDisplayName ( l ) && $invoiceCombobox . append ( new Option ( s . invoice _number + "
2016-09-25 12:41:38 +02:00
return "input" === n && e . type === t } } function c ( t ) { return function ( e ) { var n = e . nodeName . toLowerCase ( ) ; return ( "input" === n || "button" === n ) && e . type === t } } function l ( t ) { return i ( function ( e ) { return e = + e , i ( function ( n , i ) { for ( var o , a = t ( [ ] , n . length , e ) , s = a . length ; s -- ; ) n [ o = a [ s ] ] && ( n [ o ] = ! ( i [ o ] = n [ o ] ) ) } ) } ) } function u ( t ) { return t && "undefined" != typeof t . getElementsByTagName && t } function h ( ) { } function d ( t ) { for ( var e = 0 , n = t . length , i = "" ; e < n ; e ++ ) i += t [ e ] . value ; return i } function p ( t , e , n ) { var i = e . dir , o = n && "parentNode" === i , a = F ++ ; return e . first ? function ( e , n , a ) { for ( ; e = e [ i ] ; ) if ( 1 === e . nodeType || o ) return t ( e , n , a ) } : function ( e , n , s ) { var r , c , l = [ X , a ] ; if ( s ) { for ( ; e = e [ i ] ; ) if ( ( 1 === e . nodeType || o ) && t ( e , n , s ) ) return ! 0 } else for ( ; e = e [ i ] ; ) if ( 1 === e . nodeType || o ) { if ( c = e [ R ] || ( e [ R ] = { } ) , ( r = c [ i ] ) && r [ 0 ] === X && r [ 1 ] === a ) return l [ 2 ] = r [ 2 ] ; if ( c [ i ] = l , l [ 2 ] = t ( e , n , s ) ) return ! 0 } } } function f ( t ) { return t . length > 1 ? function ( e , n , i ) { for ( var o = t . length ; o -- ; ) if ( ! t [ o ] ( e , n , i ) ) return ! 1 ; return ! 0 } : t [ 0 ] } function m ( t , n , i ) { for ( var o = 0 , a = n . length ; o < a ; o ++ ) e ( t , n [ o ] , i ) ; return i } function g ( t , e , n , i , o ) { for ( var a , s = [ ] , r = 0 , c = t . length , l = null != e ; r < c ; r ++ ) ( a = t [ r ] ) && ( n && ! n ( a , i , o ) || ( s . push ( a ) , l && e . push ( r ) ) ) ; return s } function b ( t , e , n , o , a , s ) { return o && ! o [ R ] && ( o = b ( o ) ) , a && ! a [ R ] && ( a = b ( a , s ) ) , i ( function ( i , s , r , c ) { var l , u , h , d = [ ] , p = [ ] , f = s . length , b = i || m ( e || "*" , r . nodeType ? [ r ] : r , [ ] ) , v = ! t || ! i && e ? b : g ( b , d , t , r , c ) , M = n ? a || ( i ? t : f || o ) ? [ ] : s : v ; if ( n && n ( v , M , r , c ) , o ) for ( l = g ( M , p ) , o ( l , [ ] , r , c ) , u = l . length ; u -- ; ) ( h = l [ u ] ) && ( M [ p [ u ] ] = ! ( v [ p [ u ] ] = h ) ) ; if ( i ) { if ( a || t ) { if ( a ) { for ( l = [ ] , u = M . length ; u -- ; ) ( h = M [ u ] ) && l . push ( v [ u ] = h ) ; a ( null , M = [ ] , l , c ) } for ( u = M . length ; u -- ; ) ( h = M [ u ] ) && ( l = a ? tt ( i , h ) : d [ u ] ) > - 1 && ( i [ l ] = ! ( s [ l ] = h ) ) } } else M = g ( M === s ? M . splice ( f , M . length ) : M ) , a ? a ( null , s , M , c ) : Q . apply ( s , M ) } ) } function v ( t ) { for ( var e , n , i , o = t . length , a = w . relative [ t [ 0 ] . type ] , s = a || w . relative [ " " ] , r = a ? 1 : 0 , c = p ( function ( t ) { return t === e } , s , ! 0 ) , l = p ( function ( t ) { return tt ( e , t ) > - 1 } , s , ! 0 ) , u = [ function ( t , n , i ) { var o = ! a && ( i || n !== S ) || ( ( e = n ) . nodeType ? c ( t , n , i ) : l ( t , n , i ) ) ; return e = null , o } ] ; r < o ; r ++ ) if ( n = w . relative [ t [ r ] . type ] ) u = [ p ( f ( u ) , n ) ] ; else { if ( n = w . filter [ t [ r ] . type ] . apply ( null , t [ r ] . matches ) , n [ R ] ) { for ( i = ++ r ; i < o && ! w . relative [ t [ i ] . type ] ; i ++ ) ; return b ( r > 1 && f ( u ) , r > 1 && d ( t . slice ( 0 , r - 1 ) . concat ( { value : " " === t [ r - 2 ] . type ? "*" : "" } ) ) . replace ( ct , "$1" ) , n , r < i && v ( t . slice ( r , i ) ) , i < o && v ( t = t . slice ( i ) ) , i < o && d ( t ) ) } u . push ( n ) } return f ( u ) } function M ( t , n ) { var o = n . length > 0 , a = t . length > 0 , s = function ( i , s , r , c , l ) { var u , h , d , p = 0 , f = "0" , m = i && [ ] , b = [ ] , v = S , M = i || a && w . find . TAG ( "*" , l ) , y = X += null == v ? 1 : Math . random ( ) || . 1 , A = M . length ; for ( l && ( S = s !== D && s ) ; f !== A && null != ( u = M [ f ] ) ; f ++ ) { if ( a && u ) { for ( h = 0 ; d = t [ h ++ ] ; ) if ( d ( u , s , r ) ) { c . push ( u ) ; break } l && ( X = y ) } o && ( ( u = ! d && u ) && p -- , i && m . push ( u ) ) } if ( p += f , o && f !== p ) { for ( h = 0 ; d = n [ h ++ ] ; ) d ( m , b , s , r ) ; if ( i ) { if ( p > 0 ) for ( ; f -- ; ) m [ f ] || b [ f ] || ( b [ f ] = G . call ( c ) ) ; b = g ( b ) } Q . apply ( c , b ) , l && ! i && b . length > 0 && p + n . length > 1 && e . uniqueSort ( c ) } return l && ( X = y , S = v ) , m } ; return o ? i ( s ) : s } var y , A , w , z , _ , T , x , C , S , O , N , L , D , q , k , W , E , B , I , R = "sizzle" + 1 * new Date , P = t . document , X = 0 , F = 0 , H = n ( ) , j = n ( ) , U = n ( ) , $ = function ( t , e ) { return t === e && ( N = ! 0 ) , 0 } , V = 1 << 31 , Y = { } . hasOwnProperty , J = [ ] , G = J . pop , K = J . push , Q = J . push , Z = J . slice , tt = function ( t , e ) { for ( var n = 0 , i = t . length ; n < i ; n ++ ) if ( t [ n ] === e ) return n ; return - 1 } , et = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped" , nt = "[\\x20\\t\\r\\n\\f]" , it = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+" , ot = it . replace ( "w" , "w#" ) , at = "\\[" + nt + "*(" + it + ")(?:" + nt + "*([*^$|!~]?=)" + nt + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + ot + "))|)" + nt + "*\\]" , st = ":(" + it + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + at + ")*)|.*)\\)|)" , rt = new RegExp ( nt + "+" , "g" ) , ct = new RegExp ( "^" + nt + "+|((?:^|[^\\\\])(?:\\\\.)*)" + nt + "+$" , "g" ) , lt = new RegExp ( "^" + nt + "*," + nt + "*" ) , ut = new RegExp ( "^" + nt + "*([>+~]|" + nt + ")" + nt + "*" ) , ht = new RegExp ( "=" + nt + "*([^\\]'\"]*?)" + nt + "*\\]" , "g" ) , dt = new RegExp ( st ) , pt = new RegExp ( "^" + ot + "$" ) , ft = { ID : new RegExp ( "^#(" + it + ")" ) , CLASS : new RegExp ( "^\\.(" + it + ")" ) , TAG : new RegExp ( "^(" + it . replace ( "w" , "w*" ) + ")" ) , ATTR : new RegExp ( "^" + at ) , PSEUDO : new RegExp ( "^" + st ) , CHILD : new RegExp ( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + nt + "*(even|odd|(([+-]|)(\\d*)n|)" + nt + "*(?:([+-]|)" + nt + " * ( \ \ d +
u = i [ s ] , u && ( i [ s ] = null ) , ot . event . triggered = p ; try { i [ p ] ( ) } catch ( m ) { } ot . event . triggered = void 0 , u && ( i [ s ] = u ) } return e . result } } , dispatch : function ( t ) { t = ot . event . fix ( t ) ; var e , n , i , o , a , s = [ ] , r = J . call ( arguments ) , c = ( ot . _data ( this , "events" ) || { } ) [ t . type ] || [ ] , l = ot . event . special [ t . type ] || { } ; if ( r [ 0 ] = t , t . delegateTarget = this , ! l . preDispatch || l . preDispatch . call ( this , t ) !== ! 1 ) { for ( s = ot . event . handlers . call ( this , t , c ) , e = 0 ; ( o = s [ e ++ ] ) && ! t . isPropagationStopped ( ) ; ) for ( t . currentTarget = o . elem , a = 0 ; ( i = o . handlers [ a ++ ] ) && ! t . isImmediatePropagationStopped ( ) ; ) t . namespace _re && ! t . namespace _re . test ( i . namespace ) || ( t . handleObj = i , t . data = i . data , n = ( ( ot . event . special [ i . origType ] || { } ) . handle || i . handler ) . apply ( o . elem , r ) , void 0 !== n && ( t . result = n ) === ! 1 && ( t . preventDefault ( ) , t . stopPropagation ( ) ) ) ; return l . postDispatch && l . postDispatch . call ( this , t ) , t . result } } , handlers : function ( t , e ) { var n , i , o , a , s = [ ] , r = e . delegateCount , c = t . target ; if ( r && c . nodeType && ( ! t . button || "click" !== t . type ) ) for ( ; c != this ; c = c . parentNode || this ) if ( 1 === c . nodeType && ( c . disabled !== ! 0 || "click" !== t . type ) ) { for ( o = [ ] , a = 0 ; a < r ; a ++ ) i = e [ a ] , n = i . selector + " " , void 0 === o [ n ] && ( o [ n ] = i . needsContext ? ot ( n , this ) . index ( c ) >= 0 : ot . find ( n , this , null , [ c ] ) . length ) , o [ n ] && o . push ( i ) ; o . length && s . push ( { elem : c , handlers : o } ) } return r < e . length && s . push ( { elem : this , handlers : e . slice ( r ) } ) , s } , fix : function ( t ) { if ( t [ ot . expando ] ) return t ; var e , n , i , o = t . type , a = t , s = this . fixHooks [ o ] ; for ( s || ( this . fixHooks [ o ] = s = qt . test ( o ) ? this . mouseHooks : Dt . test ( o ) ? this . keyHooks : { } ) , i = s . props ? this . props . concat ( s . props ) : this . props , t = new ot . Event ( a ) , e = i . length ; e -- ; ) n = i [ e ] , t [ n ] = a [ n ] ; return t . target || ( t . target = a . srcElement || ft ) , 3 === t . target . nodeType && ( t . target = t . target . parentNode ) , t . metaKey = ! ! t . metaKey , s . filter ? s . filter ( t , a ) : t } , props : "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which" . split ( " " ) , fixHooks : { } , keyHooks : { props : "char charCode key keyCode" . split ( " " ) , filter : function ( t , e ) { return null == t . which && ( t . which = null != e . charCode ? e . charCode : e . keyCode ) , t } } , mouseHooks : { props : "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement" . split ( " " ) , filter : function ( t , e ) { var n , i , o , a = e . button , s = e . fromElement ; return null == t . pageX && null != e . clientX && ( i = t . target . ownerDocument || ft , o = i . documentElement , n = i . body , t . pageX = e . clientX + ( o && o . scrollLeft || n && n . scrollLeft || 0 ) - ( o && o . clientLeft || n && n . clientLeft || 0 ) , t . pageY = e . clientY + ( o && o . scrollTop || n && n . scrollTop || 0 ) - ( o && o . clientTop || n && n . clientTop || 0 ) ) , ! t . relatedTarget && s && ( t . relatedTarget = s === t . target ? e . toElement : s ) , t . which || void 0 === a || ( t . which = 1 & a ? 1 : 2 & a ? 3 : 4 & a ? 2 : 0 ) , t } } , special : { load : { noBubble : ! 0 } , focus : { trigger : function ( ) { if ( this !== f ( ) && this . focus ) try { return this . focus ( ) , ! 1 } catch ( t ) { } } , delegateType : "focusin" } , blur : { trigger : function ( ) { if ( this === f ( ) && this . blur ) return this . blur ( ) , ! 1 } , delegateType : "focusout" } , click : { trigger : function ( ) { if ( ot . nodeName ( this , "input" ) && "checkbox" === this . type && this . click ) return this . click ( ) , ! 1 } , _default : function ( t ) { return ot . nodeName ( t . target , "a" ) } } , beforeunload : { postDispatch : function ( t ) { void 0 !== t . result && t . originalEvent && ( t . originalEvent . returnValue = t . result ) } } } , simulate : function ( t , e , n , i ) { var o = ot . extend ( new ot . Event , n , { type : t , isSimulated : ! 0 , originalEvent : { } } ) ; i ? ot . event . trigger ( o , null , e ) : ot . event . dispatch . call ( e , o ) , o . isDefaultPrevented ( ) && n . preventDefault ( ) } } , ot . removeEvent = ft . removeEventListener ? function ( t , e , n ) { t . removeEventListener && t . removeEventListener ( e , n , ! 1 ) } : function ( t , e , n ) { var i = "on" + e ; t . detachEvent && ( typeof t [ i ] === zt && ( t [ i ] = null ) , t . detachEvent ( i , n ) ) } , ot . Event = function ( t , e ) { return this instanceof ot . Event ? ( t && t . type ? ( this . originalEvent = t , this . type = t . type , this . isDefaultPrevented = t . defaultPrevented || void 0 === t . defaultPrevented && t . returnValue === ! 1 ? d : p ) : this . type = t , e && ot . extend ( this , e ) , this . timeStamp = t && t . timeStamp || ot . now ( ) , void ( this [ ot . expando ] = ! 0 ) ) : new ot . Event ( t , e ) } , ot . Event . prototype = { isDefaultPrevented : p , isPropagationStopped : p , isImmediatePropagationStopped : p , preventDefault : function ( ) { var t = this . originalEvent ; this . isDefaultPrevented = d , t && ( t . preventDefault ? t . preventDefault ( ) : t . returnValue = ! 1 ) } , stopPropagation : function ( ) { var t =
var n = typeof t ; return "boolean" == typeof e && "string" === n ? e ? this . addClass ( t ) : this . removeClass ( t ) : ot . isFunction ( t ) ? this . each ( function ( n ) { ot ( this ) . toggleClass ( t . call ( this , n , this . className , e ) , e ) } ) : this . each ( function ( ) { if ( "string" === n ) for ( var e , i = 0 , o = ot ( this ) , a = t . match ( Mt ) || [ ] ; e = a [ i ++ ] ; ) o . hasClass ( e ) ? o . removeClass ( e ) : o . addClass ( e ) ; else n !== zt && "boolean" !== n || ( this . className && ot . _data ( this , "__className__" , this . className ) , this . className = this . className || t === ! 1 ? "" : ot . _data ( this , "__className__" ) || "" ) } ) } , hasClass : function ( t ) { for ( var e = " " + t + " " , n = 0 , i = this . length ; n < i ; n ++ ) if ( 1 === this [ n ] . nodeType && ( " " + this [ n ] . className + " " ) . replace ( Oe , " " ) . indexOf ( e ) >= 0 ) return ! 0 ; return ! 1 } } ) , ot . each ( "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu" . split ( " " ) , function ( t , e ) { ot . fn [ e ] = function ( t , n ) { return arguments . length > 0 ? this . on ( e , null , t , n ) : this . trigger ( e ) } } ) , ot . fn . extend ( { hover : function ( t , e ) { return this . mouseenter ( t ) . mouseleave ( e || t ) } , bind : function ( t , e , n ) { return this . on ( t , null , e , n ) } , unbind : function ( t , e ) { return this . off ( t , null , e ) } , delegate : function ( t , e , n , i ) { return this . on ( e , t , n , i ) } , undelegate : function ( t , e , n ) { return 1 === arguments . length ? this . off ( t , "**" ) : this . off ( e , t || "**" , n ) } } ) ; var Ne = ot . now ( ) , Le = /\?/ , De = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g ; ot . parseJSON = function ( e ) { if ( t . JSON && t . JSON . parse ) return t . JSON . parse ( e + "" ) ; var n , i = null , o = ot . trim ( e + "" ) ; return o && ! ot . trim ( o . replace ( De , function ( t , e , o , a ) { return n && e && ( i = 0 ) , 0 === i ? t : ( n = o || e , i += ! a - ! o , "" ) } ) ) ? Function ( "return " + o ) ( ) : ot . error ( "Invalid JSON: " + e ) } , ot . parseXML = function ( e ) { var n , i ; if ( ! e || "string" != typeof e ) return null ; try { t . DOMParser ? ( i = new DOMParser , n = i . parseFromString ( e , "text/xml" ) ) : ( n = new ActiveXObject ( "Microsoft.XMLDOM" ) , n . async = "false" , n . loadXML ( e ) ) } catch ( o ) { n = void 0 } return n && n . documentElement && ! n . getElementsByTagName ( "parsererror" ) . length || ot . error ( "Invalid XML: " + e ) , n } ; var qe , ke , We = /#.*$/ , Ee = /([?&])_=[^&]*/ , Be = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm , Ie = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/ , Re = /^(?:GET|HEAD)$/ , Pe = /^\/\// , Xe = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/ , Fe = { } , He = { } , je = "*/" . concat ( "*" ) ; try { ke = location . href } catch ( Ue ) { ke = ft . createElement ( "a" ) , ke . href = "" , ke = ke . href } qe = Xe . exec ( ke . toLowerCase ( ) ) || [ ] , ot . extend ( { active : 0 , lastModified : { } , etag : { } , ajaxSettings : { url : ke , type : "GET" , isLocal : Ie . test ( qe [ 1 ] ) , global : ! 0 , processData : ! 0 , async : ! 0 , contentType : "application/x-www-form-urlencoded; charset=UTF-8" , accepts : { "*" : je , text : "text/plain" , html : "text/html" , xml : "application/xml, text/xml" , json : "application/json, text/javascript" } , contents : { xml : /xml/ , html : /html/ , json : /json/ } , responseFields : { xml : "responseXML" , text : "responseText" , json : "responseJSON" } , converters : { "* text" : String , "text html" : ! 0 , "text json" : ot . parseJSON , "text xml" : ot . parseXML } , flatOptions : { url : ! 0 , context : ! 0 } } , ajaxSetup : function ( t , e ) { return e ? X ( X ( t , ot . ajaxSettings ) , e ) : X ( ot . ajaxSettings , t ) } , ajaxPrefilter : R ( Fe ) , ajaxTransport : R ( He ) , ajax : function ( t , e ) { function n ( t , e , n , i ) { var o , u , b , v , y , w = e ; 2 !== M && ( M = 2 , r && clearTimeout ( r ) , l = void 0 , s = i || "" , A . readyState = t > 0 ? 4 : 0 , o = t >= 200 && t < 300 || 304 === t , n && ( v = F ( h , A , n ) ) , v = H ( h , v , A , o ) , o ? ( h . ifModified && ( y = A . getResponseHeader ( "Last-Modified" ) , y && ( ot . lastModified [ a ] = y ) , y = A . getResponseHeader ( "etag" ) , y && ( ot . etag [ a ] = y ) ) , 204 === t || "HEAD" === h . type ? w = "nocontent" : 304 === t ? w = "notmodified" : ( w = v . state , u = v . data , b = v . error , o = ! b ) ) : ( b = w , ! t && w || ( w = "error" , t < 0 && ( t = 0 ) ) ) , A . status = t , A . statusText = ( e || w ) + "" , o ? f . resolveWith ( d , [ u , w , A ] ) : f . rejectWith ( d , [ A , w , b ] ) , A . statusCode ( g ) , g = void 0 , c && p . trigger ( o ? "ajaxSuccess" : "ajaxError" , [ A , h , o ? u : b ] ) , m . fireWith ( d , [ A , w ] ) , c && ( p . trigger ( "ajaxComplete" , [ A , h ] ) , -- ot . active || ot . event . trigger ( "ajaxStop" ) ) ) } "object" == typeof t && ( e = t , t = void 0 ) , e = e || { } ; var i , o , a , s , r , c , l , u , h = ot . ajaxSetup ( { } , e ) , d = h . context || h , p = h . context && ( d . nodeType || d . jquery ) ? ot ( d ) : ot . event , f = ot . Deferred ( ) , m = ot . Callbacks ( "once memory" ) , g = h . statusCode || { } , b = { } , v = { } , M = 0 , y = "canceled" , A = { readyState :
} function n ( e , n ) { return parseInt ( t . css ( e , n ) , 10 ) || 0 } function i ( e ) { var n = e [ 0 ] ; return 9 === n . nodeType ? { width : e . width ( ) , height : e . height ( ) , offset : { top : 0 , left : 0 } } : t . isWindow ( n ) ? { width : e . width ( ) , height : e . height ( ) , offset : { top : e . scrollTop ( ) , left : e . scrollLeft ( ) } } : n . preventDefault ? { width : 0 , height : 0 , offset : { top : n . pageY , left : n . pageX } } : { width : e . outerWidth ( ) , height : e . outerHeight ( ) , offset : e . offset ( ) } } t . ui = t . ui || { } ; var o , a , s = Math . max , r = Math . abs , c = Math . round , l = /left|center|right/ , u = /top|center|bottom/ , h = /[\+\-]\d+(\.[\d]+)?%?/ , d = /^\w+/ , p = /%$/ , f = t . fn . position ; t . position = { scrollbarWidth : function ( ) { if ( void 0 !== o ) return o ; var e , n , i = t ( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>" ) , a = i . children ( ) [ 0 ] ; return t ( "body" ) . append ( i ) , e = a . offsetWidth , i . css ( "overflow" , "scroll" ) , n = a . offsetWidth , e === n && ( n = i [ 0 ] . clientWidth ) , i . remove ( ) , o = e - n } , getScrollInfo : function ( e ) { var n = e . isWindow || e . isDocument ? "" : e . element . css ( "overflow-x" ) , i = e . isWindow || e . isDocument ? "" : e . element . css ( "overflow-y" ) , o = "scroll" === n || "auto" === n && e . width < e . element [ 0 ] . scrollWidth , a = "scroll" === i || "auto" === i && e . height < e . element [ 0 ] . scrollHeight ; return { width : a ? t . position . scrollbarWidth ( ) : 0 , height : o ? t . position . scrollbarWidth ( ) : 0 } } , getWithinInfo : function ( e ) { var n = t ( e || window ) , i = t . isWindow ( n [ 0 ] ) , o = ! ! n [ 0 ] && 9 === n [ 0 ] . nodeType ; return { element : n , isWindow : i , isDocument : o , offset : n . offset ( ) || { left : 0 , top : 0 } , scrollLeft : n . scrollLeft ( ) , scrollTop : n . scrollTop ( ) , width : i || o ? n . width ( ) : n . outerWidth ( ) , height : i || o ? n . height ( ) : n . outerHeight ( ) } } } , t . fn . position = function ( o ) { if ( ! o || ! o . of ) return f . apply ( this , arguments ) ; o = t . extend ( { } , o ) ; var p , m , g , b , v , M , y = t ( o . of ) , A = t . position . getWithinInfo ( o . within ) , w = t . position . getScrollInfo ( A ) , z = ( o . collision || "flip" ) . split ( " " ) , _ = { } ; return M = i ( y ) , y [ 0 ] . preventDefault && ( o . at = "left top" ) , m = M . width , g = M . height , b = M . offset , v = t . extend ( { } , b ) , t . each ( [ "my" , "at" ] , function ( ) { var t , e , n = ( o [ this ] || "" ) . split ( " " ) ; 1 === n . length && ( n = l . test ( n [ 0 ] ) ? n . concat ( [ "center" ] ) : u . test ( n [ 0 ] ) ? [ "center" ] . concat ( n ) : [ "center" , "center" ] ) , n [ 0 ] = l . test ( n [ 0 ] ) ? n [ 0 ] : "center" , n [ 1 ] = u . test ( n [ 1 ] ) ? n [ 1 ] : "center" , t = h . exec ( n [ 0 ] ) , e = h . exec ( n [ 1 ] ) , _ [ this ] = [ t ? t [ 0 ] : 0 , e ? e [ 0 ] : 0 ] , o [ this ] = [ d . exec ( n [ 0 ] ) [ 0 ] , d . exec ( n [ 1 ] ) [ 0 ] ] } ) , 1 === z . length && ( z [ 1 ] = z [ 0 ] ) , "right" === o . at [ 0 ] ? v . left += m : "center" === o . at [ 0 ] && ( v . left += m / 2 ) , "bottom" === o . at [ 1 ] ? v . top += g : "center" === o . at [ 1 ] && ( v . top += g / 2 ) , p = e ( _ . at , m , g ) , v . left += p [ 0 ] , v . top += p [ 1 ] , this . each ( function ( ) { var i , l , u = t ( this ) , h = u . outerWidth ( ) , d = u . outerHeight ( ) , f = n ( this , "marginLeft" ) , M = n ( this , "marginTop" ) , T = h + f + n ( this , "marginRight" ) + w . width , x = d + M + n ( this , "marginBottom" ) + w . height , C = t . extend ( { } , v ) , S = e ( _ . my , u . outerWidth ( ) , u . outerHeight ( ) ) ; "right" === o . my [ 0 ] ? C . left -= h : "center" === o . my [ 0 ] && ( C . left -= h / 2 ) , "bottom" === o . my [ 1 ] ? C . top -= d : "center" === o . my [ 1 ] && ( C . top -= d / 2 ) , C . left += S [ 0 ] , C . top += S [ 1 ] , a || ( C . left = c ( C . left ) , C . top = c ( C . top ) ) , i = { marginLeft : f , marginTop : M } , t . each ( [ "left" , "top" ] , function ( e , n ) { t . ui . position [ z [ e ] ] && t . ui . position [ z [ e ] ] [ n ] ( C , { targetWidth : m , targetHeight : g , elemWidth : h , elemHeight : d , collisionPosition : i , collisionWidth : T , collisionHeight : x , offset : [ p [ 0 ] + S [ 0 ] , p [ 1 ] + S [ 1 ] ] , my : o . my , at : o . at , within : A , elem : u } ) } ) , o . using && ( l = function ( t ) { var e = b . left - C . left , n = e + m - h , i = b . top - C . top , a = i + g - d , c = { target : { element : y , left : b . left , top : b . top , width : m , height : g } , element : { element : u , left : C . left , top : C . top , width : h , height : d } , horizontal : n < 0 ? "left" : e > 0 ? "right" : "center" , vertical : a < 0 ? "top" : i > 0 ? "bottom" : "middle" } ; m < h && r ( e + n ) < m && ( c . horizontal = "center" ) , g < d && r ( i + a ) < g && ( c . vertical = "middle" ) , s ( r ( e ) , r ( n ) ) > s ( r ( i ) , r ( a ) ) ? c . important = "horizontal" : c . important = "vertical" , o . using . call ( this , t , c ) } ) , u . offset ( t . extend ( C , { using : l } ) ) } ) } , t . ui . position = { fit : { left : function ( t , e ) { var n , i = e . within , o = i . isWindow ? i . scrollLeft : i . offset . left , a = i . width , r = t . left - e . collisionPosition . marginLeft , c = o - r , l = r + e . collisionWidth - a - o ; e . collisionWidth > a ? c > 0 && l <= 0 ? ( n = t . left + c + e . collisionWidth - a - o , t . left += c - n ) : l > 0 && c <= 0 ? t . left = o : c > l ? t . left = o + a - e . collisionWidth : t . left = o : c > 0 ? t . left += c : l > 0 ? t . left -= l : t . left = s ( t . left - r , t . left ) } , top : function ( t , e ) { var n , i = e . within , o = i . isWindow ? i . scrollTop : i . offset . top , a = e . within . height , r = t . top - e . collisionP
options : { disabled : null , text : ! 0 , label : null , icons : { primary : null , secondary : null } } , _create : function ( ) { this . element . closest ( "form" ) . unbind ( "reset" + this . eventNamespace ) . bind ( "reset" + this . eventNamespace , m ) , "boolean" != typeof this . options . disabled ? this . options . disabled = ! ! this . element . prop ( "disabled" ) : this . element . prop ( "disabled" , this . options . disabled ) , this . _determineButtonType ( ) , this . hasTitle = ! ! this . buttonElement . attr ( "title" ) ; var e = this , n = this . options , i = "checkbox" === this . type || "radio" === this . type , o = i ? "" : "ui-state-active" ; null === n . label && ( n . label = "input" === this . type ? this . buttonElement . val ( ) : this . buttonElement . html ( ) ) , this . _hoverable ( this . buttonElement ) , this . buttonElement . addClass ( p ) . attr ( "role" , "button" ) . bind ( "mouseenter" + this . eventNamespace , function ( ) { n . disabled || this === d && t ( this ) . addClass ( "ui-state-active" ) } ) . bind ( "mouseleave" + this . eventNamespace , function ( ) { n . disabled || t ( this ) . removeClass ( o ) } ) . bind ( "click" + this . eventNamespace , function ( t ) { n . disabled && ( t . preventDefault ( ) , t . stopImmediatePropagation ( ) ) } ) , this . _on ( { focus : function ( ) { this . buttonElement . addClass ( "ui-state-focus" ) } , blur : function ( ) { this . buttonElement . removeClass ( "ui-state-focus" ) } } ) , i && this . element . bind ( "change" + this . eventNamespace , function ( ) { e . refresh ( ) } ) , "checkbox" === this . type ? this . buttonElement . bind ( "click" + this . eventNamespace , function ( ) { if ( n . disabled ) return ! 1 } ) : "radio" === this . type ? this . buttonElement . bind ( "click" + this . eventNamespace , function ( ) { if ( n . disabled ) return ! 1 ; t ( this ) . addClass ( "ui-state-active" ) , e . buttonElement . attr ( "aria-pressed" , "true" ) ; var i = e . element [ 0 ] ; g ( i ) . not ( i ) . map ( function ( ) { return t ( this ) . button ( "widget" ) [ 0 ] } ) . removeClass ( "ui-state-active" ) . attr ( "aria-pressed" , "false" ) } ) : ( this . buttonElement . bind ( "mousedown" + this . eventNamespace , function ( ) { return ! n . disabled && ( t ( this ) . addClass ( "ui-state-active" ) , d = this , void e . document . one ( "mouseup" , function ( ) { d = null } ) ) } ) . bind ( "mouseup" + this . eventNamespace , function ( ) { return ! n . disabled && void t ( this ) . removeClass ( "ui-state-active" ) } ) . bind ( "keydown" + this . eventNamespace , function ( e ) { return ! n . disabled && void ( e . keyCode !== t . ui . keyCode . SPACE && e . keyCode !== t . ui . keyCode . ENTER || t ( this ) . addClass ( "ui-state-active" ) ) } ) . bind ( "keyup" + this . eventNamespace + " blur" + this . eventNamespace , function ( ) { t ( this ) . removeClass ( "ui-state-active" ) } ) , this . buttonElement . is ( "a" ) && this . buttonElement . keyup ( function ( e ) { e . keyCode === t . ui . keyCode . SPACE && t ( this ) . click ( ) } ) ) , this . _setOption ( "disabled" , n . disabled ) , this . _resetButton ( ) } , _determineButtonType : function ( ) { var t , e , n ; this . element . is ( "[type=checkbox]" ) ? this . type = "checkbox" : this . element . is ( "[type=radio]" ) ? this . type = "radio" : this . element . is ( "input" ) ? this . type = "input" : this . type = "button" , "checkbox" === this . type || "radio" === this . type ? ( t = this . element . parents ( ) . last ( ) , e = "label[for='" + this . element . attr ( "id" ) + "']" , this . buttonElement = t . find ( e ) , this . buttonElement . length || ( t = t . length ? t . siblings ( ) : this . element . siblings ( ) , this . buttonElement = t . filter ( e ) , this . buttonElement . length || ( this . buttonElement = t . find ( e ) ) ) , this . element . addClass ( "ui-helper-hidden-accessible" ) , n = this . element . is ( ":checked" ) , n && this . buttonElement . addClass ( "ui-state-active" ) , this . buttonElement . prop ( "aria-pressed" , n ) ) : this . buttonElement = this . element } , widget : function ( ) { return this . buttonElement } , _destroy : function ( ) { this . element . removeClass ( "ui-helper-hidden-accessible" ) , this . buttonElement . removeClass ( p + " ui-state-active " + f ) . removeAttr ( "role" ) . removeAttr ( "aria-pressed" ) . html ( this . buttonElement . find ( ".ui-button-text" ) . html ( ) ) , this . hasTitle || this . buttonElement . removeAttr ( "title" ) } , _setOption : function ( t , e ) { return this . _super ( t , e ) , "disabled" === t ? ( this . widget ( ) . toggleClass ( "ui-state-disabled" , ! ! e ) , this . element . prop ( "disabled" , ! ! e ) , void ( e && ( "checkbox" === this . type || "radio" === this . type ? this . buttonElement . removeClass ( "ui-state-focus" ) : this . buttonElement . removeClass ( "ui-state-focus ui-state-active" ) ) ) ) : void this . _resetButton ( ) } , refresh : function ( ) { var e = this . element . is ( "input, button" ) ? this . element . is ( ":disabled" ) : this . element . hasClass ( "ui-button-disabled" ) ; e !== this . options . disabled && this . _setOption ( "disabled" , e ) , "radio" === this . type ? g ( this . element [ 0 ] ) . each ( function ( ) { t ( this ) . is
p = this . _get ( t , "dayNamesMin" ) , f = this . _get ( t , "monthNames" ) , m = this . _get ( t , "monthNamesShort" ) , g = this . _get ( t , "beforeShowDay" ) , b = this . _get ( t , "showOtherMonths" ) , v = this . _get ( t , "selectOtherMonths" ) , M = this . _getDefaultDate ( t ) , y = "" , w = 0 ; w < $ [ 0 ] ; w ++ ) { for ( z = "" , this . maxRows = 4 , _ = 0 ; _ < $ [ 1 ] ; _ ++ ) { if ( T = this . _daylightSavingAdjust ( new Date ( tt , Z , t . selectedDay ) ) , x = " ui-corner-all" , C = "" , J ) { if ( C += "<div class='ui-datepicker-group" , $ [ 1 ] > 1 ) switch ( _ ) { case 0 : C += " ui-datepicker-group-first" , x = " ui-corner-" + ( F ? "right" : "left" ) ; break ; case $ [ 1 ] - 1 : C += " ui-datepicker-group-last" , x = " ui-corner-" + ( F ? "left" : "right" ) ; break ; default : C += " ui-datepicker-group-middle" , x = "" } C += "'>" } for ( C += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + x + "'>" + ( /all|left/ . test ( x ) && 0 === w ? F ? a : i : "" ) + ( /all|right/ . test ( x ) && 0 === w ? F ? i : a : "" ) + this . _generateMonthYearHeader ( t , Z , tt , K , Q , w > 0 || _ > 0 , f , m ) + "</div><table class='ui-datepicker-calendar'><thead><tr>" , S = h ? "<th class='ui-datepicker-week-col'>" + this . _get ( t , "weekHeader" ) + "</th>" : "" , A = 0 ; A < 7 ; A ++ ) O = ( A + u ) % 7 , S += "<th scope='col'" + ( ( A + u + 6 ) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "" ) + "><span title='" + d [ O ] + "'>" + p [ O ] + "</span></th>" ; for ( C += S + "</tr></thead><tbody>" , N = this . _getDaysInMonth ( tt , Z ) , tt === t . selectedYear && Z === t . selectedMonth && ( t . selectedDay = Math . min ( t . selectedDay , N ) ) , L = ( this . _getFirstDayOfMonth ( tt , Z ) - u + 7 ) % 7 , D = Math . ceil ( ( L + N ) / 7 ) , q = J && this . maxRows > D ? this . maxRows : D , this . maxRows = q , k = this . _daylightSavingAdjust ( new Date ( tt , Z , 1 - L ) ) , W = 0 ; W < q ; W ++ ) { for ( C += "<tr>" , E = h ? "<td class='ui-datepicker-week-col'>" + this . _get ( t , "calculateWeek" ) ( k ) + "</td>" : "" , A = 0 ; A < 7 ; A ++ ) B = g ? g . apply ( t . input ? t . input [ 0 ] : null , [ k ] ) : [ ! 0 , "" ] , I = k . getMonth ( ) !== Z , R = I && ! v || ! B [ 0 ] || K && k < K || Q && k > Q , E += "<td class='" + ( ( A + u + 6 ) % 7 >= 5 ? " ui-datepicker-week-end" : "" ) + ( I ? " ui-datepicker-other-month" : "" ) + ( k . getTime ( ) === T . getTime ( ) && Z === t . selectedMonth && t . _keyEvent || M . getTime ( ) === k . getTime ( ) && M . getTime ( ) === T . getTime ( ) ? " " + this . _dayOverClass : "" ) + ( R ? " " + this . _unselectableClass + " ui-state-disabled" : "" ) + ( I && ! b ? "" : " " + B [ 1 ] + ( k . getTime ( ) === G . getTime ( ) ? " " + this . _currentClass : "" ) + ( k . getTime ( ) === X . getTime ( ) ? " ui-datepicker-today" : "" ) ) + "'" + ( I && ! b || ! B [ 2 ] ? "" : " title='" + B [ 2 ] . replace ( /'/g , "'" ) + "'" ) + ( R ? "" : " data-handler='selectDay' data-event='click' data-month='" + k . getMonth ( ) + "' data-year='" + k . getFullYear ( ) + "'" ) + ">" + ( I && ! b ? " " : R ? "<span class='ui-state-default'>" + k . getDate ( ) + "</span>" : "<a class='ui-state-default" + ( k . getTime ( ) === X . getTime ( ) ? " ui-state-highlight" : "" ) + ( k . getTime ( ) === G . getTime ( ) ? " ui-state-active" : "" ) + ( I ? " ui-priority-secondary" : "" ) + "' href='#'>" + k . getDate ( ) + "</a>" ) + "</td>" , k . setDate ( k . getDate ( ) + 1 ) , k = this . _daylightSavingAdjust ( k ) ; C += E + "</tr>" } Z ++ , Z > 11 && ( Z = 0 , tt ++ ) , C += "</tbody></table>" + ( J ? "</div>" + ( $ [ 0 ] > 0 && _ === $ [ 1 ] - 1 ? "<div class='ui-datepicker-row-break'></div>" : "" ) : "" ) , z += C } y += z } return y += l , t . _keyEvent = ! 1 , y } , _generateMonthYearHeader : function ( t , e , n , i , o , a , s , r ) { var c , l , u , h , d , p , f , m , g = this . _get ( t , "changeMonth" ) , b = this . _get ( t , "changeYear" ) , v = this . _get ( t , "showMonthAfterYear" ) , M = "<div class='ui-datepicker-title'>" , y = "" ; if ( a || ! g ) y += "<span class='ui-datepicker-month'>" + s [ e ] + "</span>" ; else { for ( c = i && i . getFullYear ( ) === n , l = o && o . getFullYear ( ) === n , y += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>" , u = 0 ; u < 12 ; u ++ ) ( ! c || u >= i . getMonth ( ) ) && ( ! l || u <= o . getMonth ( ) ) && ( y += "<option value='" + u + "'" + ( u === e ? " selected='selected'" : "" ) + ">" + r [ u ] + "</option>" ) ; y += "</select>" } if ( v || ( M += y + ( ! a && g && b ? "" : " " ) ) , ! t . yearshtml ) if ( t . yearshtml = "" , a || ! b ) M += "<span class='ui-datepicker-year'>" + n + "</span>" ; else { for ( h = this . _get ( t , "yearRange" ) . split ( ":" ) , d = ( new Date ) . getFullYear ( ) , p = function ( t ) { var e = t . match ( /c[+\-].*/ ) ? n + parseInt ( t . substring ( 1 ) , 10 ) : t . match ( /[+\-].*/ ) ? d + parseInt ( t , 10 ) : parseInt ( t , 10 ) ; return isNaN ( e ) ? d : e } , f = p ( h [ 0 ] ) , m = Math . max ( f , p ( h [ 1 ] || "" ) ) , f = i ? Math . max ( f , i . getFullYear ( ) ) : f , m = o ? Math . min ( m , o . getFullYear ( ) ) : m , t . yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>" ; f <= m ; f ++ ) t . yearshtml += "<option value='" + f + "'" + ( f === n ? " selected='selected'" : "" ) + ">" + f + "</option>" ; t . yearshtml += "</select>" , M += t . yearshtml , t . yearshtml = null } return M += this . _get ( t , " yearSuffix
i = n . length && /textarea/i . test ( n [ 0 ] . nodeName ) , o = i && this . _hasScroll ( n [ 0 ] , "left" ) ? 0 : u . sizeDiff . height , a = i ? 0 : u . sizeDiff . width , s = { width : u . helper . width ( ) - a , height : u . helper . height ( ) - o } , r = parseInt ( u . element . css ( "left" ) , 10 ) + ( u . position . left - u . originalPosition . left ) || null , c = parseInt ( u . element . css ( "top" ) , 10 ) + ( u . position . top - u . originalPosition . top ) || null , l . animate || this . element . css ( t . extend ( s , { top : c , left : r } ) ) , u . helper . height ( u . size . height ) , u . helper . width ( u . size . width ) , this . _helper && ! l . animate && this . _proportionallyResize ( ) ) , t ( "body" ) . css ( "cursor" , "auto" ) , this . element . removeClass ( "ui-resizable-resizing" ) , this . _propagate ( "stop" , e ) , this . _helper && this . helper . remove ( ) , ! 1 } , _updatePrevProperties : function ( ) { this . prevPosition = { top : this . position . top , left : this . position . left } , this . prevSize = { width : this . size . width , height : this . size . height } } , _applyChanges : function ( ) { var t = { } ; return this . position . top !== this . prevPosition . top && ( t . top = this . position . top + "px" ) , this . position . left !== this . prevPosition . left && ( t . left = this . position . left + "px" ) , this . size . width !== this . prevSize . width && ( t . width = this . size . width + "px" ) , this . size . height !== this . prevSize . height && ( t . height = this . size . height + "px" ) , this . helper . css ( t ) , t } , _updateVirtualBoundaries : function ( t ) { var e , n , i , o , a , s = this . options ; a = { minWidth : this . _isNumber ( s . minWidth ) ? s . minWidth : 0 , maxWidth : this . _isNumber ( s . maxWidth ) ? s . maxWidth : 1 / 0 , minHeight : this . _isNumber ( s . minHeight ) ? s . minHeight : 0 , maxHeight : this . _isNumber ( s . maxHeight ) ? s . maxHeight : 1 / 0 } , ( this . _aspectRatio || t ) && ( e = a . minHeight * this . aspectRatio , i = a . minWidth / this . aspectRatio , n = a . maxHeight * this . aspectRatio , o = a . maxWidth / this . aspectRatio , e > a . minWidth && ( a . minWidth = e ) , i > a . minHeight && ( a . minHeight = i ) , n < a . maxWidth && ( a . maxWidth = n ) , o < a . maxHeight && ( a . maxHeight = o ) ) , this . _vBoundaries = a } , _updateCache : function ( t ) { this . offset = this . helper . offset ( ) , this . _isNumber ( t . left ) && ( this . position . left = t . left ) , this . _isNumber ( t . top ) && ( this . position . top = t . top ) , this . _isNumber ( t . height ) && ( this . size . height = t . height ) , this . _isNumber ( t . width ) && ( this . size . width = t . width ) } , _updateRatio : function ( t ) { var e = this . position , n = this . size , i = this . axis ; return this . _isNumber ( t . height ) ? t . width = t . height * this . aspectRatio : this . _isNumber ( t . width ) && ( t . height = t . width / this . aspectRatio ) , "sw" === i && ( t . left = e . left + ( n . width - t . width ) , t . top = null ) , "nw" === i && ( t . top = e . top + ( n . height - t . height ) , t . left = e . left + ( n . width - t . width ) ) , t } , _respectSize : function ( t ) { var e = this . _vBoundaries , n = this . axis , i = this . _isNumber ( t . width ) && e . maxWidth && e . maxWidth < t . width , o = this . _isNumber ( t . height ) && e . maxHeight && e . maxHeight < t . height , a = this . _isNumber ( t . width ) && e . minWidth && e . minWidth > t . width , s = this . _isNumber ( t . height ) && e . minHeight && e . minHeight > t . height , r = this . originalPosition . left + this . originalSize . width , c = this . position . top + this . size . height , l = /sw|nw|w/ . test ( n ) , u = /nw|ne|n/ . test ( n ) ; return a && ( t . width = e . minWidth ) , s && ( t . height = e . minHeight ) , i && ( t . width = e . maxWidth ) , o && ( t . height = e . maxHeight ) , a && l && ( t . left = r - e . minWidth ) , i && l && ( t . left = r - e . maxWidth ) , s && u && ( t . top = c - e . minHeight ) , o && u && ( t . top = c - e . maxHeight ) , t . width || t . height || t . left || ! t . top ? t . width || t . height || t . top || ! t . left || ( t . left = null ) : t . top = null , t } , _getPaddingPlusBorderDimensions : function ( t ) { for ( var e = 0 , n = [ ] , i = [ t . css ( "borderTopWidth" ) , t . css ( "borderRightWidth" ) , t . css ( "borderBottomWidth" ) , t . css ( "borderLeftWidth" ) ] , o = [ t . css ( "paddingTop" ) , t . css ( "paddingRight" ) , t . css ( "paddingBottom" ) , t . css ( "paddingLeft" ) ] ; e < 4 ; e ++ ) n [ e ] = parseInt ( i [ e ] , 10 ) || 0 , n [ e ] += parseInt ( o [ e ] , 10 ) || 0 ; return { height : n [ 0 ] + n [ 2 ] , width : n [ 1 ] + n [ 3 ] } } , _proportionallyResize : function ( ) { if ( this . _proportionallyResizeElements . length ) for ( var t , e = 0 , n = this . helper || this . element ; e < this . _proportionallyResizeElements . length ; e ++ ) t = this . _proportionallyResizeElements [ e ] , this . outerDimensions || ( this . outerDimensions = this . _getPaddingPlusBorderDimensions ( t ) ) , t . css ( { height : n . height ( ) - this . outerDimensions . height || 0 , width : n . width ( ) - this . outerDimensions . width || 0 } ) } , _renderProxy : function ( ) { var e = this . element , n = this . options ; this . elementOffset = e . offset ( ) , this . _helper ? ( this . helper = this . helper || t ( "<div style='overflow:hidden;'></div>" ) , this . helper . addClass ( this . _helper ) . css ( { width : this . element . outerWidth ( ) - 1 , heig
o [ e . cache ] && ( h [ e . cache ] = o [ e . cache ] . slice ( ) ) } ) : f ( u , function ( e , i ) { var a = i . cache ; f ( i . props , function ( t , e ) { if ( ! h [ a ] && i . to ) { if ( "alpha" === t || null == o [ t ] ) return ; h [ a ] = i . to ( h . _rgba ) } h [ a ] [ e . idx ] = n ( o [ t ] , e , ! 0 ) } ) , h [ a ] && t . inArray ( null , h [ a ] . slice ( 0 , 3 ) ) < 0 && ( h [ a ] [ 3 ] = 1 , i . from && ( h . _rgba = i . from ( h [ a ] ) ) ) } ) , this ) : void 0 } , is : function ( t ) { var e = l ( t ) , n = ! 0 , i = this ; return f ( u , function ( t , o ) { var a , s = e [ o . cache ] ; return s && ( a = i [ o . cache ] || o . to && o . to ( i . _rgba ) || [ ] , f ( o . props , function ( t , e ) { if ( null != s [ e . idx ] ) return n = s [ e . idx ] === a [ e . idx ] } ) ) , n } ) , n } , _space : function ( ) { var t = [ ] , e = this ; return f ( u , function ( n , i ) { e [ i . cache ] && t . push ( n ) } ) , t . pop ( ) } , transition : function ( t , e ) { var i = l ( t ) , o = i . _space ( ) , a = u [ o ] , s = 0 === this . alpha ( ) ? l ( "transparent" ) : this , r = s [ a . cache ] || a . to ( s . _rgba ) , c = r . slice ( ) ; return i = i [ a . cache ] , f ( a . props , function ( t , o ) { var a = o . idx , s = r [ a ] , l = i [ a ] , u = h [ o . type ] || { } ; null !== l && ( null === s ? c [ a ] = l : ( u . mod && ( l - s > u . mod / 2 ? s += u . mod : s - l > u . mod / 2 && ( s -= u . mod ) ) , c [ a ] = n ( ( l - s ) * e + s , o ) ) ) } ) , this [ o ] ( c ) } , blend : function ( e ) { if ( 1 === this . _rgba [ 3 ] ) return this ; var n = this . _rgba . slice ( ) , i = n . pop ( ) , o = l ( e ) . _rgba ; return l ( t . map ( n , function ( t , e ) { return ( 1 - i ) * o [ e ] + i * t } ) ) } , toRgbaString : function ( ) { var e = "rgba(" , n = t . map ( this . _rgba , function ( t , e ) { return null == t ? e > 2 ? 1 : 0 : t } ) ; return 1 === n [ 3 ] && ( n . pop ( ) , e = "rgb(" ) , e + n . join ( ) + ")" } , toHslaString : function ( ) { var e = "hsla(" , n = t . map ( this . hsla ( ) , function ( t , e ) { return null == t && ( t = e > 2 ? 1 : 0 ) , e && e < 3 && ( t = Math . round ( 100 * t ) + "%" ) , t } ) ; return 1 === n [ 3 ] && ( n . pop ( ) , e = "hsl(" ) , e + n . join ( ) + ")" } , toHexString : function ( e ) { var n = this . _rgba . slice ( ) , i = n . pop ( ) ; return e && n . push ( ~ ~ ( 255 * i ) ) , "#" + t . map ( n , function ( t ) { return t = ( t || 0 ) . toString ( 16 ) , 1 === t . length ? "0" + t : t } ) . join ( "" ) } , toString : function ( ) { return 0 === this . _rgba [ 3 ] ? "transparent" : this . toRgbaString ( ) } } ) , l . fn . parse . prototype = l . fn , u . hsla . to = function ( t ) { if ( null == t [ 0 ] || null == t [ 1 ] || null == t [ 2 ] ) return [ null , null , null , t [ 3 ] ] ; var e , n , i = t [ 0 ] / 255 , o = t [ 1 ] / 255 , a = t [ 2 ] / 255 , s = t [ 3 ] , r = Math . max ( i , o , a ) , c = Math . min ( i , o , a ) , l = r - c , u = r + c , h = . 5 * u ; return e = c === r ? 0 : i === r ? 60 * ( o - a ) / l + 360 : o === r ? 60 * ( a - i ) / l + 120 : 60 * ( i - o ) / l + 240 , n = 0 === l ? 0 : h <= . 5 ? l / u : l / ( 2 - u ) , [ Math . round ( e ) % 360 , n , h , null == s ? 1 : s ] } , u . hsla . from = function ( t ) { if ( null == t [ 0 ] || null == t [ 1 ] || null == t [ 2 ] ) return [ null , null , null , t [ 3 ] ] ; var e = t [ 0 ] / 360 , n = t [ 1 ] , i = t [ 2 ] , a = t [ 3 ] , s = i <= . 5 ? i * ( 1 + n ) : i + n - i * n , r = 2 * i - s ; return [ Math . round ( 255 * o ( r , s , e + 1 / 3 ) ) , Math . round ( 255 * o ( r , s , e ) ) , Math . round ( 255 * o ( r , s , e - 1 / 3 ) ) , a ] } , f ( u , function ( i , o ) { var a = o . props , s = o . cache , c = o . to , u = o . from ; l . fn [ i ] = function ( i ) { if ( c && ! this [ s ] && ( this [ s ] = c ( this . _rgba ) ) , i === e ) return this [ s ] . slice ( ) ; var o , r = t . type ( i ) , h = "array" === r || "object" === r ? i : arguments , d = this [ s ] . slice ( ) ; return f ( a , function ( t , e ) { var i = h [ "object" === r ? t : e . idx ] ; null == i && ( i = d [ e . idx ] ) , d [ e . idx ] = n ( i , e ) } ) , u ? ( o = l ( u ( d ) ) , o [ s ] = d , o ) : l ( d ) } , f ( a , function ( e , n ) { l . fn [ e ] || ( l . fn [ e ] = function ( o ) { var a , s = t . type ( o ) , c = "alpha" === e ? this . _hsla ? "hsla" : "rgba" : i , l = this [ c ] ( ) , u = l [ n . idx ] ; return "undefined" === s ? u : ( "function" === s && ( o = o . call ( this , u ) , s = t . type ( o ) ) , null == o && n . empty ? this : ( "string" === s && ( a = r . exec ( o ) , a && ( o = u + parseFloat ( a [ 2 ] ) * ( "+" === a [ 1 ] ? 1 : - 1 ) ) ) , l [ n . idx ] = o , this [ c ] ( l ) ) ) } ) } ) } ) , l . hook = function ( e ) { var n = e . split ( " " ) ; f ( n , function ( e , n ) { t . cssHooks [ n ] = { set : function ( e , o ) { var a , s , r = "" ; if ( "transparent" !== o && ( "string" !== t . type ( o ) || ( a = i ( o ) ) ) ) { if ( o = l ( a || o ) , ! d . rgba && 1 !== o . _rgba [ 3 ] ) { for ( s = "backgroundColor" === n ? e . parentNode : e ; ( "" === r || "transparent" === r ) && s && s . style ; ) try { r = t . css ( s , "backgroundColor" ) , s = s . parentNode } catch ( c ) { } o = o . blend ( r && "transparent" !== r ? r : "_default" ) } o = o . toRgbaString ( ) } try { e . style [ n ] = o } catch ( c ) { } } } , t . fx . step [ n ] = function ( e ) { e . colorInit || ( e . start = l ( e . elem , n ) , e . end = l ( e . end ) , e . colorInit = ! 0 ) , t . cssHooks [ n ] . set ( e . elem , e . start . transition ( e . end , e . pos ) ) } } ) } , l . hook ( s ) , t . cssHooks . borderColor = { expand : function ( t ) { var e = { } ; return f ( [ "Top" , "Right" , "Bottom" , "Left" ] , function ( n , i ) { e [ "border" + i + "Color" ] = t } ) , e } } , a = t . Color . names = { aqua : "#00ffff" , black : "#000000" , blue : "#0000ff" , fuchsia : "#ff00ff" , gray : "#808080" , green : "#008000" , lime : "#00ff00" , maroon : "#800000" , navy : "#000080" , olive : "#808000" , purple : "#800080" , red : "#ff0000" , silver : "#c0c0c0" , teal : "#008080" , white : "#ffffff" , yellow : "#ffff00" , transparent : [ null , null , null , 0 ] , _default : "#ffffff" } } ( M ) , function ( ) { function e ( e ) { var n , i , o = e . ownerDocument . defaultView ?
} , _move : function ( t , e ) { var n , i , o = ".ui-menu-item" ; this . isOpen ? n = this . menuItems . eq ( this . focusIndex ) : ( n = this . menuItems . eq ( this . element [ 0 ] . selectedIndex ) , o += ":not(.ui-state-disabled)" ) , i = "first" === t || "last" === t ? n [ "first" === t ? "prevAll" : "nextAll" ] ( o ) . eq ( - 1 ) : n [ t + "All" ] ( o ) . eq ( 0 ) , i . length && this . menuInstance . focus ( e , i ) } , _getSelectedItem : function ( ) { return this . menuItems . eq ( this . element [ 0 ] . selectedIndex ) } , _toggle : function ( t ) { this [ this . isOpen ? "close" : "open" ] ( t ) } , _setSelection : function ( ) { var t ; this . range && ( window . getSelection ? ( t = window . getSelection ( ) , t . removeAllRanges ( ) , t . addRange ( this . range ) ) : this . range . select ( ) , this . button . focus ( ) ) } , _documentClick : { mousedown : function ( e ) { this . isOpen && ( t ( e . target ) . closest ( ".ui-selectmenu-menu, #" + this . ids . button ) . length || this . close ( e ) ) } } , _buttonEvents : { mousedown : function ( ) { var t ; window . getSelection ? ( t = window . getSelection ( ) , t . rangeCount && ( this . range = t . getRangeAt ( 0 ) ) ) : this . range = document . selection . createRange ( ) } , click : function ( t ) { this . _setSelection ( ) , this . _toggle ( t ) } , keydown : function ( e ) { var n = ! 0 ; switch ( e . keyCode ) { case t . ui . keyCode . TAB : case t . ui . keyCode . ESCAPE : this . close ( e ) , n = ! 1 ; break ; case t . ui . keyCode . ENTER : this . isOpen && this . _selectFocusedItem ( e ) ; break ; case t . ui . keyCode . UP : e . altKey ? this . _toggle ( e ) : this . _move ( "prev" , e ) ; break ; case t . ui . keyCode . DOWN : e . altKey ? this . _toggle ( e ) : this . _move ( "next" , e ) ; break ; case t . ui . keyCode . SPACE : this . isOpen ? this . _selectFocusedItem ( e ) : this . _toggle ( e ) ; break ; case t . ui . keyCode . LEFT : this . _move ( "prev" , e ) ; break ; case t . ui . keyCode . RIGHT : this . _move ( "next" , e ) ; break ; case t . ui . keyCode . HOME : case t . ui . keyCode . PAGE _UP : this . _move ( "first" , e ) ; break ; case t . ui . keyCode . END : case t . ui . keyCode . PAGE _DOWN : this . _move ( "last" , e ) ; break ; default : this . menu . trigger ( e ) , n = ! 1 } n && e . preventDefault ( ) } } , _selectFocusedItem : function ( t ) { var e = this . menuItems . eq ( this . focusIndex ) ; e . hasClass ( "ui-state-disabled" ) || this . _select ( e . data ( "ui-selectmenu-item" ) , t ) } , _select : function ( t , e ) { var n = this . element [ 0 ] . selectedIndex ; this . element [ 0 ] . selectedIndex = t . index , this . _setText ( this . buttonText , t . label ) , this . _setAria ( t ) , this . _trigger ( "select" , e , { item : t } ) , t . index !== n && this . _trigger ( "change" , e , { item : t } ) , this . close ( e ) } , _setAria : function ( t ) { var e = this . menuItems . eq ( t . index ) . attr ( "id" ) ; this . button . attr ( { "aria-labelledby" : e , "aria-activedescendant" : e } ) , this . menu . attr ( "aria-activedescendant" , e ) } , _setOption : function ( t , e ) { "icons" === t && this . button . find ( "span.ui-icon" ) . removeClass ( this . options . icons . button ) . addClass ( e . button ) , this . _super ( t , e ) , "appendTo" === t && this . menuWrap . appendTo ( this . _appendTo ( ) ) , "disabled" === t && ( this . menuInstance . option ( "disabled" , e ) , this . button . toggleClass ( "ui-state-disabled" , e ) . attr ( "aria-disabled" , e ) , this . element . prop ( "disabled" , e ) , e ? ( this . button . attr ( "tabindex" , - 1 ) , this . close ( ) ) : this . button . attr ( "tabindex" , 0 ) ) , "width" === t && this . _resizeButton ( ) } , _appendTo : function ( ) { var e = this . options . appendTo ; return e && ( e = e . jquery || e . nodeType ? t ( e ) : this . document . find ( e ) . eq ( 0 ) ) , e && e [ 0 ] || ( e = this . element . closest ( ".ui-front" ) ) , e . length || ( e = this . document [ 0 ] . body ) , e } , _toggleAttr : function ( ) { this . button . toggleClass ( "ui-corner-top" , this . isOpen ) . toggleClass ( "ui-corner-all" , ! this . isOpen ) . attr ( "aria-expanded" , this . isOpen ) , this . menuWrap . toggleClass ( "ui-selectmenu-open" , this . isOpen ) , this . menu . attr ( "aria-hidden" , ! this . isOpen ) } , _resizeButton : function ( ) { var t = this . options . width ; t || ( t = this . element . show ( ) . outerWidth ( ) , this . element . hide ( ) ) , this . button . outerWidth ( t ) } , _resizeMenu : function ( ) { this . menu . outerWidth ( Math . max ( this . button . outerWidth ( ) , this . menu . width ( "" ) . outerWidth ( ) + 1 ) ) } , _getCreateOptions : function ( ) { return { disabled : this . element . prop ( "disabled" ) } } , _parseOptions : function ( e ) { var n = [ ] ; e . each ( function ( e , i ) { var o = t ( i ) , a = o . parent ( "optgroup" ) ; n . push ( { element : o , index : e , value : o . attr ( "value" ) , label : o . text ( ) , optgroup : a . attr ( "label" ) || "" , disabled : a . prop ( "disabled" ) || o . prop ( "disabled" ) } ) } ) , this . items = n } , _destroy : function ( ) { this . menuWrap . remove ( ) , this . button . remove ( ) , this . element . show ( ) , this . element . removeUniqueId ( ) , this . label . attr ( "for" , this . ids . element ) } } ) , t . widget ( "ui.slider" , t . ui . mouse , { version : "1.11.2" , widgetEventPrefix : "slide" , options : { animate : ! 1 , distance : 0 , max : 100
this . margins = { left : parseInt ( this . currentItem . css ( "marginLeft" ) , 10 ) || 0 , top : parseInt ( this . currentItem . css ( "marginTop" ) , 10 ) || 0 } } , _cacheHelperProportions : function ( ) { this . helperProportions = { width : this . helper . outerWidth ( ) , height : this . helper . outerHeight ( ) } } , _setContainment : function ( ) { var e , n , i , o = this . options ; "parent" === o . containment && ( o . containment = this . helper [ 0 ] . parentNode ) , "document" !== o . containment && "window" !== o . containment || ( this . containment = [ 0 - this . offset . relative . left - this . offset . parent . left , 0 - this . offset . relative . top - this . offset . parent . top , t ( "document" === o . containment ? document : window ) . width ( ) - this . helperProportions . width - this . margins . left , ( t ( "document" === o . containment ? document : window ) . height ( ) || document . body . parentNode . scrollHeight ) - this . helperProportions . height - this . margins . top ] ) , /^(document|window|parent)$/ . test ( o . containment ) || ( e = t ( o . containment ) [ 0 ] , n = t ( o . containment ) . offset ( ) , i = "hidden" !== t ( e ) . css ( "overflow" ) , this . containment = [ n . left + ( parseInt ( t ( e ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) + ( parseInt ( t ( e ) . css ( "paddingLeft" ) , 10 ) || 0 ) - this . margins . left , n . top + ( parseInt ( t ( e ) . css ( "borderTopWidth" ) , 10 ) || 0 ) + ( parseInt ( t ( e ) . css ( "paddingTop" ) , 10 ) || 0 ) - this . margins . top , n . left + ( i ? Math . max ( e . scrollWidth , e . offsetWidth ) : e . offsetWidth ) - ( parseInt ( t ( e ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) - ( parseInt ( t ( e ) . css ( "paddingRight" ) , 10 ) || 0 ) - this . helperProportions . width - this . margins . left , n . top + ( i ? Math . max ( e . scrollHeight , e . offsetHeight ) : e . offsetHeight ) - ( parseInt ( t ( e ) . css ( "borderTopWidth" ) , 10 ) || 0 ) - ( parseInt ( t ( e ) . css ( "paddingBottom" ) , 10 ) || 0 ) - this . helperProportions . height - this . margins . top ] ) } , _convertPositionTo : function ( e , n ) { n || ( n = this . position ) ; var i = "absolute" === e ? 1 : - 1 , o = "absolute" !== this . cssPosition || this . scrollParent [ 0 ] !== document && t . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ? this . scrollParent : this . offsetParent , a = /(html|body)/i . test ( o [ 0 ] . tagName ) ; return { top : n . top + this . offset . relative . top * i + this . offset . parent . top * i - ( "fixed" === this . cssPosition ? - this . scrollParent . scrollTop ( ) : a ? 0 : o . scrollTop ( ) ) * i , left : n . left + this . offset . relative . left * i + this . offset . parent . left * i - ( "fixed" === this . cssPosition ? - this . scrollParent . scrollLeft ( ) : a ? 0 : o . scrollLeft ( ) ) * i } } , _generatePosition : function ( e ) { var n , i , o = this . options , a = e . pageX , s = e . pageY , r = "absolute" !== this . cssPosition || this . scrollParent [ 0 ] !== document && t . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ? this . scrollParent : this . offsetParent , c = /(html|body)/i . test ( r [ 0 ] . tagName ) ; return "relative" !== this . cssPosition || this . scrollParent [ 0 ] !== document && this . scrollParent [ 0 ] !== this . offsetParent [ 0 ] || ( this . offset . relative = this . _getRelativeOffset ( ) ) , this . originalPosition && ( this . containment && ( e . pageX - this . offset . click . left < this . containment [ 0 ] && ( a = this . containment [ 0 ] + this . offset . click . left ) , e . pageY - this . offset . click . top < this . containment [ 1 ] && ( s = this . containment [ 1 ] + this . offset . click . top ) , e . pageX - this . offset . click . left > this . containment [ 2 ] && ( a = this . containment [ 2 ] + this . offset . click . left ) , e . pageY - this . offset . click . top > this . containment [ 3 ] && ( s = this . containment [ 3 ] + this . offset . click . top ) ) , o . grid && ( n = this . originalPageY + Math . round ( ( s - this . originalPageY ) / o . grid [ 1 ] ) * o . grid [ 1 ] , s = this . containment ? n - this . offset . click . top >= this . containment [ 1 ] && n - this . offset . click . top <= this . containment [ 3 ] ? n : n - this . offset . click . top >= this . containment [ 1 ] ? n - o . grid [ 1 ] : n + o . grid [ 1 ] : n , i = this . originalPageX + Math . round ( ( a - this . originalPageX ) / o . grid [ 0 ] ) * o . grid [ 0 ] , a = this . containment ? i - this . offset . click . left >= this . containment [ 0 ] && i - this . offset . click . left <= this . containment [ 2 ] ? i : i - this . offset . click . left >= this . containment [ 0 ] ? i - o . grid [ 0 ] : i + o . grid [ 0 ] : i ) ) , { top : s - this . offset . click . top - this . offset . relative . top - this . offset . parent . top + ( "fixed" === this . cssPosition ? - this . scrollParent . scrollTop ( ) : c ? 0 : r . scrollTop ( ) ) , left : a - this . offset . click . left - this . offset . relative . left - this . offset . parent . left + ( "fixed" === this . cssPosition ? - this . scrollParent . scrollLeft ( ) : c ? 0 : r . scrollLeft ( ) ) } } , _rearrange : function ( t , e , n , i ) { n ? n [ 0 ] . appendChild ( this . placeholder [ 0 ] ) : e . item [ 0 ] . parentNode . insertBefore ( this . placeholder [ 0 ] , "down" === this . direction ? e . item [ 0 ] : e . item [ 0 ] . nextSibling ) , this . counter = this . counter ? ++ this . counter : 1 ; var o = this . counte
function e ( e ) { return this . each ( function ( ) { var i = t ( this ) , o = i . data ( "bs.button" ) , a = "object" == typeof e && e ; o || i . data ( "bs.button" , o = new n ( this , a ) ) , "toggle" == e ? o . toggle ( ) : e && o . setState ( e ) } ) } var n = function ( e , i ) { this . $element = t ( e ) , this . options = t . extend ( { } , n . DEFAULTS , i ) , this . isLoading = ! 1 } ; n . VERSION = "3.3.1" , n . DEFAULTS = { loadingText : "loading..." } , n . prototype . setState = function ( e ) { var n = "disabled" , i = this . $element , o = i . is ( "input" ) ? "val" : "html" , a = i . data ( ) ; e += "Text" , null == a . resetText && i . data ( "resetText" , i [ o ] ( ) ) , setTimeout ( t . proxy ( function ( ) { i [ o ] ( null == a [ e ] ? this . options [ e ] : a [ e ] ) , "loadingText" == e ? ( this . isLoading = ! 0 , i . addClass ( n ) . attr ( n , n ) ) : this . isLoading && ( this . isLoading = ! 1 , i . removeClass ( n ) . removeAttr ( n ) ) } , this ) , 0 ) } , n . prototype . toggle = function ( ) { var t = ! 0 , e = this . $element . closest ( '[data-toggle="buttons"]' ) ; if ( e . length ) { var n = this . $element . find ( "input" ) ; "radio" == n . prop ( "type" ) && ( n . prop ( "checked" ) && this . $element . hasClass ( "active" ) ? t = ! 1 : e . find ( ".active" ) . removeClass ( "active" ) ) , t && n . prop ( "checked" , ! this . $element . hasClass ( "active" ) ) . trigger ( "change" ) } else this . $element . attr ( "aria-pressed" , ! this . $element . hasClass ( "active" ) ) ; t && this . $element . toggleClass ( "active" ) } ; var i = t . fn . button ; t . fn . button = e , t . fn . button . Constructor = n , t . fn . button . noConflict = function ( ) { return t . fn . button = i , this } , t ( document ) . on ( "click.bs.button.data-api" , '[data-toggle^="button"]' , function ( n ) { var i = t ( n . target ) ; i . hasClass ( "btn" ) || ( i = i . closest ( ".btn" ) ) , e . call ( i , "toggle" ) , n . preventDefault ( ) } ) . on ( "focus.bs.button.data-api blur.bs.button.data-api" , '[data-toggle^="button"]' , function ( e ) { t ( e . target ) . closest ( ".btn" ) . toggleClass ( "focus" , /^focus(in)?$/ . test ( e . type ) ) } ) } ( jQuery ) , + function ( t ) { "use strict" ; function e ( e ) { return this . each ( function ( ) { var i = t ( this ) , o = i . data ( "bs.carousel" ) , a = t . extend ( { } , n . DEFAULTS , i . data ( ) , "object" == typeof e && e ) , s = "string" == typeof e ? e : a . slide ; o || i . data ( "bs.carousel" , o = new n ( this , a ) ) , "number" == typeof e ? o . to ( e ) : s ? o [ s ] ( ) : a . interval && o . pause ( ) . cycle ( ) } ) } var n = function ( e , n ) { this . $element = t ( e ) , this . $indicators = this . $element . find ( ".carousel-indicators" ) , this . options = n , this . paused = this . sliding = this . interval = this . $active = this . $items = null , this . options . keyboard && this . $element . on ( "keydown.bs.carousel" , t . proxy ( this . keydown , this ) ) , "hover" == this . options . pause && ! ( "ontouchstart" in document . documentElement ) && this . $element . on ( "mouseenter.bs.carousel" , t . proxy ( this . pause , this ) ) . on ( "mouseleave.bs.carousel" , t . proxy ( this . cycle , this ) ) } ; n . VERSION = "3.3.1" , n . TRANSITION _DURATION = 600 , n . DEFAULTS = { interval : 5e3 , pause : "hover" , wrap : ! 0 , keyboard : ! 0 } , n . prototype . keydown = function ( t ) { if ( ! /input|textarea/i . test ( t . target . tagName ) ) { switch ( t . which ) { case 37 : this . prev ( ) ; break ; case 39 : this . next ( ) ; break ; default : return } t . preventDefault ( ) } } , n . prototype . cycle = function ( e ) { return e || ( this . paused = ! 1 ) , this . interval && clearInterval ( this . interval ) , this . options . interval && ! this . paused && ( this . interval = setInterval ( t . proxy ( this . next , this ) , this . options . interval ) ) , this } , n . prototype . getItemIndex = function ( t ) { return this . $items = t . parent ( ) . children ( ".item" ) , this . $items . index ( t || this . $active ) } , n . prototype . getItemForDirection = function ( t , e ) { var n = "prev" == t ? - 1 : 1 , i = this . getItemIndex ( e ) , o = ( i + n ) % this . $items . length ; return this . $items . eq ( o ) } , n . prototype . to = function ( t ) { var e = this , n = this . getItemIndex ( this . $active = this . $element . find ( ".item.active" ) ) ; if ( ! ( t > this . $items . length - 1 || t < 0 ) ) return this . sliding ? this . $element . one ( "slid.bs.carousel" , function ( ) { e . to ( t ) } ) : n == t ? this . pause ( ) . cycle ( ) : this . slide ( t > n ? "next" : "prev" , this . $items . eq ( t ) ) } , n . prototype . pause = function ( e ) { return e || ( this . paused = ! 0 ) , this . $element . find ( ".next, .prev" ) . length && t . support . transition && ( this . $element . trigger ( t . support . transition . end ) , this . cycle ( ! 0 ) ) , this . interval = clearInterval ( this . interval ) , this } , n . prototype . next = function ( ) { if ( ! this . sliding ) return this . slide ( "next" ) } , n . prototype . prev = function ( ) { if ( ! this . sliding ) return this . slide ( "prev" ) } , n . prototype . slide = function ( e , i ) { var o = this . $element . find ( ".item.active" ) , a = i || this . getItemForDirection ( e , o ) , s = this . interval , r = "next" == e ? "left" : "right" , c = "next" == e ? "first" : "last" , l = this ; if ( ! a . length ) { if ( ! this . options . wrap ) return ; a = this . $element . fin
} , n . prototype . getPinnedOffset = function ( ) { if ( this . pinnedOffset ) return this . pinnedOffset ; this . $element . removeClass ( n . RESET ) . addClass ( "affix" ) ; var t = this . $target . scrollTop ( ) , e = this . $element . offset ( ) ; return this . pinnedOffset = e . top - t } , n . prototype . checkPositionWithEventLoop = function ( ) { setTimeout ( t . proxy ( this . checkPosition , this ) , 1 ) } , n . prototype . checkPosition = function ( ) { if ( this . $element . is ( ":visible" ) ) { var e = this . $element . height ( ) , i = this . options . offset , o = i . top , a = i . bottom , s = t ( "body" ) . height ( ) ; "object" != typeof i && ( a = o = i ) , "function" == typeof o && ( o = i . top ( this . $element ) ) , "function" == typeof a && ( a = i . bottom ( this . $element ) ) ; var r = this . getState ( s , e , o , a ) ; if ( this . affixed != r ) { null != this . unpin && this . $element . css ( "top" , "" ) ; var c = "affix" + ( r ? "-" + r : "" ) , l = t . Event ( c + ".bs.affix" ) ; if ( this . $element . trigger ( l ) , l . isDefaultPrevented ( ) ) return ; this . affixed = r , this . unpin = "bottom" == r ? this . getPinnedOffset ( ) : null , this . $element . removeClass ( n . RESET ) . addClass ( c ) . trigger ( c . replace ( "affix" , "affixed" ) + ".bs.affix" ) } "bottom" == r && this . $element . offset ( { top : s - e - a } ) } } ; var i = t . fn . affix ; t . fn . affix = e , t . fn . affix . Constructor = n , t . fn . affix . noConflict = function ( ) { return t . fn . affix = i , this } , t ( window ) . on ( "load" , function ( ) { t ( '[data-spy="affix"]' ) . each ( function ( ) { var n = t ( this ) , i = n . data ( ) ; i . offset = i . offset || { } , null != i . offsetBottom && ( i . offset . bottom = i . offsetBottom ) , null != i . offsetTop && ( i . offset . top = i . offsetTop ) , e . call ( n , i ) } ) } ) } ( jQuery ) , function ( t , e , n ) { ! function ( t ) { "use strict" ; "function" == typeof define && define . amd ? define ( "datatables" , [ "jquery" ] , t ) : "object" == typeof exports ? t ( require ( "jquery" ) ) : jQuery && ! jQuery . fn . dataTable && t ( jQuery ) } ( function ( i ) { "use strict" ; function o ( t ) { var e , n , a = "a aa ai ao as b fn i m o s " , s = { } ; i . each ( t , function ( i , r ) { e = i . match ( /^([^A-Z]+?)([A-Z])/ ) , e && a . indexOf ( e [ 1 ] + " " ) !== - 1 && ( n = i . replace ( e [ 0 ] , e [ 2 ] . toLowerCase ( ) ) , s [ n ] = i , "o" === e [ 1 ] && o ( t [ i ] ) ) } ) , t . _hungarianMap = s } function a ( t , e , s ) { t . _hungarianMap || o ( t ) ; var r ; i . each ( e , function ( o , c ) { r = t . _hungarianMap [ o ] , r === n || ! s && e [ r ] !== n || ( "o" === r . charAt ( 0 ) ? ( e [ r ] || ( e [ r ] = { } ) , i . extend ( ! 0 , e [ r ] , e [ o ] ) , a ( t [ r ] , e [ r ] , s ) ) : e [ r ] = e [ o ] ) } ) } function s ( t ) { var e = Yt . defaults . oLanguage , n = t . sZeroRecords ; ! t . sEmptyTable && n && "No data available in table" === e . sEmptyTable && Bt ( t , t , "sZeroRecords" , "sEmptyTable" ) , ! t . sLoadingRecords && n && "Loading..." === e . sLoadingRecords && Bt ( t , t , "sZeroRecords" , "sLoadingRecords" ) , t . sInfoThousands && ( t . sThousands = t . sInfoThousands ) ; var i = t . sDecimal ; i && $t ( i ) } function r ( t ) { ve ( t , "ordering" , "bSort" ) , ve ( t , "orderMulti" , "bSortMulti" ) , ve ( t , "orderClasses" , "bSortClasses" ) , ve ( t , "orderCellsTop" , "bSortCellsTop" ) , ve ( t , "order" , "aaSorting" ) , ve ( t , "orderFixed" , "aaSortingFixed" ) , ve ( t , "paging" , "bPaginate" ) , ve ( t , "pagingType" , "sPaginationType" ) , ve ( t , "pageLength" , "iDisplayLength" ) , ve ( t , "searching" , "bFilter" ) ; var e = t . aoSearchCols ; if ( e ) for ( var n = 0 , i = e . length ; n < i ; n ++ ) e [ n ] && a ( Yt . models . oSearch , e [ n ] ) } function c ( t ) { ve ( t , "orderable" , "bSortable" ) , ve ( t , "orderData" , "aDataSort" ) , ve ( t , "orderSequence" , "asSorting" ) , ve ( t , "orderDataType" , "sortDataType" ) } function l ( t ) { var e = t . oBrowser , n = i ( "<div/>" ) . css ( { position : "absolute" , top : 0 , left : 0 , height : 1 , width : 1 , overflow : "hidden" } ) . append ( i ( "<div/>" ) . css ( { position : "absolute" , top : 1 , left : 1 , width : 100 , overflow : "scroll" } ) . append ( i ( '<div class="test"/>' ) . css ( { width : "100%" , height : 10 } ) ) ) . appendTo ( "body" ) , o = n . find ( ".test" ) ; e . bScrollOversize = 100 === o [ 0 ] . offsetWidth , e . bScrollbarLeft = 1 !== o . offset ( ) . left , n . remove ( ) } function u ( t , e , i , o , a , s ) { var r , c = o , l = ! 1 ; for ( i !== n && ( r = i , l = ! 0 ) ; c !== a ; ) t . hasOwnProperty ( c ) && ( r = l ? e ( r , t [ c ] , c , t ) : t [ c ] , l = ! 0 , c += s ) ; return r } function h ( t , n ) { var o = Yt . defaults . column , a = t . aoColumns . length , s = i . extend ( { } , Yt . models . oColumn , o , { nTh : n ? n : e . createElement ( "th" ) , sTitle : o . sTitle ? o . sTitle : n ? n . innerHTML : "" , aDataSort : o . aDataSort ? o . aDataSort : [ a ] , mData : o . mData ? o . mData : a , idx : a } ) ; t . aoColumns . push ( s ) ; var r = t . aoPreSearchCols ; r [ a ] = i . extend ( { } , Yt . models . oSearch , r [ a ] ) , d ( t , a , null ) } function d ( t , e , o ) { var s = t . aoColumns [ e ] , r = t . oClasses , l = i ( s . nTh ) ; if ( ! s . sWidthOrig ) { s . sWidthOrig = l . attr ( "width" ) || null ; var u = ( l . attr ( "style" ) || "" ) . match ( /width:\s*(\d+[pxem%]+)/ ) ; u && ( s . sWidthOrig = u [ 1 ] ) } o !== n && null !== o && ( c ( o ) , a ( Yt . defaults . column , o ) , o . mDataProp === n || o . mData || ( o . mData = o . m
c = h [ r ] . sType || "string" , f [ e ] . _idx === n && ( f [ e ] . _idx = i . inArray ( f [ e ] [ 1 ] , h [ r ] . asSorting ) ) , u . push ( { src : l , col : r , dir : f [ e ] [ 1 ] , index : f [ e ] . _idx , type : c , formatter : Yt . ext . type . order [ c + "-pre" ] } ) ; return u } function Ct ( t ) { var e , n , i , o , a , s = [ ] , r = Yt . ext . type . order , c = t . aoData , l = ( t . aoColumns , 0 ) , u = t . aiDisplayMaster ; for ( v ( t ) , a = xt ( t ) , e = 0 , n = a . length ; e < n ; e ++ ) o = a [ e ] , o . formatter && l ++ , Dt ( t , o . col ) ; if ( "ssp" != jt ( t ) && 0 !== a . length ) { for ( e = 0 , i = u . length ; e < i ; e ++ ) s [ u [ e ] ] = e ; l === a . length ? u . sort ( function ( t , e ) { var n , i , o , r , l , u = a . length , h = c [ t ] . _aSortData , d = c [ e ] . _aSortData ; for ( o = 0 ; o < u ; o ++ ) if ( l = a [ o ] , n = h [ l . col ] , i = d [ l . col ] , r = n < i ? - 1 : n > i ? 1 : 0 , 0 !== r ) return "asc" === l . dir ? r : - r ; return n = s [ t ] , i = s [ e ] , n < i ? - 1 : n > i ? 1 : 0 } ) : u . sort ( function ( t , e ) { var n , i , o , l , u , h , d = a . length , p = c [ t ] . _aSortData , f = c [ e ] . _aSortData ; for ( o = 0 ; o < d ; o ++ ) if ( u = a [ o ] , n = p [ u . col ] , i = f [ u . col ] , h = r [ u . type + "-" + u . dir ] || r [ "string-" + u . dir ] , l = h ( n , i ) , 0 !== l ) return l ; return n = s [ t ] , i = s [ e ] , n < i ? - 1 : n > i ? 1 : 0 } ) } t . bSorted = ! 0 } function St ( t ) { for ( var e , n , i = t . aoColumns , o = xt ( t ) , a = t . oLanguage . oAria , s = 0 , r = i . length ; s < r ; s ++ ) { var c = i [ s ] , l = c . asSorting , u = c . sTitle . replace ( /<.*?>/g , "" ) , h = c . nTh ; h . removeAttribute ( "aria-sort" ) , c . bSortable ? ( o . length > 0 && o [ 0 ] . col == s ? ( h . setAttribute ( "aria-sort" , "asc" == o [ 0 ] . dir ? "ascending" : "descending" ) , n = l [ o [ 0 ] . index + 1 ] || l [ 0 ] ) : n = l [ 0 ] , e = u + ( "asc" === n ? a . sSortAscending : a . sSortDescending ) ) : e = u , h . setAttribute ( "aria-label" , e ) } } function Ot ( t , e , o , a ) { var s , r = t . aoColumns [ e ] , c = t . aaSorting , l = r . asSorting , u = function ( t , e ) { var o = t . _idx ; return o === n && ( o = i . inArray ( t [ 1 ] , l ) ) , o + 1 < l . length ? o + 1 : e ? null : 0 } ; if ( "number" == typeof c [ 0 ] && ( c = t . aaSorting = [ c ] ) , o && t . oFeatures . bSortMulti ) { var h = i . inArray ( e , de ( c , "0" ) ) ; h !== - 1 ? ( s = u ( c [ h ] , ! 0 ) , null === s ? c . splice ( h , 1 ) : ( c [ h ] [ 1 ] = l [ s ] , c [ h ] . _idx = s ) ) : ( c . push ( [ e , l [ 0 ] , 0 ] ) , c [ c . length - 1 ] . _idx = 0 ) } else c . length && c [ 0 ] [ 0 ] == e ? ( s = u ( c [ 0 ] ) , c . length = 1 , c [ 0 ] [ 1 ] = l [ s ] , c [ 0 ] . _idx = s ) : ( c . length = 0 , c . push ( [ e , l [ 0 ] ] ) , c [ 0 ] . _idx = 0 ) ; R ( t ) , "function" == typeof a && a ( t ) } function Nt ( t , e , n , i ) { var o = t . aoColumns [ n ] ; Rt ( e , { } , function ( e ) { o . bSortable !== ! 1 && ( t . oFeatures . bProcessing ? ( ft ( t , ! 0 ) , setTimeout ( function ( ) { Ot ( t , n , e . shiftKey , i ) , "ssp" !== jt ( t ) && ft ( t , ! 1 ) } , 0 ) ) : Ot ( t , n , e . shiftKey , i ) ) } ) } function Lt ( t ) { var e , n , o , a = t . aLastSort , s = t . oClasses . sSortColumn , r = xt ( t ) , c = t . oFeatures ; if ( c . bSort && c . bSortClasses ) { for ( e = 0 , n = a . length ; e < n ; e ++ ) o = a [ e ] . src , i ( de ( t . aoData , "anCells" , o ) ) . removeClass ( s + ( e < 2 ? e + 1 : 3 ) ) ; for ( e = 0 , n = r . length ; e < n ; e ++ ) o = r [ e ] . src , i ( de ( t . aoData , "anCells" , o ) ) . addClass ( s + ( e < 2 ? e + 1 : 3 ) ) } t . aLastSort = r } function Dt ( t , e ) { var n , i = t . aoColumns [ e ] , o = Yt . ext . order [ i . sSortDataType ] ; o && ( n = o . call ( t . oInstance , t , e , m ( t , e ) ) ) ; for ( var a , s , r = Yt . ext . type . order [ i . sType + "-pre" ] , c = 0 , l = t . aoData . length ; c < l ; c ++ ) a = t . aoData [ c ] , a . _aSortData || ( a . _aSortData = [ ] ) , a . _aSortData [ e ] && ! o || ( s = o ? n [ c ] : _ ( t , c , e , "sort" ) , a . _aSortData [ e ] = r ? r ( s ) : s ) } function qt ( t ) { if ( t . oFeatures . bStateSave && ! t . bDestroying ) { var e = { time : + new Date , start : t . _iDisplayStart , length : t . _iDisplayLength , order : i . extend ( ! 0 , [ ] , t . aaSorting ) , search : nt ( t . oPreviousSearch ) , columns : i . map ( t . aoColumns , function ( e , n ) { return { visible : e . bVisible , search : nt ( t . aoPreSearchCols [ n ] ) } } ) } ; Xt ( t , "aoStateSaveParams" , "stateSaveParams" , [ t , e ] ) , t . oSavedState = e , t . fnStateSaveCallback . call ( t . oInstance , t , e ) } } function kt ( t , e ) { var n , o , a = t . aoColumns ; if ( t . oFeatures . bStateSave ) { var s = t . fnStateLoadCallback . call ( t . oInstance , t ) ; if ( s && s . time ) { var r = Xt ( t , "aoStateLoadParams" , "stateLoadParams" , [ t , s ] ) ; if ( i . inArray ( ! 1 , r ) === - 1 ) { var c = t . iStateDuration ; if ( ! ( c > 0 && s . time < + new Date - 1e3 * c ) && a . length === s . columns . length ) { for ( t . oLoadedState = i . extend ( ! 0 , { } , s ) , t . _iDisplayStart = s . start , t . iInitDisplayStart = s . start , t . _iDisplayLength = s . length , t . aaSorting = [ ] , i . each ( s . order , function ( e , n ) { t . aaSorting . push ( n [ 0 ] >= a . length ? [ 0 , n [ 1 ] ] : n ) } ) , i . extend ( t . oPreviousSearch , it ( s . search ) ) , n = 0 , o = s . columns . length ; n < o ; n ++ ) { var l = s . columns [ n ] ; a [ n ] . bVisible = l . visible , i . extend ( t . aoPreSearchCols [ n ] , it ( l . search ) ) } Xt ( t , "aoStateLoaded" , "stateLoaded" , [ t , s ] ) } } } } } function Wt ( t ) { var e = Yt . settings , n = i . inArray ( t , de ( e , "nTable" ) ) ; return n !== - 1 ? e [ n ] : null } function Et ( e , n , i , o ) { if ( i = "DataTables warning: " + ( null !== e ? "table id=" + e . sTableId + " - " : "" ) + i , o && ( i += ". For more information about this error, please see http://datatables.net/tn/" + o ) , n ) t . console && console . log ;
var e = this ; return this . iterator ( "table" , function ( n , o ) { var a = [ ] ; i . each ( e [ o ] , function ( e , n ) { a . push ( [ n , t ] ) } ) , n . aaSorting = a } ) } ) , Kt ( "search()" , function ( t , e , o , a ) { var s = this . context ; return t === n ? 0 !== s . length ? s [ 0 ] . oPreviousSearch . sSearch : n : this . iterator ( "table" , function ( n ) { n . oFeatures . bFilter && J ( n , i . extend ( { } , n . oPreviousSearch , { sSearch : t + "" , bRegex : null !== e && e , bSmart : null === o || o , bCaseInsensitive : null === a || a } ) , 1 ) } ) } ) , Qt ( "columns().search()" , "column().search()" , function ( t , e , o , a ) { return this . iterator ( "column" , function ( s , r ) { var c = s . aoPreSearchCols ; return t === n ? c [ r ] . sSearch : void ( s . oFeatures . bFilter && ( i . extend ( c [ r ] , { sSearch : t + "" , bRegex : null !== e && e , bSmart : null === o || o , bCaseInsensitive : null === a || a } ) , J ( s , s . oPreviousSearch , 1 ) ) ) } ) } ) , Kt ( "state()" , function ( ) { return this . context . length ? this . context [ 0 ] . oSavedState : null } ) , Kt ( "state.clear()" , function ( ) { return this . iterator ( "table" , function ( t ) { t . fnStateSaveCallback . call ( t . oInstance , t , { } ) } ) } ) , Kt ( "state.loaded()" , function ( ) { return this . context . length ? this . context [ 0 ] . oLoadedState : null } ) , Kt ( "state.save()" , function ( ) { return this . iterator ( "table" , function ( t ) { qt ( t ) } ) } ) , Yt . versionCheck = Yt . fnVersionCheck = function ( t ) { for ( var e , n , i = Yt . version . split ( "." ) , o = t . split ( "." ) , a = 0 , s = o . length ; a < s ; a ++ ) if ( e = parseInt ( i [ a ] , 10 ) || 0 , n = parseInt ( o [ a ] , 10 ) || 0 , e !== n ) return e > n ; return ! 0 } , Yt . isDataTable = Yt . fnIsDataTable = function ( t ) { var e = i ( t ) . get ( 0 ) , n = ! 1 ; return i . each ( Yt . settings , function ( t , i ) { i . nTable !== e && i . nScrollHead !== e && i . nScrollFoot !== e || ( n = ! 0 ) } ) , n } , Yt . tables = Yt . fnTables = function ( t ) { return i . map ( Yt . settings , function ( e ) { if ( ! t || t && i ( e . nTable ) . is ( ":visible" ) ) return e . nTable } ) } , Yt . util = { throttle : Mt , escapeRegex : tt } , Yt . camelToHungarian = a , Kt ( "$()" , function ( t , e ) { var n = this . rows ( e ) . nodes ( ) , o = i ( n ) ; return i ( [ ] . concat ( o . filter ( t ) . toArray ( ) , o . find ( t ) . toArray ( ) ) ) } ) , i . each ( [ "on" , "one" , "off" ] , function ( t , e ) { Kt ( e + "()" , function ( ) { var t = Array . prototype . slice . call ( arguments ) ; t [ 0 ] . match ( /\.dt\b/ ) || ( t [ 0 ] += ".dt" ) ; var n = i ( this . tables ( ) . nodes ( ) ) ; return n [ e ] . apply ( n , t ) , this } ) } ) , Kt ( "clear()" , function ( ) { return this . iterator ( "table" , function ( t ) { N ( t ) } ) } ) , Kt ( "settings()" , function ( ) { return new Gt ( this . context , this . context ) } ) , Kt ( "data()" , function ( ) { return this . iterator ( "table" , function ( t ) { return de ( t . aoData , "_aData" ) } ) . flatten ( ) } ) , Kt ( "destroy()" , function ( e ) { return e = e || ! 1 , this . iterator ( "table" , function ( n ) { var o , a = n . nTableWrapper . parentNode , s = n . oClasses , r = n . nTable , c = n . nTBody , l = n . nTHead , u = n . nTFoot , h = i ( r ) , d = i ( c ) , p = i ( n . nTableWrapper ) , f = i . map ( n . aoData , function ( t ) { return t . nTr } ) ; n . bDestroying = ! 0 , Xt ( n , "aoDestroyCallback" , "destroy" , [ n ] ) , e || new Gt ( n ) . columns ( ) . visible ( ! 0 ) , p . unbind ( ".DT" ) . find ( ":not(tbody *)" ) . unbind ( ".DT" ) , i ( t ) . unbind ( ".DT-" + n . sInstance ) , r != l . parentNode && ( h . children ( "thead" ) . detach ( ) , h . append ( l ) ) , u && r != u . parentNode && ( h . children ( "tfoot" ) . detach ( ) , h . append ( u ) ) , h . detach ( ) , p . detach ( ) , n . aaSorting = [ ] , n . aaSortingFixed = [ ] , Lt ( n ) , i ( f ) . removeClass ( n . asStripeClasses . join ( " " ) ) , i ( "th, td" , l ) . removeClass ( s . sSortable + " " + s . sSortableAsc + " " + s . sSortableDesc + " " + s . sSortableNone ) , n . bJUI && ( i ( "th span." + s . sSortIcon + ", td span." + s . sSortIcon , l ) . detach ( ) , i ( "th, td" , l ) . each ( function ( ) { var t = i ( "div." + s . sSortJUIWrapper , this ) ; i ( this ) . append ( t . contents ( ) ) , t . detach ( ) } ) ) , ! e && a && a . insertBefore ( r , n . nTableReinsertBefore ) , d . children ( ) . detach ( ) , d . append ( f ) , h . css ( "width" , n . sDestroyWidth ) . removeClass ( s . sTable ) , o = n . asDestroyStripes . length , o && d . children ( ) . each ( function ( t ) { i ( this ) . addClass ( n . asDestroyStripes [ t % o ] ) } ) ; var m = i . inArray ( n , Yt . settings ) ; m !== - 1 && Yt . settings . splice ( m , 1 ) } ) } ) , Yt . version = "1.10.4" , Yt . settings = [ ] , Yt . models = { } , Yt . models . oSearch = { bCaseInsensitive : ! 0 , sSearch : "" , bRegex : ! 1 , bSmart : ! 0 } , Yt . models . oRow = { nTr : null , anCells : null , _aData : [ ] , _aSortData : null , _aFilterData : null , _sFilterRow : null , _sRowStripe : "" , src : null } , Yt . models . oColumn = { idx : null , aDataSort : null , asSorting : null , bSearchable : null , bSortable : null , bVisible : null , _sManualType : null , _bAttrSrc : ! 1 , fnCreatedCell : null , fnGetData : null , fnSetData : null , mData : null , mRender : null , nTh : null , nTf : null , sClass : null , sContentPadding : null , sDefaultContent : null , sName : null , sSortDataType : "std" , sSortingClass : null , sSortingClassJUI : null , sTitle : null , sType : null , sWi
} ) , n . body . appendChild ( d ) , i . submitter ? i . submitter ( d ) : d . submit ( ) , setTimeout ( function ( ) { d . parentNode . removeChild ( d ) } , 0 ) } } } ( ) , h . b ( "utils" , h . a ) , h . b ( "utils.arrayForEach" , h . a . r ) , h . b ( "utils.arrayFirst" , h . a . hb ) , h . b ( "utils.arrayFilter" , h . a . la ) , h . b ( "utils.arrayGetDistinctValues" , h . a . ib ) , h . b ( "utils.arrayIndexOf" , h . a . l ) , h . b ( "utils.arrayMap" , h . a . ya ) , h . b ( "utils.arrayPushAll" , h . a . $ ) , h . b ( "utils.arrayRemoveItem" , h . a . ma ) , h . b ( "utils.extend" , h . a . extend ) , h . b ( "utils.fieldsIncludedWithJsonPost" , h . a . mb ) , h . b ( "utils.getFormFields" , h . a . ob ) , h . b ( "utils.peekObservable" , h . a . Sa ) , h . b ( "utils.postJson" , h . a . gc ) , h . b ( "utils.parseJson" , h . a . fc ) , h . b ( "utils.registerEventHandler" , h . a . q ) , h . b ( "utils.stringifyJson" , h . a . Ya ) , h . b ( "utils.range" , h . a . ic ) , h . b ( "utils.toggleDomNodeCssClass" , h . a . ua ) , h . b ( "utils.triggerEvent" , h . a . ha ) , h . b ( "utils.unwrapObservable" , h . a . c ) , h . b ( "utils.objectForEach" , h . a . A ) , h . b ( "utils.addOrRemoveItem" , h . a . Y ) , h . b ( "unwrap" , h . a . c ) , Function . prototype . bind || ( Function . prototype . bind = function ( t ) { var e = this , n = Array . prototype . slice . call ( arguments ) ; return t = n . shift ( ) , function ( ) { return e . apply ( t , n . concat ( Array . prototype . slice . call ( arguments ) ) ) } } ) , h . a . f = new function ( ) { function e ( e , a ) { var s = e [ i ] ; if ( ! s || "null" === s || ! o [ s ] ) { if ( ! a ) return t ; s = e [ i ] = "ko" + n ++ , o [ s ] = { } } return o [ s ] } var n = 0 , i = "__ko__" + ( new Date ) . getTime ( ) , o = { } ; return { get : function ( n , i ) { var o = e ( n , ! 1 ) ; return o === t ? t : o [ i ] } , set : function ( n , i , o ) { o === t && e ( n , ! 1 ) === t || ( e ( n , ! 0 ) [ i ] = o ) } , clear : function ( t ) { var e = t [ i ] ; return ! ! e && ( delete o [ e ] , t [ i ] = null , ! 0 ) } , L : function ( ) { return n ++ + i } } } , h . b ( "utils.domData" , h . a . f ) , h . b ( "utils.domData.clear" , h . a . f . clear ) , h . a . u = new function ( ) { function e ( e , n ) { var o = h . a . f . get ( e , i ) ; return o === t && n && ( o = [ ] , h . a . f . set ( e , i , o ) ) , o } function n ( t ) { var i = e ( t , ! 1 ) ; if ( i ) for ( var i = i . slice ( 0 ) , o = 0 ; o < i . length ; o ++ ) i [ o ] ( t ) ; if ( h . a . f . clear ( t ) , h . a . u . cleanExternalData ( t ) , s [ t . nodeType ] ) for ( i = t . firstChild ; t = i ; ) i = t . nextSibling , 8 === t . nodeType && n ( t ) } var i = h . a . f . L ( ) , a = { 1 : ! 0 , 8 : ! 0 , 9 : ! 0 } , s = { 1 : ! 0 , 9 : ! 0 } ; return { ja : function ( t , n ) { if ( "function" != typeof n ) throw Error ( "Callback must be a function" ) ; e ( t , ! 0 ) . push ( n ) } , Ab : function ( n , o ) { var a = e ( n , ! 1 ) ; a && ( h . a . ma ( a , o ) , 0 == a . length && h . a . f . set ( n , i , t ) ) } , M : function ( t ) { if ( a [ t . nodeType ] && ( n ( t ) , s [ t . nodeType ] ) ) { var e = [ ] ; h . a . $ ( e , t . getElementsByTagName ( "*" ) ) ; for ( var i = 0 , o = e . length ; i < o ; i ++ ) n ( e [ i ] ) } return t } , removeNode : function ( t ) { h . M ( t ) , t . parentNode && t . parentNode . removeChild ( t ) } , cleanExternalData : function ( t ) { o && "function" == typeof o . cleanData && o . cleanData ( [ t ] ) } } } , h . M = h . a . u . M , h . removeNode = h . a . u . removeNode , h . b ( "cleanNode" , h . M ) , h . b ( "removeNode" , h . removeNode ) , h . b ( "utils.domNodeDisposal" , h . a . u ) , h . b ( "utils.domNodeDisposal.addDisposeCallback" , h . a . u . ja ) , h . b ( "utils.domNodeDisposal.removeDisposeCallback" , h . a . u . Ab ) , function ( ) { h . a . Qa = function ( t ) { var i ; if ( o ) { if ( o . parseHTML ) i = o . parseHTML ( t ) || [ ] ; else if ( ( i = o . clean ( [ t ] ) ) && i [ 0 ] ) { for ( t = i [ 0 ] ; t . parentNode && 11 !== t . parentNode . nodeType ; ) t = t . parentNode ; t . parentNode && t . parentNode . removeChild ( t ) } } else { var a = h . a . ta ( t ) . toLowerCase ( ) ; for ( i = n . createElement ( "div" ) , a = a . match ( /^<(thead|tbody|tfoot)/ ) && [ 1 , "<table>" , "</table>" ] || ! a . indexOf ( "<tr" ) && [ 2 , "<table><tbody>" , "</tbody></table>" ] || ( ! a . indexOf ( "<td" ) || ! a . indexOf ( "<th" ) ) && [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] || [ 0 , "" , "" ] , t = "ignored<div>" + a [ 1 ] + t + a [ 2 ] + "</div>" , "function" == typeof e . innerShiv ? i . appendChild ( e . innerShiv ( t ) ) : i . innerHTML = t ; a [ 0 ] -- ; ) i = i . lastChild ; i = h . a . R ( i . lastChild . childNodes ) } return i } , h . a . Va = function ( e , n ) { if ( h . a . Fa ( e ) , n = h . a . c ( n ) , null !== n && n !== t ) if ( "string" != typeof n && ( n = n . toString ( ) ) , o ) o ( e ) . html ( n ) ; else for ( var i = h . a . Qa ( n ) , a = 0 ; a < i . length ; a ++ ) e . appendChild ( i [ a ] ) } } ( ) , h . b ( "utils.parseHtmlFragment" , h . a . Qa ) , h . b ( "utils.setHtml" , h . a . Va ) , h . w = function ( ) { function e ( t , n ) { if ( t ) if ( 8 == t . nodeType ) { var i = h . w . xb ( t . nodeValue ) ; null != i && n . push ( { Rb : t , cc : i } ) } else if ( 1 == t . nodeType ) for ( var i = 0 , o = t . childNodes , a = o . length ; i < a ; i ++ ) e ( o [ i ] , n ) } var n = { } ; return { Na : function ( t ) { if ( "function" != typeof t ) throw Error ( "You can only pass a function to ko.memoization.memoize()" ) ; var e = ( 4294967296 * ( 1 + Math . random ( ) ) | 0 ) . toString ( 16 ) . substring ( 1 ) + ( 4294967296 * ( 1 + Math . random ( ) ) | 0 ) . toString ( 16 ) . substring ( 1 ) ; return n [ e ] = t , "<!--[ko_memo:" + e + "]-->" } , Hb : function ( e , i ) { va
var o = n . nextSibling ; o && o . nodeName . toLowerCase ( ) === e && h . xa ( o , t , i ) } ) } } } ( ) , h . b ( "__tr_ambtns" , h . Za . Mb ) , function ( ) { h . n = { } , h . n . j = function ( t ) { this . j = t } , h . n . j . prototype . text = function ( ) { var t = h . a . B ( this . j ) , t = "script" === t ? "text" : "textarea" === t ? "value" : "innerHTML" ; if ( 0 == arguments . length ) return this . j [ t ] ; var e = arguments [ 0 ] ; "innerHTML" === t ? h . a . Va ( this . j , e ) : this . j [ t ] = e } ; var e = h . a . f . L ( ) + "_" ; h . n . j . prototype . data = function ( t ) { return 1 === arguments . length ? h . a . f . get ( this . j , e + t ) : void h . a . f . set ( this . j , e + t , arguments [ 1 ] ) } ; var n = h . a . f . L ( ) ; h . n . Z = function ( t ) { this . j = t } , h . n . Z . prototype = new h . n . j , h . n . Z . prototype . text = function ( ) { if ( 0 == arguments . length ) { var e = h . a . f . get ( this . j , n ) || { } ; return e . $a === t && e . Ba && ( e . $a = e . Ba . innerHTML ) , e . $a } h . a . f . set ( this . j , n , { $a : arguments [ 0 ] } ) } , h . n . j . prototype . nodes = function ( ) { return 0 == arguments . length ? ( h . a . f . get ( this . j , n ) || { } ) . Ba : void h . a . f . set ( this . j , n , { Ba : arguments [ 0 ] } ) } , h . b ( "templateSources" , h . n ) , h . b ( "templateSources.domElement" , h . n . j ) , h . b ( "templateSources.anonymousTemplate" , h . n . Z ) } ( ) , function ( ) { function e ( t , e , n ) { var i ; for ( e = h . e . nextSibling ( e ) ; t && ( i = t ) !== e ; ) t = h . e . nextSibling ( i ) , n ( i , t ) } function n ( t , n ) { if ( t . length ) { var i = t [ 0 ] , o = t [ t . length - 1 ] , a = i . parentNode , s = h . J . instance , r = s . preprocessNode ; if ( r ) { if ( e ( i , o , function ( t , e ) { var n = t . previousSibling , a = r . call ( s , t ) ; a && ( t === i && ( i = a [ 0 ] || e ) , t === o && ( o = a [ a . length - 1 ] || n ) ) } ) , t . length = 0 , ! i ) return ; i === o ? t . push ( i ) : ( t . push ( i , o ) , h . a . ea ( t , a ) ) } e ( i , o , function ( t ) { 1 !== t . nodeType && 8 !== t . nodeType || h . fb ( n , t ) } ) , e ( i , o , function ( t ) { 1 !== t . nodeType && 8 !== t . nodeType || h . w . Ib ( t , [ n ] ) } ) , h . a . ea ( t , a ) } } function i ( t ) { return t . nodeType ? t : 0 < t . length ? t [ 0 ] : null } function o ( t , e , o , s , r ) { r = r || { } ; var c = t && i ( t ) , c = c && c . ownerDocument , l = r . templateEngine || a ; if ( h . Za . Ub ( o , l , c ) , o = l . renderTemplate ( o , s , r , c ) , "number" != typeof o . length || 0 < o . length && "number" != typeof o [ 0 ] . nodeType ) throw Error ( "Template engine must return an array of DOM nodes" ) ; switch ( c = ! 1 , e ) { case "replaceChildren" : h . e . U ( t , o ) , c = ! 0 ; break ; case "replaceNode" : h . a . Bb ( t , o ) , c = ! 0 ; break ; case "ignoreTargetNode" : break ; default : throw Error ( "Unknown renderMode: " + e ) } return c && ( n ( o , s ) , r . afterRender && h . k . t ( r . afterRender , null , [ o , s . $data ] ) ) , o } var a ; h . Wa = function ( e ) { if ( e != t && ! ( e instanceof h . C ) ) throw Error ( "templateEngine must inherit from ko.templateEngine" ) ; a = e } , h . Ta = function ( e , n , s , r , c ) { if ( s = s || { } , ( s . templateEngine || a ) == t ) throw Error ( "Set a template engine before calling renderTemplate" ) ; if ( c = c || "replaceChildren" , r ) { var l = i ( r ) ; return h . h ( function ( ) { var t = n && n instanceof h . I ? n : new h . I ( h . a . c ( n ) ) , a = h . v ( e ) ? e ( ) : "function" == typeof e ? e ( t . $data , t ) : e , t = o ( r , c , a , t , s ) ; "replaceNode" == c && ( r = t , l = i ( r ) ) } , null , { Da : function ( ) { return ! l || ! h . a . Ea ( l ) } , G : l && "replaceNode" == c ? l . parentNode : l } ) } return h . w . Na ( function ( t ) { h . Ta ( e , n , s , t , "replaceNode" ) } ) } , h . jc = function ( e , i , a , s , r ) { function c ( t , e ) { n ( e , u ) , a . afterRender && a . afterRender ( e , t ) } function l ( t , n ) { u = r . createChildContext ( t , a . as , function ( t ) { t . $index = n } ) ; var i = "function" == typeof e ? e ( t , u ) : e ; return o ( null , "ignoreTargetNode" , i , u , a ) } var u ; return h . h ( function ( ) { var e = h . a . c ( i ) || [ ] ; "undefined" == typeof e . length && ( e = [ e ] ) , e = h . a . la ( e , function ( e ) { return a . includeDestroyed || e === t || null === e || ! h . a . c ( e . _destroy ) } ) , h . k . t ( h . a . Ua , null , [ s , e , l , a , c ] ) } , null , { G : s } ) } ; var s = h . a . f . L ( ) ; h . d . template = { init : function ( t , e ) { var n = h . a . c ( e ( ) ) ; return "string" == typeof n || n . name ? h . e . da ( t ) : ( n = h . e . childNodes ( t ) , n = h . a . ec ( n ) , new h . n . Z ( t ) . nodes ( n ) ) , { controlsDescendantBindings : ! 0 } } , update : function ( e , n , i , o , a ) { var r , c = n ( ) ; n = h . a . c ( c ) , i = ! 0 , o = null , "string" == typeof n ? n = { } : ( c = n . name , "if" in n && ( i = h . a . c ( n [ "if" ] ) ) , i && "ifnot" in n && ( i = ! h . a . c ( n . ifnot ) ) , r = h . a . c ( n . data ) ) , "foreach" in n ? o = h . jc ( c || e , i && n . foreach || [ ] , n , e , a ) : i ? ( a = "data" in n ? a . createChildContext ( r , n . as ) : a , o = h . Ta ( c || e , a , n , e ) ) : h . e . da ( e ) , a = o , ( r = h . a . f . get ( e , s ) ) && "function" == typeof r . F && r . F ( ) , h . a . f . set ( e , s , a && a . ga ( ) ? a : t ) } } , h . g . aa . template = function ( t ) { return t = h . g . Ra ( t ) , 1 == t . length && t [ 0 ] . unknown || h . g . bc ( t , "name" ) ? null : "This template engine does not support anonymous templates nested within its templates" } , h . e . Q . template = ! 0 } ( ) , h . b ( "setTemplateEngine" , h . Wa ) , h . b ( "renderTemplate" , h . Ta ) , h . a . nb = function ( t , e , n ) { if ( t . length && e . length ) { var i , o , a , s , r ; for ( i = o = 0 ; ( ! n || i < n ) && ( s = t [ o ] ) ; ++ o ) { for ( a = 0
var o = c . call ( t ) ; if ( o !== c . call ( e ) ) return ! 1 ; switch ( o ) { case "[object RegExp]" : case "[object String]" : return "" + t == "" + e ; case "[object Number]" : return + t !== + t ? + e !== + e : 0 === + t ? 1 / + t === 1 / e : + t === + e ; case "[object Date]" : case "[object Boolean]" : return + t === + e } if ( "object" != typeof t || "object" != typeof e ) return ! 1 ; for ( var a = n . length ; a -- ; ) if ( n [ a ] === t ) return i [ a ] === e ; var s = t . constructor , r = e . constructor ; if ( s !== r && "constructor" in t && "constructor" in e && ! ( p . isFunction ( s ) && s instanceof s && p . isFunction ( r ) && r instanceof r ) ) return ! 1 ; n . push ( t ) , i . push ( e ) ; var l , u ; if ( "[object Array]" === o ) { if ( l = t . length , u = l === e . length ) for ( ; l -- && ( u = M ( t [ l ] , e [ l ] , n , i ) ) ; ) ; } else { var h , d = p . keys ( t ) ; if ( l = d . length , u = p . keys ( e ) . length === l ) for ( ; l -- && ( h = d [ l ] , u = p . has ( e , h ) && M ( t [ h ] , e [ h ] , n , i ) ) ; ) ; } return n . pop ( ) , i . pop ( ) , u } ; p . isEqual = function ( t , e ) { return M ( t , e , [ ] , [ ] ) } , p . isEmpty = function ( t ) { if ( null == t ) return ! 0 ; if ( p . isArray ( t ) || p . isString ( t ) || p . isArguments ( t ) ) return 0 === t . length ; for ( var e in t ) if ( p . has ( t , e ) ) return ! 1 ; return ! 0 } , p . isElement = function ( t ) { return ! ( ! t || 1 !== t . nodeType ) } , p . isArray = u || function ( t ) { return "[object Array]" === c . call ( t ) } , p . isObject = function ( t ) { var e = typeof t ; return "function" === e || "object" === e && ! ! t } , p . each ( [ "Arguments" , "Function" , "String" , "Number" , "Date" , "RegExp" ] , function ( t ) { p [ "is" + t ] = function ( e ) { return c . call ( e ) === "[object " + t + "]" } } ) , p . isArguments ( arguments ) || ( p . isArguments = function ( t ) { return p . has ( t , "callee" ) } ) , "function" != typeof /./ && ( p . isFunction = function ( t ) { return "function" == typeof t || ! 1 } ) , p . isFinite = function ( t ) { return isFinite ( t ) && ! isNaN ( parseFloat ( t ) ) } , p . isNaN = function ( t ) { return p . isNumber ( t ) && t !== + t } , p . isBoolean = function ( t ) { return t === ! 0 || t === ! 1 || "[object Boolean]" === c . call ( t ) } , p . isNull = function ( t ) { return null === t } , p . isUndefined = function ( t ) { return void 0 === t } , p . has = function ( t , e ) { return null != t && l . call ( t , e ) } , p . noConflict = function ( ) { return t . _ = e , this } , p . identity = function ( t ) { return t } , p . constant = function ( t ) { return function ( ) { return t } } , p . noop = function ( ) { } , p . property = function ( t ) { return function ( e ) { return e [ t ] } } , p . matches = function ( t ) { var e = p . pairs ( t ) , n = e . length ; return function ( t ) { if ( null == t ) return ! n ; t = new Object ( t ) ; for ( var i = 0 ; i < n ; i ++ ) { var o = e [ i ] , a = o [ 0 ] ; if ( o [ 1 ] !== t [ a ] || ! ( a in t ) ) return ! 1 } return ! 0 } } , p . times = function ( t , e , n ) { var i = Array ( Math . max ( 0 , t ) ) ; e = f ( e , n , 1 ) ; for ( var o = 0 ; o < t ; o ++ ) i [ o ] = e ( o ) ; return i } , p . random = function ( t , e ) { return null == e && ( e = t , t = 0 ) , t + Math . floor ( Math . random ( ) * ( e - t + 1 ) ) } , p . now = Date . now || function ( ) { return ( new Date ) . getTime ( ) } ; var y = { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" , "`" : "`" } , A = p . invert ( y ) , w = function ( t ) { var e = function ( e ) { return t [ e ] } , n = "(?:" + p . keys ( t ) . join ( "|" ) + ")" , i = RegExp ( n ) , o = RegExp ( n , "g" ) ; return function ( t ) { return t = null == t ? "" : "" + t , i . test ( t ) ? t . replace ( o , e ) : t } } ; p . escape = w ( y ) , p . unescape = w ( A ) , p . result = function ( t , e ) { if ( null != t ) { var n = t [ e ] ; return p . isFunction ( n ) ? t [ e ] ( ) : n } } ; var z = 0 ; p . uniqueId = function ( t ) { var e = ++ z + "" ; return t ? t + e : e } , p . templateSettings = { evaluate : /<%([\s\S]+?)%>/g , interpolate : /<%=([\s\S]+?)%>/g , escape : /<%-([\s\S]+?)%>/g } ; var _ = /(.)^/ , T = { "'" : "'" , "\\" : "\\" , "\r" : "r" , "\n" : "n" , "\u2028" : "u2028" , "\u2029" : "u2029" } , x = /\\|'|\r|\n|\u2028|\u2029/g , C = function ( t ) { return "\\" + T [ t ] } ; p . template = function ( t , e , n ) { ! e && n && ( e = n ) , e = p . defaults ( { } , e , p . templateSettings ) ; var i = RegExp ( [ ( e . escape || _ ) . source , ( e . interpolate || _ ) . source , ( e . evaluate || _ ) . source ] . join ( "|" ) + "|$" , "g" ) , o = 0 , a = "__p+='" ; t . replace ( i , function ( e , n , i , s , r ) { return a += t . slice ( o , r ) . replace ( x , C ) , o = r + e . length , n ? a += "'+\n((__t=(" + n + "))==null?'':_.escape(__t))+\n'" : i ? a += "'+\n((__t=(" + i + "))==null?'':__t)+\n'" : s && ( a += "';\n" + s + "\n__p+='" ) , e } ) , a += "';\n" , e . variable || ( a = "with(obj||{}){\n" + a + "}\n" ) , a = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + a + "return __p;\n" ; try { var s = new Function ( e . variable || "obj" , "_" , a ) } catch ( r ) { throw r . source = a , r } var c = function ( t ) { return s . call ( this , t , p ) } , l = e . variable || "obj" ; return c . source = "function(" + l + "){\n" + a + "}" , c } , p . chain = function ( t ) { var e = p ( t ) ; return e . _chain = ! 0 , e } ; var S = function ( t ) { return this . _chain ? p ( t ) . chain ( ) : t } ; p . mixin = function ( t ) { p . each ( p . functions ( t ) , function ( e ) { var n = p [ e ] = t [ e ] ; p . prototype [ e ] = function ( ) { var t = [ this . _wrap
for ( u = 0 ; u < v . length ; u ++ ) z = v [ u ] , z in b && ! isNaN ( b [ z ] ) && ( w = new Date ( i ) , M [ z ] ( w , b [ z ] ) , isNaN ( w ) || ( i = w ) ) } return i } , formatDate : function ( e , n , i ) { if ( ! e ) return "" ; "string" == typeof n && ( n = g . parseFormat ( n ) ) ; var o = { d : e . getUTCDate ( ) , D : m [ i ] . daysShort [ e . getUTCDay ( ) ] , DD : m [ i ] . days [ e . getUTCDay ( ) ] , m : e . getUTCMonth ( ) + 1 , M : m [ i ] . monthsShort [ e . getUTCMonth ( ) ] , MM : m [ i ] . months [ e . getUTCMonth ( ) ] , yy : e . getUTCFullYear ( ) . toString ( ) . substring ( 2 ) , yyyy : e . getUTCFullYear ( ) } ; o . dd = ( o . d < 10 ? "0" : "" ) + o . d , o . mm = ( o . m < 10 ? "0" : "" ) + o . m , e = [ ] ; for ( var a = t . extend ( [ ] , n . separators ) , s = 0 , r = n . parts . length ; s <= r ; s ++ ) a . length && e . push ( a . shift ( ) ) , e . push ( o [ n . parts [ s ] ] ) ; return e . join ( "" ) } , headTemplate : '<thead><tr><th class="prev">«</th><th colspan="5" class="datepicker-switch"></th><th class="next">»</th></tr></thead>' , contTemplate : '<tbody><tr><td colspan="7"></td></tr></tbody>' , footTemplate : '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>' } ; g . template = '<div class="datepicker"><div class="datepicker-days"><table class=" table-condensed">' + g . headTemplate + "<tbody></tbody>" + g . footTemplate + '</table></div><div class="datepicker-months"><table class="table-condensed">' + g . headTemplate + g . contTemplate + g . footTemplate + '</table></div><div class="datepicker-years"><table class="table-condensed">' + g . headTemplate + g . contTemplate + g . footTemplate + "</table></div></div>" , t . fn . datepicker . DPGlobal = g , t . fn . datepicker . noConflict = function ( ) { return t . fn . datepicker = h , this } , t . fn . datepicker . version = "1.4.0" , t ( document ) . on ( "focus.datepicker.data-api click.datepicker.data-api" , '[data-provide="datepicker"]' , function ( e ) { var n = t ( this ) ; n . data ( "datepicker" ) || ( e . preventDefault ( ) , d . call ( n , "show" ) ) } ) , t ( function ( ) { d . call ( t ( '[data-provide="datepicker-inline"]' ) ) } ) } ( window . jQuery ) , ! function ( t ) { t . fn . datepicker . dates . de = { days : [ "Sonntag" , "Montag" , "Dienstag" , "Mittwoch" , "Donnerstag" , "Freitag" , "Samstag" , "Sonntag" ] , daysShort : [ "Son" , "Mon" , "Die" , "Mit" , "Don" , "Fre" , "Sam" , "Son" ] , daysMin : [ "So" , "Mo" , "Di" , "Mi" , "Do" , "Fr" , "Sa" , "So" ] , months : [ "Januar" , "Februar" , "März" , "April" , "Mai" , "Juni" , "Juli" , "August" , "September" , "Oktober" , "November" , "Dezember" ] , monthsShort : [ "Jan" , "Feb" , "Mär" , "Apr" , "Mai" , "Jun" , "Jul" , "Aug" , "Sep" , "Okt" , "Nov" , "Dez" ] , today : "Heute" , clear : "Löschen" , weekStart : 1 , format : "dd.mm.yyyy" } } ( jQuery ) , ! function ( t ) { t . fn . datepicker . dates . da = { days : [ "Søndag" , "Mandag" , "Tirsdag" , "Onsdag" , "Torsdag" , "Fredag" , "Lørdag" , "Søndag" ] , daysShort : [ "Søn" , "Man" , "Tir" , "Ons" , "Tor" , "Fre" , "Lør" , "Søn" ] , daysMin : [ "Sø" , "Ma" , "Ti" , "On" , "To" , "Fr" , "Lø" , "Sø" ] , months : [ "Januar" , "Februar" , "Marts" , "April" , "Maj" , "Juni" , "Juli" , "August" , "September" , "Oktober" , "November" , "December" ] , monthsShort : [ "Jan" , "Feb" , "Mar" , "Apr" , "Maj" , "Jun" , "Jul" , "Aug" , "Sep" , "Okt" , "Nov" , "Dec" ] , today : "I Dag" , clear : "Nulstil" } } ( jQuery ) , ! function ( t ) { t . fn . datepicker . dates [ "pt-BR" ] = { days : [ "Domingo" , "Segunda" , "Terça" , "Quarta" , "Quinta" , "Sexta" , "Sábado" , "Domingo" ] , daysShort : [ "Dom" , "Seg" , "Ter" , "Qua" , "Qui" , "Sex" , "Sáb" , "Dom" ] , daysMin : [ "Do" , "Se" , "Te" , "Qu" , "Qu" , "Se" , "Sa" , "Do" ] , months : [ "Janeiro" , "Fevereiro" , "Março" , "Abril" , "Maio" , "Junho" , "Julho" , "Agosto" , "Setembro" , "Outubro" , "Novembro" , "Dezembro" ] , monthsShort : [ "Jan" , "Fev" , "Mar" , "Abr" , "Mai" , "Jun" , "Jul" , "Ago" , "Set" , "Out" , "Nov" , "Dez" ] , today : "Hoje" , clear : "Limpar" } } ( jQuery ) , ! function ( t ) { t . fn . datepicker . dates . nl = { days : [ "zondag" , "maandag" , "dinsdag" , "woensdag" , "donderdag" , "vrijdag" , "zaterdag" , "zondag" ] , daysShort : [ "zo" , "ma" , "di" , "wo" , "do" , "vr" , "za" , "zo" ] , daysMin : [ "zo" , "ma" , "di" , "wo" , "do" , "vr" , "za" , "zo" ] , months : [ "januari" , "februari" , "maart" , "april" , "mei" , "juni" , "juli" , "augustus" , "september" , "oktober" , "november" , "december" ] , monthsShort : [ "jan" , "feb" , "mrt" , "apr" , "mei" , "jun" , "jul" , "aug" , "sep" , "okt" , "nov" , "dec" ] , today : "Vandaag" , clear : "Wissen" , weekStart : 1 , format : "dd-mm-yyyy" } } ( jQuery ) , ! function ( t ) { t . fn . datepicker . dates . fr = { days : [ "dimanche" , "lundi" , "mardi" , "mercredi" , "jeudi" , "vendredi" , "samedi" , "dimanche" ] , daysShort : [ "dim." , "lun." , "mar." , "mer." , "jeu." , "ven." , "sam." , "dim." ] , daysMin : [ "d" , "l" , "ma" , "me" , "j" , "v" , "s" , "d" ] , months : [ "janvier" , "février" , "mars" , "avril" , "mai" , "juin" , "juillet" , "août" , "septembre" , "octobre" , "novembre" ,
this . uploadFiles ( t ) } , n . prototype . _getFilesWithXhr = function ( t ) { var e , n ; return n = function ( ) { var n , i , o , a ; for ( o = this . files , a = [ ] , n = 0 , i = o . length ; n < i ; n ++ ) e = o [ n ] , e . xhr === t && a . push ( e ) ; return a } . call ( this ) } , n . prototype . cancelUpload = function ( t ) { var e , i , o , a , s , r , c ; if ( t . status === n . UPLOADING ) { for ( i = this . _getFilesWithXhr ( t . xhr ) , o = 0 , s = i . length ; o < s ; o ++ ) e = i [ o ] , e . status = n . CANCELED ; for ( t . xhr . abort ( ) , a = 0 , r = i . length ; a < r ; a ++ ) e = i [ a ] , this . emit ( "canceled" , e ) ; this . options . uploadMultiple && this . emit ( "canceledmultiple" , i ) } else ( c = t . status ) !== n . ADDED && c !== n . QUEUED || ( t . status = n . CANCELED , this . emit ( "canceled" , t ) , this . options . uploadMultiple && this . emit ( "canceledmultiple" , [ t ] ) ) ; if ( this . options . autoProcessQueue ) return this . processQueue ( ) } , o = function ( ) { var t , e ; return e = arguments [ 0 ] , t = 2 <= arguments . length ? c . call ( arguments , 1 ) : [ ] , "function" == typeof e ? e . apply ( this , t ) : e } , n . prototype . uploadFile = function ( t ) { return this . uploadFiles ( [ t ] ) } , n . prototype . uploadFiles = function ( t ) { var e , a , s , r , c , l , u , h , d , p , f , m , g , b , v , M , y , A , w , z , _ , T , x , C , S , O , N , L , D , q , k , W , E , B ; for ( w = new XMLHttpRequest , z = 0 , C = t . length ; z < C ; z ++ ) e = t [ z ] , e . xhr = w ; m = o ( this . options . method , t ) , y = o ( this . options . url , t ) , w . open ( m , y , ! 0 ) , w . withCredentials = ! ! this . options . withCredentials , v = null , s = function ( n ) { return function ( ) { var i , o , a ; for ( a = [ ] , i = 0 , o = t . length ; i < o ; i ++ ) e = t [ i ] , a . push ( n . _errorProcessing ( t , v || n . options . dictResponseError . replace ( "{{statusCode}}" , w . status ) , w ) ) ; return a } } ( this ) , M = function ( n ) { return function ( i ) { var o , a , s , r , c , l , u , h , d ; if ( null != i ) for ( a = 100 * i . loaded / i . total , s = 0 , l = t . length ; s < l ; s ++ ) e = t [ s ] , e . upload = { progress : a , total : i . total , bytesSent : i . loaded } ; else { for ( o = ! 0 , a = 100 , r = 0 , u = t . length ; r < u ; r ++ ) e = t [ r ] , 100 === e . upload . progress && e . upload . bytesSent === e . upload . total || ( o = ! 1 ) , e . upload . progress = a , e . upload . bytesSent = e . upload . total ; if ( o ) return } for ( d = [ ] , c = 0 , h = t . length ; c < h ; c ++ ) e = t [ c ] , d . push ( n . emit ( "uploadprogress" , e , a , e . upload . bytesSent ) ) ; return d } } ( this ) , w . onload = function ( e ) { return function ( i ) { var o ; if ( t [ 0 ] . status !== n . CANCELED && 4 === w . readyState ) { if ( v = w . responseText , w . getResponseHeader ( "content-type" ) && ~ w . getResponseHeader ( "content-type" ) . indexOf ( "application/json" ) ) try { v = JSON . parse ( v ) } catch ( a ) { i = a , v = "Invalid JSON response from server." } return M ( ) , 200 <= ( o = w . status ) && o < 300 ? e . _finished ( t , v , i ) : s ( ) } } } ( this ) , w . onerror = function ( e ) { return function ( ) { if ( t [ 0 ] . status !== n . CANCELED ) return s ( ) } } ( this ) , b = null != ( D = w . upload ) ? D : w , b . onprogress = M , l = { Accept : "application/json" , "Cache-Control" : "no-cache" , "X-Requested-With" : "XMLHttpRequest" } , this . options . headers && i ( l , this . options . headers ) ; for ( r in l ) c = l [ r ] , c && w . setRequestHeader ( r , c ) ; if ( a = new FormData , this . options . params ) { q = this . options . params ; for ( f in q ) A = q [ f ] , a . append ( f , A ) } for ( _ = 0 , S = t . length ; _ < S ; _ ++ ) e = t [ _ ] , this . emit ( "sending" , e , w , a ) ; if ( this . options . uploadMultiple && this . emit ( "sendingmultiple" , t , w , a ) , "FORM" === this . element . tagName ) for ( k = this . element . querySelectorAll ( "input, textarea, select, button" ) , T = 0 , O = k . length ; T < O ; T ++ ) if ( h = k [ T ] , d = h . getAttribute ( "name" ) , p = h . getAttribute ( "type" ) , "SELECT" === h . tagName && h . hasAttribute ( "multiple" ) ) for ( W = h . options , x = 0 , N = W . length ; x < N ; x ++ ) g = W [ x ] , g . selected && a . append ( d , g . value ) ; else ( ! p || "checkbox" !== ( E = p . toLowerCase ( ) ) && "radio" !== E || h . checked ) && a . append ( d , h . value ) ; for ( u = L = 0 , B = t . length - 1 ; 0 <= B ? L <= B : L >= B ; u = 0 <= B ? ++ L : -- L ) a . append ( this . _getParamName ( u ) , t [ u ] , this . _renameFilename ( t [ u ] . name ) ) ; return this . submitRequest ( w , a , t ) } , n . prototype . submitRequest = function ( t , e , n ) { return t . send ( e ) } , n . prototype . _finished = function ( t , e , i ) { var o , a , s ; for ( a = 0 , s = t . length ; a < s ; a ++ ) o = t [ a ] , o . status = n . SUCCESS , this . emit ( "success" , o , e , i ) , this . emit ( "complete" , o ) ; if ( this . options . uploadMultiple && ( this . emit ( "successmultiple" , t , e , i ) , this . emit ( "completemultiple" , t ) ) , this . options . autoProcessQueue ) return this . processQueue ( ) } , n . prototype . _errorProcessing = function ( t , e , i ) { var o , a , s ; for ( a = 0 , s = t . length ; a < s ; a ++ ) o = t [ a ] , o . status = n . ERROR , this . emit ( "error" , o , e , i ) , this . emit ( "complete" , o ) ; if ( this . options . uploadMultiple && ( this . emit ( "errormultiple" , t , e , i ) , this . emit ( "completemultiple" , t ) ) , this . options . autoProcessQueue ) return this . processQueue ( ) } , n } ( e ) , t . version = "4.3.0" , t . options = { } , t . optionsForElement = function ( e ) { return e . getAttribute ( "id" ) ? t . opt
} ) } function r ( t , e ) { t . data ( m . attrs , { dir : t . attr ( "dir" ) , autocomplete : t . attr ( "autocomplete" ) , spellcheck : t . attr ( "spellcheck" ) , style : t . attr ( "style" ) } ) , t . addClass ( e . classes . input ) . attr ( { autocomplete : "off" , spellcheck : ! 1 } ) ; try { ! t . attr ( "dir" ) && t . attr ( "dir" , "auto" ) } catch ( n ) { } return t } function h ( t ) { return { backgroundAttachment : t . css ( "background-attachment" ) , backgroundClip : t . css ( "background-clip" ) , backgroundColor : t . css ( "background-color" ) , backgroundImage : t . css ( "background-image" ) , backgroundOrigin : t . css ( "background-origin" ) , backgroundPosition : t . css ( "background-position" ) , backgroundRepeat : t . css ( "background-repeat" ) , backgroundSize : t . css ( "background-size" ) } } function d ( t ) { var n , i ; n = t . data ( m . www ) , i = t . parent ( ) . filter ( n . selectors . wrapper ) , e . each ( t . data ( m . attrs ) , function ( n , i ) { e . isUndefined ( n ) ? t . removeAttr ( i ) : t . attr ( i , n ) } ) , t . removeData ( m . typeahead ) . removeData ( m . www ) . removeData ( m . attr ) . removeClass ( n . classes . input ) , i . length && ( t . detach ( ) . insertAfter ( i ) , i . remove ( ) ) } function p ( n ) { var i , o ; return i = e . isJQuery ( n ) || e . isElement ( n ) , o = i ? t ( n ) . first ( ) : [ ] , o . length ? o : null } var f , m , g ; f = t . fn . typeahead , m = { www : "tt-www" , attrs : "tt-attrs" , typeahead : "tt-typeahead" } , g = { initialize : function ( o , h ) { function d ( ) { var n , d , g , b , v , M , y , A , w , z , _ ; e . each ( h , function ( t ) { t . highlight = ! ! o . highlight } ) , n = t ( this ) , d = t ( f . html . wrapper ) , g = p ( o . hint ) , b = p ( o . menu ) , v = o . hint !== ! 1 && ! g , M = o . menu !== ! 1 && ! b , v && ( g = a ( n , f ) ) , M && ( b = t ( f . html . menu ) . css ( f . css . menu ) ) , g && g . val ( "" ) , n = r ( n , f ) , ( v || M ) && ( d . css ( f . css . wrapper ) , n . css ( v ? f . css . input : f . css . inputWithNoHint ) , n . wrap ( d ) . parent ( ) . prepend ( v ? g : null ) . append ( M ? b : null ) ) , _ = M ? l : c , y = new i ( { el : n } ) , A = new s ( { hint : g , input : n } , f ) , w = new _ ( { node : b , datasets : h } , f ) , z = new u ( { input : A , menu : w , eventBus : y , minLength : o . minLength } , f ) , n . data ( m . www , f ) , n . data ( m . typeahead , z ) } var f ; return h = e . isArray ( h ) ? h : [ ] . slice . call ( arguments , 1 ) , o = o || { } , f = n ( o . classNames ) , this . each ( d ) } , isEnabled : function ( ) { var t ; return o ( this . first ( ) , function ( e ) { t = e . isEnabled ( ) } ) , t } , enable : function ( ) { return o ( this , function ( t ) { t . enable ( ) } ) , this } , disable : function ( ) { return o ( this , function ( t ) { t . disable ( ) } ) , this } , isActive : function ( ) { var t ; return o ( this . first ( ) , function ( e ) { t = e . isActive ( ) } ) , t } , activate : function ( ) { return o ( this , function ( t ) { t . activate ( ) } ) , this } , deactivate : function ( ) { return o ( this , function ( t ) { t . deactivate ( ) } ) , this } , isOpen : function ( ) { var t ; return o ( this . first ( ) , function ( e ) { t = e . isOpen ( ) } ) , t } , open : function ( ) { return o ( this , function ( t ) { t . open ( ) } ) , this } , close : function ( ) { return o ( this , function ( t ) { t . close ( ) } ) , this } , select : function ( e ) { var n = ! 1 , i = t ( e ) ; return o ( this . first ( ) , function ( t ) { n = t . select ( i ) } ) , n } , autocomplete : function ( e ) { var n = ! 1 , i = t ( e ) ; return o ( this . first ( ) , function ( t ) { n = t . autocomplete ( i ) } ) , n } , moveCursor : function ( t ) { var e = ! 1 ; return o ( this . first ( ) , function ( n ) { e = n . moveCursor ( t ) } ) , e } , val : function ( t ) { var e ; return arguments . length ? ( o ( this , function ( e ) { e . setVal ( t ) } ) , this ) : ( o ( this . first ( ) , function ( t ) { e = t . getVal ( ) } ) , e ) } , destroy : function ( ) { return o ( this , function ( t , e ) { d ( e ) , t . destroy ( ) } ) , this } } , t . fn . typeahead = function ( t ) { return g [ t ] ? g [ t ] . apply ( this , [ ] . slice . call ( arguments , 1 ) ) : g . initialize . apply ( this , arguments ) } , t . fn . typeahead . noConflict = function ( ) { return t . fn . typeahead = f , this } } ( ) } ) , function ( t , e ) { function n ( t ) { return ! ! ( "" === t || t && t . charCodeAt && t . substr ) } function i ( t ) { return h ? h ( t ) : "[object Array]" === d . call ( t ) } function o ( t ) { return "[object Object]" === d . call ( t ) } function a ( t , e ) { var n ; t = t || { } , e = e || { } ; for ( n in e ) e . hasOwnProperty ( n ) && null == t [ n ] && ( t [ n ] = e [ n ] ) ; return t } function s ( t , e , n ) { var i , o , a = [ ] ; if ( ! t ) return a ; if ( u && t . map === u ) return t . map ( e , n ) ; for ( i = 0 , o = t . length ; i < o ; i ++ ) a [ i ] = e . call ( n , t [ i ] , i , t ) ; return a } function r ( t , e ) { return t = Math . round ( Math . abs ( t ) ) , isNaN ( t ) ? e : t } function c ( t ) { var e = l . settings . currency . format ; return "function" == typeof t && ( t = t ( ) ) , n ( t ) && t . match ( "%v" ) ? { pos : t , neg : t . replace ( "-" , "" ) . replace ( "%v" , "-%v" ) , zero : t } : t && t . pos && t . pos . match ( "%v" ) ? t : n ( e ) ? l . settings . currency . format = { pos : e , neg : e . replace ( "%v" , "-%v" ) , zero : e } : e } var l = { } ; l . version = "0.3.2" , l . settings = { currency : { symbol : "$" , format : "%s%v" , decimal : "." , thousand : "," , precision : 2 , grouping : 3 } , number : { precision : 0 , grouping : 3 , thousand : "," , decimal : "." } } ; var u = Array . prototype . map , h = Array . isArray , d = O
$ ( ) , A ) { for ( a = [ ] , s = i . length ; s -- ; ) a [ s ] = i . charCodeAt ( s ) ; c = l . from ( i ) , r = new o ( 6 ) , r . append ( new Uint8Array ( a ) ) , i = r . flush ( ) , a = new Uint8Array ( i . length + 6 ) , a . set ( new Uint8Array ( [ 120 , 156 ] ) ) , a . set ( i , 2 ) , a . set ( new Uint8Array ( [ 255 & c , c >> 8 & 255 , c >> 16 & 255 , c >> 24 & 255 ] ) , i . length + 2 ) , i = String . fromCharCode . apply ( null , a ) , U ( "<</Length " + i . length + " /Filter [/FlateDecode]>>" ) } else U ( "<</Length " + i . length + ">>" ) ; V ( i ) , U ( "endobj" ) } O [ 1 ] = I , U ( "1 0 obj" ) , U ( "<</Type /Pages" ) ; var d = "/Kids [" ; for ( s = 0 ; D > s ; s ++ ) d += 3 + 2 * s + " 0 R " ; U ( d + "]" ) , U ( "/Count " + D ) , U ( ">>" ) , U ( "endobj" ) } , J = function ( t ) { t . objectNumber = $ ( ) , U ( "<</BaseFont/" + t . PostScriptName + "/Type/Font" ) , "string" == typeof t . encoding && U ( "/Encoding/" + t . encoding ) , U ( "/Subtype/Type1>>" ) , U ( "endobj" ) } , G = function ( ) { for ( var t in N ) N . hasOwnProperty ( t ) && J ( N [ t ] ) } , K = function ( ) { X . publish ( "putXobjectDict" ) } , Q = function ( ) { U ( "/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]" ) , U ( "/Font <<" ) ; for ( var t in N ) N . hasOwnProperty ( t ) && U ( "/" + t + " " + N [ t ] . objectNumber + " 0 R" ) ; U ( ">>" ) , U ( "/XObject <<" ) , K ( ) , U ( ">>" ) } , Z = function ( ) { G ( ) , X . publish ( "putResources" ) , O [ 2 ] = I , U ( "2 0 obj" ) , U ( "<<" ) , Q ( ) , U ( ">>" ) , U ( "endobj" ) , X . publish ( "postPutResources" ) } , tt = function ( t , e , n ) { L . hasOwnProperty ( e ) || ( L [ e ] = { } ) , L [ e ] [ n ] = t } , et = function ( t , e , n , i ) { var o = "F" + ( Object . keys ( N ) . length + 1 ) . toString ( 10 ) , a = N [ o ] = { id : o , PostScriptName : t , fontName : e , fontStyle : n , encoding : i , metadata : { } } ; return tt ( o , e , n ) , X . publish ( "addFont" , a ) , o } , nt = function ( ) { for ( var t = "helvetica" , e = "times" , n = "courier" , i = "normal" , o = "bold" , a = "italic" , s = "bolditalic" , r = "StandardEncoding" , c = [ [ "Helvetica" , t , i ] , [ "Helvetica-Bold" , t , o ] , [ "Helvetica-Oblique" , t , a ] , [ "Helvetica-BoldOblique" , t , s ] , [ "Courier" , n , i ] , [ "Courier-Bold" , n , o ] , [ "Courier-Oblique" , n , a ] , [ "Courier-BoldOblique" , n , s ] , [ "Times-Roman" , e , i ] , [ "Times-Bold" , e , o ] , [ "Times-Italic" , e , a ] , [ "Times-BoldItalic" , e , s ] ] , l = 0 , u = c . length ; u > l ; l ++ ) { var h = et ( c [ l ] [ 0 ] , c [ l ] [ 1 ] , c [ l ] [ 2 ] , r ) , d = c [ l ] [ 0 ] . split ( "-" ) ; tt ( h , d [ 0 ] , d [ 1 ] || "" ) } X . publish ( "addFonts" , { fonts : N , dictionary : L } ) } , it = function ( e ) { return e . foo = function ( ) { try { return e . apply ( this , arguments ) } catch ( n ) { var i = n . stack || "" ; ~ i . indexOf ( " at " ) && ( i = i . split ( " at " ) [ 1 ] ) ; var o = "Error in function " + i . split ( "\n" ) [ 0 ] . split ( "<" ) [ 0 ] + ": " + n . message ; if ( ! t . console ) throw new Error ( o ) ; t . console . error ( o , n ) , t . alert && alert ( o ) } } , e . foo . bar = e , e . foo } , ot = function ( t , e ) { var n , i , o , a , s , r , c , l , u ; if ( e = e || { } , o = e . sourceEncoding || "Unicode" , s = e . outputEncoding , ( e . autoencode || s ) && N [ d ] . metadata && N [ d ] . metadata [ o ] && N [ d ] . metadata [ o ] . encoding && ( a = N [ d ] . metadata [ o ] . encoding , ! s && N [ d ] . encoding && ( s = N [ d ] . encoding ) , ! s && a . codePages && ( s = a . codePages [ 0 ] ) , "string" == typeof s && ( s = a [ s ] ) , s ) ) { for ( c = ! 1 , r = [ ] , n = 0 , i = t . length ; i > n ; n ++ ) l = s [ t . charCodeAt ( n ) ] , r . push ( l ? String . fromCharCode ( l ) : t [ n ] ) , r [ n ] . charCodeAt ( 0 ) >> 8 && ( c = ! 0 ) ; t = r . join ( "" ) } for ( n = t . length ; void 0 === c && 0 !== n ; ) t . charCodeAt ( n - 1 ) >> 8 && ( c = ! 0 ) , n -- ; if ( ! c ) return t ; for ( r = e . noBOM ? [ ] : [ 254 , 255 ] , n = 0 , i = t . length ; i > n ; n ++ ) { if ( l = t . charCodeAt ( n ) , u = l >> 8 , u >> 8 ) throw new Error ( "Character at position " + n + " of string '" + t + "' exceeds 16bits. Cannot be encoded into UCS-2 BE" ) ; r . push ( u ) , r . push ( l - ( u << 8 ) ) } return String . fromCharCode . apply ( void 0 , r ) } , at = function ( t , e ) { return ot ( t , e ) . replace ( /\\/g , "\\\\" ) . replace ( /\(/g , "\\(" ) . replace ( /\)/g , "\\)" ) } , st = function ( ) { U ( "/Producer (jsPDF " + n . version + ")" ) ; for ( var t in R ) R . hasOwnProperty ( t ) && R [ t ] && U ( "/" + t . substr ( 0 , 1 ) . toUpperCase ( ) + t . substr ( 1 ) + " (" + at ( R [ t ] ) + ")" ) ; var e = new Date , i = e . getTimezoneOffset ( ) , o = 0 > i ? "+" : "-" , a = Math . floor ( Math . abs ( i / 60 ) ) , s = Math . abs ( i % 60 ) , r = [ o , j ( a ) , "'" , j ( s ) , "'" ] . join ( "" ) ; U ( [ "/CreationDate (D:" , e . getFullYear ( ) , j ( e . getMonth ( ) + 1 ) , j ( e . getDate ( ) ) , j ( e . getHours ( ) ) , j ( e . getMinutes ( ) ) , j ( e . getSeconds ( ) ) , r , ")" ] . join ( "" ) ) } , rt = function ( ) { switch ( U ( "/Type /Catalog" ) , U ( "/Pages 1 0 R" ) , M || ( M = "fullwidth" ) , M ) { case "fullwidth" : U ( "/OpenAction [3 0 R /FitH null]" ) ; break ; case "fullheight" : U ( "/OpenAction [3 0 R /FitV null]" ) ; break ; case "fullpage" : U ( "/OpenAction [3 0 R /Fit]" ) ; break ; case "original" : U ( "/OpenAction [3 0 R /XYZ null null 1]" ) ; break ; default : var t = "" + M ; "%" === t . substr ( t . length - 1 ) && ( M = parseInt ( M ) / 100 ) , "number" == typeof M && U ( "/OpenAction [3 0 R /XYZ null null " + F ( M ) + "]" ) } switch ( y || ( y = "continuous" ) , y ) { case "continuous" : U ( "/PageLayout /OneColumn" ) ; break ; case
C += void 0 !== x [ "float" ] && "right" === x [ "float" ] ? e . settings . width - o . width - N : O , e . pdf . addImage ( _ , C , e . y + L , o . width , o . height ) , _ = void 0 , "right" === x [ "float" ] || "left" === x [ "float" ] ? ( e . watchFunctions . push ( function ( t , n , i , o ) { return e . y >= n ? ( e . x += t , e . settings . width += i , ! 0 ) : ! ! ( o && 1 === o . nodeType && ! y [ o . nodeName ] && e . x + o . width > e . pdf . margins _doc . left + e . pdf . margins _doc . width ) && ( e . x += t , e . y = n , e . settings . width += i , ! 0 ) } . bind ( this , "left" === x [ "float" ] ? - o . width - O - N : 0 , e . y + o . height + L + D , o . width ) ) , e . watchFunctions . push ( function ( t , n , i ) { return ! ( e . y < t && n === e . pdf . internal . getNumberOfPages ( ) ) || 1 === i . nodeType && "both" === c ( i ) . clear && ( e . y = t , ! 0 ) } . bind ( this , e . y + o . height , e . pdf . internal . getNumberOfPages ( ) ) ) , e . settings . width -= o . width + O + N , "left" === x [ "float" ] && ( e . x += o . width + O + N ) ) : e . y += o . height + D } else if ( "TABLE" === o . nodeName ) d = M ( o , e ) , e . y += 10 , e . pdf . table ( e . x , e . y , d . rows , d . headers , { autoSize : ! 1 , printHeaders : ! 0 , margins : e . pdf . margins _doc } ) , e . y = e . pdf . lastCellPos . y + e . pdf . lastCellPos . h + 20 ; else if ( "OL" === o . nodeName || "UL" === o . nodeName ) A = 1 , f ( o , e , i ) || n ( o , e , i ) , e . y += 10 ; else if ( "LI" === o . nodeName ) { var q = e . x ; e . x += "UL" === o . parentNode . nodeName ? 22 : 10 , e . y += 3 , f ( o , e , i ) || n ( o , e , i ) , e . x = q } else "BR" === o . nodeName ? e . y += s [ "font-size" ] * e . pdf . internal . scaleFactor : f ( o , e , i ) || n ( o , e , i ) } } r ++ } return l ? e . setBlockBoundary ( p ) : void 0 } , m = { } , g = function ( t , e , n , i ) { function o ( ) { e . pdf . internal . events . publish ( "imagesLoaded" ) , i ( s ) } function a ( t , n , i ) { if ( t ) { var a = new Image ; s = ++ l , a . crossOrigin = "" , a . onerror = a . onload = function ( ) { if ( a . complete && ( 0 === a . src . indexOf ( "data:image/" ) && ( a . width = n || a . width || 0 , a . height = i || a . height || 0 ) , a . width + a . height ) ) { var s = e . pdf . sHashCode ( t ) || t ; m [ s ] = m [ s ] || a } -- l || o ( ) } , a . src = t } } for ( var s , r = t . getElementsByTagName ( "img" ) , c = r . length , l = 0 ; c -- ; ) a ( r [ c ] . getAttribute ( "src" ) , r [ c ] . width , r [ c ] . height ) ; return l || o ( ) } , b = function ( t , e , i ) { var o = t . getElementsByTagName ( "footer" ) ; if ( o . length > 0 ) { o = o [ 0 ] ; var a = e . pdf . internal . write , s = e . y ; e . pdf . internal . write = function ( ) { } , n ( o , e , i ) ; var r = Math . ceil ( e . y - s ) + 5 ; e . y = s , e . pdf . internal . write = a , e . pdf . margins _doc . bottom += r ; for ( var c = function ( t ) { var a = void 0 !== t ? t . pageNumber : 1 , s = e . y ; e . y = e . pdf . internal . pageSize . height - e . pdf . margins _doc . bottom , e . pdf . margins _doc . bottom -= r ; for ( var c = o . getElementsByTagName ( "span" ) , l = 0 ; l < c . length ; ++ l ) ( " " + c [ l ] . className + " " ) . replace ( /[\n\t]/g , " " ) . indexOf ( " pageCounter " ) > - 1 && ( c [ l ] . innerHTML = a ) , ( " " + c [ l ] . className + " " ) . replace ( /[\n\t]/g , " " ) . indexOf ( " totalPages " ) > - 1 && ( c [ l ] . innerHTML = "###jsPDFVarTotalPages###" ) ; n ( o , e , i ) , e . pdf . margins _doc . bottom += r , e . y = s } , l = o . getElementsByTagName ( "span" ) , u = 0 ; u < l . length ; ++ u ) ( " " + l [ u ] . className + " " ) . replace ( /[\n\t]/g , " " ) . indexOf ( " totalPages " ) > - 1 && e . pdf . internal . events . subscribe ( "htmlRenderingFinished" , e . pdf . putTotalPages . bind ( e . pdf , "###jsPDFVarTotalPages###" ) , ! 0 ) ; e . pdf . internal . events . subscribe ( "addPage" , c , ! 1 ) , c ( ) , y . FOOTER = 1 } } , v = function ( t , e , i , o , a , s ) { if ( ! e ) return ! 1 ; "string" == typeof e || e . parentNode || ( e = "" + e . innerHTML ) , "string" == typeof e && ( e = function ( t ) { var e , n , i , o ; return i = "jsPDFhtmlText" + Date . now ( ) . toString ( ) + ( 1e3 * Math . random ( ) ) . toFixed ( 0 ) , o = "position: absolute !important;clip: rect(1px 1px 1px 1px); /* IE6, IE7 */clip: rect(1px, 1px, 1px, 1px);padding:0 !important;border:0 !important;height: 1px !important;width: 1px !important; top:auto;left:-100px;overflow: hidden;" , n = document . createElement ( "div" ) , n . style . cssText = o , n . innerHTML = '<iframe style="height:1px;width:1px" name="' + i + '" />' , document . body . appendChild ( n ) , e = window . frames [ i ] , e . document . body . innerHTML = t , e . document . body } ( e . replace ( /<\/?script[^>]*?>/gi , "" ) ) ) ; var r , c = new u ( t , i , o , a ) ; return g . call ( this , e , c , a . elementHandlers , function ( t ) { b ( e , c , a . elementHandlers ) , n ( e , c , a . elementHandlers ) , c . pdf . internal . events . publish ( "htmlRenderingFinished" ) , r = c . dispose ( ) , "function" == typeof s ? s ( r ) : t && void 0 } ) , r || { x : c . x , y : c . y } } , u . prototype . init = function ( ) { return this . paragraph = { text : [ ] , style : [ ] } , this . pdf . internal . write ( "q" ) } , u . prototype . dispose = function ( ) { return this . pdf . internal . write ( "Q" ) , { x : this . x , y : this . y , ready : ! 0 } } , u . prototype . executeWatchFunctions = function ( t ) { var e = ! 1 , n = [ ] ; if ( this . watchFunctions . length > 0 ) { for ( var i = 0 ; i < this . watchFunctions . length ; ++ i ) this . watchFunctions [ i ] ( t ) === ! 0 ? e = ! 0 : n . push ( this . wa
} } ; t . events . push ( [ "addFonts" , function ( t ) { var e , n , a , s , r , c = "Unicode" ; for ( n in t . fonts ) t . fonts . hasOwnProperty ( n ) && ( e = t . fonts [ n ] , a = o [ c ] [ e . PostScriptName ] , a && ( s = e . metadata [ c ] ? e . metadata [ c ] : e . metadata [ c ] = { } , s . widths = a . widths , s . kerning = a . kerning ) , r = i [ c ] [ e . PostScriptName ] , r && ( s = e . metadata [ c ] ? e . metadata [ c ] : e . metadata [ c ] = { } , s . encoding = r , r . codePages && r . codePages . length && ( e . encoding = r . codePages [ 0 ] ) ) ) } ] ) } ( n . API ) , function ( t ) { "use strict" ; t . putTotalPages = function ( t ) { for ( var e = new RegExp ( t , "g" ) , n = 1 ; n <= this . internal . getNumberOfPages ( ) ; n ++ ) for ( var i = 0 ; i < this . internal . pages [ n ] . length ; i ++ ) this . internal . pages [ n ] [ i ] = this . internal . pages [ n ] [ i ] . replace ( e , this . internal . getNumberOfPages ( ) ) ; return this } } ( n . API ) , function ( t ) { "use strict" ; if ( t . URL = t . URL || t . webkitURL , t . Blob && t . URL ) try { return void new Blob } catch ( e ) { } var n = t . BlobBuilder || t . WebKitBlobBuilder || t . MozBlobBuilder || function ( t ) { var e = function ( t ) { return Object . prototype . toString . call ( t ) . match ( /^\[object\s(.*)\]$/ ) [ 1 ] } , n = function ( ) { this . data = [ ] } , i = function ( t , e , n ) { this . data = t , this . size = t . length , this . type = e , this . encoding = n } , o = n . prototype , a = i . prototype , s = t . FileReaderSync , r = function ( t ) { this . code = this [ this . name = t ] } , c = "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR" . split ( " " ) , l = c . length , u = t . URL || t . webkitURL || t , h = u . createObjectURL , d = u . revokeObjectURL , p = u , f = t . btoa , m = t . atob , g = t . ArrayBuffer , b = t . Uint8Array , v = /^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/ ; for ( i . fake = a . fake = ! 0 ; l -- ; ) r . prototype [ c [ l ] ] = l + 1 ; return u . createObjectURL || ( p = t . URL = function ( t ) { var e , n = document . createElementNS ( "http://www.w3.org/1999/xhtml" , "a" ) ; return n . href = t , "origin" in n || ( "data:" === n . protocol . toLowerCase ( ) ? n . origin = null : ( e = t . match ( v ) , n . origin = e && e [ 1 ] ) ) , n } ) , p . createObjectURL = function ( t ) { var e , n = t . type ; return null === n && ( n = "application/octet-stream" ) , t instanceof i ? ( e = "data:" + n , "base64" === t . encoding ? e + ";base64," + t . data : "URI" === t . encoding ? e + "," + decodeURIComponent ( t . data ) : f ? e + ";base64," + f ( t . data ) : e + "," + encodeURIComponent ( t . data ) ) : h ? h . call ( u , t ) : void 0 } , p . revokeObjectURL = function ( t ) { "data:" !== t . substring ( 0 , 5 ) && d && d . call ( u , t ) } , o . append = function ( t ) { var n = this . data ; if ( b && ( t instanceof g || t instanceof b ) ) { for ( var o = "" , a = new b ( t ) , c = 0 , l = a . length ; l > c ; c ++ ) o += String . fromCharCode ( a [ c ] ) ; n . push ( o ) } else if ( "Blob" === e ( t ) || "File" === e ( t ) ) { if ( ! s ) throw new r ( "NOT_READABLE_ERR" ) ; var u = new s ; n . push ( u . readAsBinaryString ( t ) ) } else t instanceof i ? "base64" === t . encoding && m ? n . push ( m ( t . data ) ) : "URI" === t . encoding ? n . push ( decodeURIComponent ( t . data ) ) : "raw" === t . encoding && n . push ( t . data ) : ( "string" != typeof t && ( t += "" ) , n . push ( unescape ( encodeURIComponent ( t ) ) ) ) } , o . getBlob = function ( t ) { return arguments . length || ( t = null ) , new i ( this . data . join ( "" ) , t , "raw" ) } , o . toString = function ( ) { return "[object BlobBuilder]" } , a . slice = function ( t , e , n ) { var o = arguments . length ; return 3 > o && ( n = null ) , new i ( this . data . slice ( t , o > 1 ? e : this . data . length ) , n , this . encoding ) } , a . toString = function ( ) { return "[object Blob]" } , a . close = function ( ) { this . size = 0 , delete this . data } , n } ( t ) ; t . Blob = function ( t , e ) { var i = e ? e . type || "" : "" , o = new n ; if ( t ) for ( var a = 0 , s = t . length ; s > a ; a ++ ) o . append ( t [ a ] ) ; return o . getBlob ( i ) } } ( "undefined" != typeof self && self || "undefined" != typeof window && window || this . content || this ) ; var i = i || "undefined" != typeof navigator && navigator . msSaveOrOpenBlob && navigator . msSaveOrOpenBlob . bind ( navigator ) || function ( t ) { "use strict" ; if ( "undefined" == typeof navigator || ! /MSIE [1-9]\./ . test ( navigator . userAgent ) ) { var e = t . document , n = function ( ) { return t . URL || t . webkitURL || t } , i = e . createElementNS ( "http://www.w3.org/1999/xhtml" , "a" ) , o = "download" in i , a = function ( n ) { var i = e . createEvent ( "MouseEvents" ) ; i . initMouseEvent ( "click" , ! 0 , ! 1 , t , 0 , 0 , 0 , 0 , 0 , ! 1 , ! 1 , ! 1 , ! 1 , 0 , null ) , n . dispatchEvent ( i ) } , s = t . webkitRequestFileSystem , r = t . requestFileSystem || s || t . mozRequestFileSystem , c = function ( e ) { ( t . setImmediate || t . setTimeout ) ( function ( ) { throw e } , 0 ) } , l = "application/octet-stream" , u = 0 , h = 10 , d = function ( e ) { var i = function ( ) { "string" == typeof e ? n ( ) . revokeObjectURL ( e ) : e . remove ( ) } ; t . chrome ? i ( ) : setTimeout ( i , h ) } , p = function ( t , e , n ) { e = [ ] . concat ( e ) ; for ( var i = e . length ; i -- ; ) { var o = t [ "on" + e [ i ] ] ; if ( "function" == typeof o ) try { o . c
r . renderFrame ( t , s ) , o > 1 && a > n / o ? r . animation . _timeout = setTimeout ( e , c . delay ) : void 0 } ) ( ) } , e . prototype . stopAnimation = function ( ) { var t ; return clearTimeout ( null != ( t = this . animation ) ? t . _timeout : void 0 ) } , e . prototype . render = function ( t ) { var e , n ; return t . _png && t . _png . stopAnimation ( ) , t . _png = this , t . width = this . width , t . height = this . height , e = t . getContext ( "2d" ) , this . animation ? ( this . decodeFrames ( e ) , this . animate ( e ) ) : ( n = e . createImageData ( this . width , this . height ) , this . copyToImageData ( n , this . decodePixels ( ) ) , e . putImageData ( n , 0 , 0 ) ) } , e } ( ) , t . PNG = e } ( "undefined" != typeof window && window || this ) ; var a = function ( ) { function t ( ) { this . pos = 0 , this . bufferLength = 0 , this . eof = ! 1 , this . buffer = null } return t . prototype = { ensureBuffer : function ( t ) { var e = this . buffer , n = e ? e . byteLength : 0 ; if ( n > t ) return e ; for ( var i = 512 ; t > i ; ) i <<= 1 ; for ( var o = new Uint8Array ( i ) , a = 0 ; n > a ; ++ a ) o [ a ] = e [ a ] ; return this . buffer = o } , getByte : function ( ) { for ( var t = this . pos ; this . bufferLength <= t ; ) { if ( this . eof ) return null ; this . readBlock ( ) } return this . buffer [ this . pos ++ ] } , getBytes : function ( t ) { var e = this . pos ; if ( t ) { this . ensureBuffer ( e + t ) ; for ( var n = e + t ; ! this . eof && this . bufferLength < n ; ) this . readBlock ( ) ; var i = this . bufferLength ; n > i && ( n = i ) } else { for ( ; ! this . eof ; ) this . readBlock ( ) ; var n = this . bufferLength } return this . pos = n , this . buffer . subarray ( e , n ) } , lookChar : function ( ) { for ( var t = this . pos ; this . bufferLength <= t ; ) { if ( this . eof ) return null ; this . readBlock ( ) } return String . fromCharCode ( this . buffer [ this . pos ] ) } , getChar : function ( ) { for ( var t = this . pos ; this . bufferLength <= t ; ) { if ( this . eof ) return null ; this . readBlock ( ) } return String . fromCharCode ( this . buffer [ this . pos ++ ] ) } , makeSubStream : function ( t , e , n ) { for ( var i = t + e ; this . bufferLength <= i && ! this . eof ; ) this . readBlock ( ) ; return new Stream ( this . buffer , t , e , n ) } , skip : function ( t ) { t || ( t = 1 ) , this . pos += t } , reset : function ( ) { this . pos = 0 } } , t } ( ) , s = function ( ) { function t ( t ) { throw new Error ( t ) } function e ( e ) { var n = 0 , i = e [ n ++ ] , o = e [ n ++ ] ; ( - 1 == i || - 1 == o ) && t ( "Invalid header in flate stream" ) , 8 != ( 15 & i ) && t ( "Unknown compression method in flate stream" ) , ( ( i << 8 ) + o ) % 31 != 0 && t ( "Bad FCHECK in flate stream" ) , 32 & o && t ( "FDICT bit set in flate stream" ) , this . bytes = e , this . bytesPos = n , this . codeSize = 0 , this . codeBuf = 0 , a . call ( this ) } if ( "undefined" != typeof Uint32Array ) { var n = new Uint32Array ( [ 16 , 17 , 18 , 0 , 8 , 7 , 9 , 6 , 10 , 5 , 11 , 4 , 12 , 3 , 13 , 2 , 14 , 1 , 15 ] ) , i = new Uint32Array ( [ 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 65547 , 65549 , 65551 , 65553 , 131091 , 131095 , 131099 , 131103 , 196643 , 196651 , 196659 , 196667 , 262211 , 262227 , 262243 , 262259 , 327811 , 327843 , 327875 , 327907 , 258 , 258 , 258 ] ) , o = new Uint32Array ( [ 1 , 2 , 3 , 4 , 65541 , 65543 , 131081 , 131085 , 196625 , 196633 , 262177 , 262193 , 327745 , 327777 , 393345 , 393409 , 459009 , 459137 , 524801 , 525057 , 590849 , 591361 , 657409 , 658433 , 724993 , 727041 , 794625 , 798721 , 868353 , 876545 ] ) , s = [ new Uint32Array ( [ 459008 , 524368 , 524304 , 524568 , 459024 , 524400 , 524336 , 590016 , 459016 , 524384 , 524320 , 589984 , 524288 , 524416 , 524352 , 590048 , 459012 , 524376 , 524312 , 589968 , 459028 , 524408 , 524344 , 590032 , 459020 , 524392 , 524328 , 59e4 , 524296 , 524424 , 524360 , 590064 , 459010 , 524372 , 524308 , 524572 , 459026 , 524404 , 524340 , 590024 , 459018 , 524388 , 524324 , 589992 , 524292 , 524420 , 524356 , 590056 , 459014 , 524380 , 524316 , 589976 , 459030 , 524412 , 524348 , 590040 , 459022 , 524396 , 524332 , 590008 , 524300 , 524428 , 524364 , 590072 , 459009 , 524370 , 524306 , 524570 , 459025 , 524402 , 524338 , 590020 , 459017 , 524386 , 524322 , 589988 , 524290 , 524418 , 524354 , 590052 , 459013 , 524378 , 524314 , 589972 , 459029 , 524410 , 524346 , 590036 , 459021 , 524394 , 524330 , 590004 , 524298 , 524426 , 524362 , 590068 , 459011 , 524374 , 524310 , 524574 , 459027 , 524406 , 524342 , 590028 , 459019 , 524390 , 524326 , 589996 , 524294 , 524422 , 524358 , 590060 , 459015 , 524382 , 524318 , 589980 , 459031 , 524414 , 524350 , 590044 , 459023 , 524398 , 524334 , 590012 , 524302 , 524430 , 524366 , 590076 , 459008 , 524369 , 524305 , 524569 , 459024 , 524401 , 524337 , 590018 , 459016 , 524385 , 524321 , 589986 , 524289 , 524417 , 524353 , 590050 , 459012 , 524377 , 524313 , 589970 , 459028 , 524409 , 524345 , 590034 , 459020 , 524393 , 524329 , 590002 , 524297 , 524425 , 524361 , 590066 , 459010 , 524373 , 524309 , 524573 , 459026 , 524405 , 524341 , 590026 , 459018 , 524389 , 524325 , 589994 , 524293 , 524421 , 524357 , 590058 , 459014 , 524381 , 524317 , 589978 , 459030 , 524413 , 524349 , 590042 , 459022 , 524397 , 524333 , 590010 , 524301 , 524429 , 524365 , 590074 , 459009 , 524371 , 524307 , 524571 , 459025 , 524403 , 524339 , 590022 , 459017 , 524387 , 524323 , 589990 , 524291 , 524419 , 5
return t && parseInt ( t , 10 ) } ) , re ( t ) } } function pe ( t ) { var e = new g ( ne ( fe ( t ) ) ) ; return e . _nextDay && ( e . add ( 1 , "d" ) , e . _nextDay = void 0 ) , e } function fe ( t ) { var e = t . _i , i = t . _f ; return t . _locale = t . _locale || te ( t . _l ) , null === e || void 0 === i && "" === e ? p ( { nullInput : ! 0 } ) : ( "string" == typeof e && ( t . _i = e = t . _locale . preparse ( e ) ) , b ( e ) ? new g ( ne ( e ) ) : ( n ( i ) ? he ( t ) : a ( e ) ? t . _d = e : i ? le ( t ) : me ( t ) , d ( t ) || ( t . _d = null ) , t ) ) } function me ( e ) { var i = e . _i ; void 0 === i ? e . _d = new Date ( t . now ( ) ) : a ( i ) ? e . _d = new Date ( i . valueOf ( ) ) : "string" == typeof i ? oe ( e ) : n ( i ) ? ( e . _a = s ( i . slice ( 0 ) , function ( t ) { return parseInt ( t , 10 ) } ) , re ( e ) ) : "object" == typeof i ? de ( e ) : "number" == typeof i ? e . _d = new Date ( i ) : t . createFromInputFallback ( e ) } function ge ( t , e , a , s , r ) { var c = { } ; return "boolean" == typeof a && ( s = a , a = void 0 ) , ( i ( t ) && o ( t ) || n ( t ) && 0 === t . length ) && ( t = void 0 ) , c . _isAMomentObject = ! 0 , c . _useUTC = c . _isUTC = r , c . _l = a , c . _i = t , c . _f = e , c . _strict = s , pe ( c ) } function be ( t , e , n , i ) { return ge ( t , e , n , i , ! 1 ) } function ve ( t , e ) { var i , o ; if ( 1 === e . length && n ( e [ 0 ] ) && ( e = e [ 0 ] ) , ! e . length ) return be ( ) ; for ( i = e [ 0 ] , o = 1 ; o < e . length ; ++ o ) e [ o ] . isValid ( ) && ! e [ o ] [ t ] ( i ) || ( i = e [ o ] ) ; return i } function Me ( ) { var t = [ ] . slice . call ( arguments , 0 ) ; return ve ( "isBefore" , t ) } function ye ( ) { var t = [ ] . slice . call ( arguments , 0 ) ; return ve ( "isAfter" , t ) } function Ae ( t ) { var e = E ( t ) , n = e . year || 0 , i = e . quarter || 0 , o = e . month || 0 , a = e . week || 0 , s = e . day || 0 , r = e . hour || 0 , c = e . minute || 0 , l = e . second || 0 , u = e . millisecond || 0 ; this . _milliseconds = + u + 1e3 * l + 6e4 * c + 1e3 * r * 60 * 60 , this . _days = + s + 7 * a , this . _months = + o + 3 * i + 12 * n , this . _data = { } , this . _locale = te ( ) , this . _bubble ( ) } function we ( t ) { return t instanceof Ae } function ze ( t , e ) { U ( t , 0 , 0 , function ( ) { var t = this . utcOffset ( ) , n = "+" ; return t < 0 && ( t = - t , n = "-" ) , n + j ( ~ ~ ( t / 60 ) , 2 ) + e + j ( ~ ~ t % 60 , 2 ) } ) } function _e ( t , e ) { var n = ( e || "" ) . match ( t ) || [ ] , i = n [ n . length - 1 ] || [ ] , o = ( i + "" ) . match ( ko ) || [ "-" , 0 , 0 ] , a = + ( 60 * o [ 1 ] ) + M ( o [ 2 ] ) ; return "+" === o [ 0 ] ? a : - a } function Te ( e , n ) { var i , o ; return n . _isUTC ? ( i = n . clone ( ) , o = ( b ( e ) || a ( e ) ? e . valueOf ( ) : be ( e ) . valueOf ( ) ) - i . valueOf ( ) , i . _d . setTime ( i . _d . valueOf ( ) + o ) , t . updateOffset ( i , ! 1 ) , i ) : be ( e ) . local ( ) } function xe ( t ) { return 15 * - Math . round ( t . _d . getTimezoneOffset ( ) / 15 ) } function Ce ( e , n ) { var i , o = this . _offset || 0 ; return this . isValid ( ) ? null != e ? ( "string" == typeof e ? e = _e ( $i , e ) : Math . abs ( e ) < 16 && ( e = 60 * e ) , ! this . _isUTC && n && ( i = xe ( this ) ) , this . _offset = e , this . _isUTC = ! 0 , null != i && this . add ( i , "m" ) , o !== e && ( ! n || this . _changeInProgress ? je ( this , Ie ( e - o , "m" ) , 1 , ! 1 ) : this . _changeInProgress || ( this . _changeInProgress = ! 0 , t . updateOffset ( this , ! 0 ) , this . _changeInProgress = null ) ) , this ) : this . _isUTC ? o : xe ( this ) : null != e ? this : NaN } function Se ( t , e ) { return null != t ? ( "string" != typeof t && ( t = - t ) , this . utcOffset ( t , e ) , this ) : - this . utcOffset ( ) } function Oe ( t ) { return this . utcOffset ( 0 , t ) } function Ne ( t ) { return this . _isUTC && ( this . utcOffset ( 0 , t ) , this . _isUTC = ! 1 , t && this . subtract ( xe ( this ) , "m" ) ) , this } function Le ( ) { return this . _tzm ? this . utcOffset ( this . _tzm ) : "string" == typeof this . _i && this . utcOffset ( _e ( Ui , this . _i ) ) , this } function De ( t ) { return ! ! this . isValid ( ) && ( t = t ? be ( t ) . utcOffset ( ) : 0 , ( this . utcOffset ( ) - t ) % 60 === 0 ) } function qe ( ) { return this . utcOffset ( ) > this . clone ( ) . month ( 0 ) . utcOffset ( ) || this . utcOffset ( ) > this . clone ( ) . month ( 5 ) . utcOffset ( ) } function ke ( ) { if ( ! f ( this . _isDSTShifted ) ) return this . _isDSTShifted ; var t = { } ; if ( m ( t , this ) , t = fe ( t ) , t . _a ) { var e = t . _isUTC ? l ( t . _a ) : be ( t . _a ) ; this . _isDSTShifted = this . isValid ( ) && y ( t . _a , e . toArray ( ) ) > 0 } else this . _isDSTShifted = ! 1 ; return this . _isDSTShifted } function We ( ) { return ! ! this . isValid ( ) && ! this . _isUTC } function Ee ( ) { return ! ! this . isValid ( ) && this . _isUTC } function Be ( ) { return ! ! this . isValid ( ) && ( this . _isUTC && 0 === this . _offset ) } function Ie ( t , e ) { var n , i , o , a = t , s = null ; return we ( t ) ? a = { ms : t . _milliseconds , d : t . _days , M : t . _months } : "number" == typeof t ? ( a = { } , e ? a [ e ] = t : a . milliseconds = t ) : ( s = Wo . exec ( t ) ) ? ( n = "-" === s [ 1 ] ? - 1 : 1 , a = { y : 0 , d : M ( s [ Zi ] ) * n , h : M ( s [ to ] ) * n , m : M ( s [ eo ] ) * n , s : M ( s [ no ] ) * n , ms : M ( s [ io ] ) * n } ) : ( s = Eo . exec ( t ) ) ? ( n = "-" === s [ 1 ] ? - 1 : 1 , a = { y : Re ( s [ 2 ] , n ) , M : Re ( s [ 3 ] , n ) , w : Re ( s [ 4 ] , n ) , d : Re ( s [ 5 ] , n ) , h : Re ( s [ 6 ] , n ) , m : Re ( s [ 7 ] , n ) , s : Re ( s [ 8 ] , n ) } ) : null == a ? a = { } : "object" == typeof a && ( "from" in a || "to" in a ) && ( o = Xe ( be ( a . from ) , be ( a . to ) ) , a = { } , a . ms = o . milliseconds , a . M = o . months ) , i = new Ae ( a ) , we ( t ) && r ( t , "_locale" ) && ( i . _locale = t . _locale ) , i } function Re ( t , e ) { var n = t && parseFloat ( t . replace ( "," , "." ) ) ; return ( isNaN ( n ) ? 0 : n ) * e } f
2016-09-15 12:41:09 +02:00
links : [ "Africa/Abidjan|Africa/Bamako" , "Africa/Abidjan|Africa/Banjul" , "Africa/Abidjan|Africa/Conakry" , "Africa/Abidjan|Africa/Dakar" , "Africa/Abidjan|Africa/Freetown" , "Africa/Abidjan|Africa/Lome" , "Africa/Abidjan|Africa/Nouakchott" , "Africa/Abidjan|Africa/Ouagadougou" , "Africa/Abidjan|Africa/Sao_Tome" , "Africa/Abidjan|Africa/Timbuktu" , "Africa/Abidjan|Atlantic/St_Helena" , "Africa/Addis_Ababa|Africa/Asmara" , "Africa/Addis_Ababa|Africa/Asmera" , "Africa/Addis_Ababa|Africa/Dar_es_Salaam" , "Africa/Addis_Ababa|Africa/Djibouti" , "Africa/Addis_Ababa|Africa/Kampala" , "Africa/Addis_Ababa|Africa/Mogadishu" , "Africa/Addis_Ababa|Africa/Nairobi" , "Africa/Addis_Ababa|Indian/Antananarivo" , "Africa/Addis_Ababa|Indian/Comoro" , "Africa/Addis_Ababa|Indian/Mayotte" , "Africa/Bangui|Africa/Brazzaville" , "Africa/Bangui|Africa/Douala" , "Africa/Bangui|Africa/Kinshasa" , "Africa/Bangui|Africa/Lagos" , "Africa/Bangui|Africa/Libreville" , "Africa/Bangui|Africa/Luanda" , "Africa/Bangui|Africa/Malabo" , "Africa/Bangui|Africa/Niamey" , "Africa/Bangui|Africa/Porto-Novo" , "Africa/Blantyre|Africa/Bujumbura" , "Africa/Blantyre|Africa/Gaborone" , "Africa/Blantyre|Africa/Harare" , "Africa/Blantyre|Africa/Kigali" , "Africa/Blantyre|Africa/Lubumbashi" , "Africa/Blantyre|Africa/Lusaka" , "Africa/Blantyre|Africa/Maputo" , "Africa/Cairo|Egypt" , "Africa/Johannesburg|Africa/Maseru" , "Africa/Johannesburg|Africa/Mbabane" , "Africa/Juba|Africa/Khartoum" , "Africa/Tripoli|Libya" , "America/Adak|America/Atka" , "America/Adak|US/Aleutian" , "America/Anchorage|US/Alaska" , "America/Anguilla|America/Antigua" , "America/Anguilla|America/Dominica" , "America/Anguilla|America/Grenada" , "America/Anguilla|America/Guadeloupe" , "America/Anguilla|America/Marigot" , "America/Anguilla|America/Montserrat" , "America/Anguilla|America/Port_of_Spain" , "America/Anguilla|America/St_Barthelemy" , "America/Anguilla|America/St_Kitts" , "America/Anguilla|America/St_Lucia" , "America/Anguilla|America/St_Thomas" , "America/Anguilla|America/St_Vincent" , "America/Anguilla|America/Tortola" , "America/Anguilla|America/Virgin" , "America/Argentina/Buenos_Aires|America/Buenos_Aires" , "America/Argentina/Catamarca|America/Argentina/ComodRivadavia" , "America/Argentina/Catamarca|America/Catamarca" , "America/Argentina/Cordoba|America/Cordoba" , "America/Argentina/Cordoba|America/Rosario" , "America/Argentina/Jujuy|America/Jujuy" , "America/Argentina/Mendoza|America/Mendoza" , "America/Aruba|America/Curacao" , "America/Aruba|America/Kralendijk" , "America/Aruba|America/Lower_Princes" , "America/Atikokan|America/Coral_Harbour" , "America/Chicago|US/Central" , "America/Denver|America/Shiprock" , "America/Denver|Navajo" , "America/Denver|US/Mountain" , "America/Detroit|US/Michigan" , "America/Edmonton|Canada/Mountain" , "America/Ensenada|America/Tijuana" , "America/Ensenada|Mexico/BajaNorte" , "America/Fort_Wayne|America/Indiana/Indianapolis" , "America/Fort_Wayne|America/Indianapolis" , "America/Fort_Wayne|US/East-Indiana" , "America/Halifax|Canada/Atlantic" , "America/Havana|Cuba" , "America/Indiana/Knox|America/Knox_IN" , "America/Indiana/Knox|US/Indiana-Starke" , "America/Jamaica|Jamaica" , "America/Kentucky/Louisville|America/Louisville" , "America/Los_Angeles|US/Pacific" , "America/Los_Angeles|US/Pacific-New" , "America/Manaus|Brazil/West" , "America/Mazatlan|Mexico/BajaSur" , "America/Mexico_City|Mexico/General" , "America/Montreal|America/Toronto" , "America/Montreal|Canada/Eastern" , "America/New_York|US/Eastern" , "America/Noronha|Brazil/DeNoronha" , "America/Phoenix|US/Arizona" , "America/Porto_Acre|America/Rio_Branco" , "America/Porto_Acre|Brazil/Acre" , "America/Regina|Canada/East-Saskatchewan" , "America/Regina|Canada/Saskatchewan" , "America/Santiago|Chile/Continental" , "America/Sao_Paulo|Brazil/East" , "America/St_Johns|Canada/Newfoundland" , "America/Vancouver|Canada/Pacific" , "America/Whitehorse|Canada/Yukon" , "America/Winnipeg|Canada/Central" , "Antarctica/McMurdo|Antarctica/South_Pole" , "Antarctica/McMurdo|NZ" , "Antarctica/McMurdo|Pacific/Auckland" , "Arctic/Longyearbyen|Atlantic/Jan_Mayen" , "Arctic/Longyearbyen|Europe/Oslo" , "Asia/Aden|Asia/Kuwait" , "Asia/Aden|Asia/Riyadh" , "Asia/Ashgabat|Asia/Ashkhabad" , "Asia/Bahrain|Asia/Qatar" , "Asia/Bangkok|Asia/Phnom_Penh" , " Asia / B
2016-09-19 13:08:21 +02:00
} ) : a . sort ( function ( t , e ) { return t [ 0 ] - e [ 0 ] } ) , o = 0 ; o < a . length ; o ++ ) A ( a [ o ] [ 1 ] , a [ o ] [ 0 ] , this ) ; for ( this . xNumSteps = this . xSteps . slice ( 0 ) , o = 0 ; o < this . xNumSteps . length ; o ++ ) w ( o , this . xNumSteps [ o ] , this ) } function _ ( t , e ) { if ( ! i ( e ) ) throw new Error ( "noUiSlider: 'step' is not numeric." ) ; t . singleStep = e } function T ( t , e ) { if ( "object" != typeof e || Array . isArray ( e ) ) throw new Error ( "noUiSlider: 'range' is not an object." ) ; if ( void 0 === e . min || void 0 === e . max ) throw new Error ( "noUiSlider: Missing 'min' or 'max' in 'range'." ) ; if ( e . min === e . max ) throw new Error ( "noUiSlider: 'range' 'min' and 'max' cannot be equal." ) ; t . spectrum = new z ( e , t . snap , t . dir , t . singleStep ) } function x ( t , e ) { if ( e = s ( e ) , ! Array . isArray ( e ) || ! e . length || e . length > 2 ) throw new Error ( "noUiSlider: 'start' option is incorrect." ) ; t . handles = e . length , t . start = e } function C ( t , e ) { if ( t . snap = e , "boolean" != typeof e ) throw new Error ( "noUiSlider: 'snap' option must be a boolean." ) } function S ( t , e ) { if ( t . animate = e , "boolean" != typeof e ) throw new Error ( "noUiSlider: 'animate' option must be a boolean." ) } function O ( t , e ) { if ( t . animationDuration = e , "number" != typeof e ) throw new Error ( "noUiSlider: 'animationDuration' option must be a number." ) } function N ( t , e ) { if ( "lower" === e && 1 === t . handles ) t . connect = 1 ; else if ( "upper" === e && 1 === t . handles ) t . connect = 2 ; else if ( e === ! 0 && 2 === t . handles ) t . connect = 3 ; else { if ( e !== ! 1 ) throw new Error ( "noUiSlider: 'connect' option doesn't match handle count." ) ; t . connect = 0 } } function L ( t , e ) { switch ( e ) { case "horizontal" : t . ort = 0 ; break ; case "vertical" : t . ort = 1 ; break ; default : throw new Error ( "noUiSlider: 'orientation' option is invalid." ) } } function D ( t , e ) { if ( ! i ( e ) ) throw new Error ( "noUiSlider: 'margin' option must be numeric." ) ; if ( 0 !== e && ( t . margin = t . spectrum . getMargin ( e ) , ! t . margin ) ) throw new Error ( "noUiSlider: 'margin' option is only supported on linear sliders." ) } function q ( t , e ) { if ( ! i ( e ) ) throw new Error ( "noUiSlider: 'limit' option must be numeric." ) ; if ( t . limit = t . spectrum . getMargin ( e ) , ! t . limit ) throw new Error ( "noUiSlider: 'limit' option is only supported on linear sliders." ) } function k ( t , e ) { switch ( e ) { case "ltr" : t . dir = 0 ; break ; case "rtl" : t . dir = 1 , t . connect = [ 0 , 2 , 1 , 3 ] [ t . connect ] ; break ; default : throw new Error ( "noUiSlider: 'direction' option was not recognized." ) } } function W ( t , e ) { if ( "string" != typeof e ) throw new Error ( "noUiSlider: 'behaviour' must be a string containing options." ) ; var n = e . indexOf ( "tap" ) >= 0 , i = e . indexOf ( "drag" ) >= 0 , o = e . indexOf ( "fixed" ) >= 0 , a = e . indexOf ( "snap" ) >= 0 , s = e . indexOf ( "hover" ) >= 0 ; if ( i && ! t . connect ) throw new Error ( "noUiSlider: 'drag' behaviour must be used with 'connect': true." ) ; t . events = { tap : n || a , drag : i , fixed : o , snap : a , hover : s } } function E ( t , e ) { var n ; if ( e !== ! 1 ) if ( e === ! 0 ) for ( t . tooltips = [ ] , n = 0 ; n < t . handles ; n ++ ) t . tooltips . push ( ! 0 ) ; else { if ( t . tooltips = s ( e ) , t . tooltips . length !== t . handles ) throw new Error ( "noUiSlider: must pass a formatter for all handles." ) ; t . tooltips . forEach ( function ( t ) { if ( "boolean" != typeof t && ( "object" != typeof t || "function" != typeof t . to ) ) throw new Error ( "noUiSlider: 'tooltips' must be passed a formatter or 'false'." ) } ) } } function B ( t , e ) { if ( t . format = e , "function" == typeof e . to && "function" == typeof e . from ) return ! 0 ; throw new Error ( "noUiSlider: 'format' requires 'to' and 'from' methods." ) } function I ( t , e ) { if ( void 0 !== e && "string" != typeof e && e !== ! 1 ) throw new Error ( "noUiSlider: 'cssPrefix' must be a string or `false`." ) ; t . cssPrefix = e } function R ( t , e ) { if ( void 0 !== e && "object" != typeof e ) throw new Error ( "noUiSlider: 'cssClasses' must be an object." ) ; if ( "string" == typeof t . cssPrefix ) { t . cssClasses = { } ; for ( var n in e ) e . hasOwnProperty ( n ) && ( t . cssClasses [ n ] = t . cssPrefix + e [ n ] ) } else t . cssClasses = e } function P ( t ) { var e , n = { margin : 0 , limit : 0 , animate : ! 0 , animationDuration : 300 , format : H } ; e = { step : { r : ! 1 , t : _ } , start : { r : ! 0 , t : x } , connect : { r : ! 0 , t : N } , direction : { r : ! 0 , t : k } , snap : { r : ! 1 , t : C } , animate : { r : ! 1 , t : S } , animationDuration : { r : ! 1 , t : O } , range : { r : ! 0 , t : T } , orientation : { r : ! 1 , t : L } , margin : { r : ! 1 , t : D } , limit : { r : ! 1 , t : q } , behaviour : { r : ! 0 , t : W } , format : { r : ! 1 , t : B } , tooltips : { r : ! 1 , t : E } , cssPrefix : { r : ! 1 , t : I } , cssClasses : { r : ! 1 , t : R } } ; var i = { connect : ! 1 , direction : "ltr" , behaviour : "tap" , orientation : "horizontal" , cssPrefix : "noUi-" , cssClasses : { target : "target" , base : "base" , origin : "origin" ,
2016-09-25 10:07:15 +02:00
if ( o && ( c . tax _name1 && ( p = parseFloat ( c . tax _rate1 ) ) , c . tax _name2 && ( f = parseFloat ( c . tax _rate2 ) ) ) , ! n || h || d || l && "0" != l && "0.00" != l && "0,00" != l ) { n = ! 0 , t . is _recurring && ( h = processVariables ( h ) , d = processVariables ( d ) , m = processVariables ( c . custom _value1 ) , g = processVariables ( c . custom _value2 ) ) ; var b = roundToTwo ( NINJA . parseFloat ( c . cost ) ) * roundToTwo ( NINJA . parseFloat ( c . qty ) ) ; if ( "1" == e . include _item _taxes _inline && ( p && ( b += b * p / 100 , b = roundToTwo ( b ) ) , f && ( b += b * f / 100 , b = roundToTwo ( b ) ) ) , b = formatMoneyInvoice ( b , t ) , rowStyle = s % 2 == 0 ? "odd" : "even" , t . has _product _key && r . push ( { style : [ "productKey" , rowStyle ] , text : d || " " } ) , r . push ( { style : [ "notes" , rowStyle ] , stack : [ { text : h || " " } ] } ) , t . features . invoice _settings && e . custom _invoice _item _label1 && r . push ( { style : [ "customValue1" , rowStyle ] , text : m || " " } ) , t . features . invoice _settings && e . custom _invoice _item _label2 && r . push ( { style : [ "customValue2" , rowStyle ] , text : g || " " } ) , i || ( r . push ( { style : [ "cost" , rowStyle ] , text : l } ) , r . push ( { style : [ "quantity" , rowStyle ] , text : u || " " } ) ) , o ) { var v = " " ; c . tax _name1 && ( v += p . toString ( ) + "%" ) , c . tax _name2 && ( c . tax _name1 && ( v += " " ) , v += f . toString ( ) + "%" ) , r . push ( { style : [ "tax" , rowStyle ] , text : v } ) } r . push ( { style : [ "lineTotal" , rowStyle ] , text : b || " " } ) , a . push ( r ) } } return NINJA . prepareDataTable ( a , "invoiceItems" ) } , NINJA . invoiceDocuments = function ( t ) { function e ( t ) { var e = t . base64 ; e || ( e = "docs/" + t . public _id + "/" + t . name ) , e && ( window . pdfMake . vfs [ e ] || t . base64 ) && ( o % 3 == 0 && ( i = { columns : [ ] } , n . push ( i ) ) , i . columns . push ( { stack : [ { image : e , style : "invoiceDocument" , fit : [ 150 , 150 ] } ] , width : 175 } ) , o ++ ) } if ( ! t . account . invoice _embed _documents ) return [ ] ; for ( var n = [ ] , i = null , o = 0 , a = 0 ; a < t . documents . length ; a ++ ) e ( t . documents [ a ] ) ; if ( t . expenses ) for ( var a = 0 ; a < t . expenses . length ; a ++ ) for ( var s = t . expenses [ a ] , o = 0 ; o < s . documents . length ; o ++ ) e ( s . documents [ o ] ) ; return n . length ? { stack : n } : [ ] } , NINJA . subtotals = function ( t , e ) { if ( t ) { var n = t . account , i = [ ] ; i . push ( [ { text : invoiceLabels . subtotal , style : [ "subtotalsLabel" , "subtotalLabel" ] } , { text : formatMoneyInvoice ( t . subtotal _amount , t ) , style : [ "subtotals" , "subtotal" ] } ] ) , 0 != t . discount _amount && i . push ( [ { text : invoiceLabels . discount , style : [ "subtotalsLabel" , "discountLabel" ] } , { text : formatMoneyInvoice ( t . discount _amount , t ) , style : [ "subtotals" , "discount" ] } ] ) , NINJA . parseFloat ( t . custom _value1 ) && "1" == t . custom _taxes1 && i . push ( [ { text : n . custom _invoice _label1 , style : [ "subtotalsLabel" , "customTax1Label" ] } , { text : formatMoneyInvoice ( t . custom _value1 , t ) , style : [ "subtotals" , "customTax1" ] } ] ) , NINJA . parseFloat ( t . custom _value2 ) && "1" == t . custom _taxes2 && i . push ( [ { text : n . custom _invoice _label2 , style : [ "subtotalsLabel" , "customTax2Label" ] } , { text : formatMoneyInvoice ( t . custom _value2 , t ) , style : [ "subtotals" , "customTax2" ] } ] ) ; for ( var o in t . item _taxes ) if ( t . item _taxes . hasOwnProperty ( o ) ) { var a = t . item _taxes [ o ] , s = a . name + " " + ( 1 * a . rate ) . toString ( ) + "%" ; i . push ( [ { text : s , style : [ "subtotalsLabel" , "taxLabel" ] } , { text : formatMoneyInvoice ( a . amount , t ) , style : [ "subtotals" , "tax" ] } ] ) } if ( t . tax _name1 ) { var s = t . tax _name1 + " " + ( 1 * t . tax _rate1 ) . toString ( ) + "%" ; i . push ( [ { text : s , style : [ "subtotalsLabel" , "tax1Label" ] } , { text : formatMoneyInvoice ( t . tax _amount1 , t ) , style : [ "subtotals" , "tax1" ] } ] ) } if ( t . tax _name2 ) { var s = t . tax _name2 + " " + ( 1 * t . tax _rate2 ) . toString ( ) + "%" ; i . push ( [ { text : s , style : [ "subtotalsLabel" , "tax2Label" ] } , { text : formatMoneyInvoice ( t . tax _amount2 , t ) , style : [ "subtotals" , "tax2" ] } ] ) } NINJA . parseFloat ( t . custom _value1 ) && "1" != t . custom _taxes1 && i . push ( [ { text : n . custom _invoice _label1 , style : [ "subtotalsLabel" , "custom1Label" ] } , { text : formatMoneyInvoice ( t . custom _value1 , t ) , style : [ "subtotals" , "custom1" ] } ] ) , NINJA . parseFloat ( t . custom _value2 ) && "1" != t . custom _taxes2 && i . push ( [ { text : n . custom _invoice _label2 , style : [ "subtotalsLabel" , "custom2Label" ] } , { text : formatMoneyInvoice ( t . custom _value2 , t ) , style : [ "subtotals" , "custom2" ] } ] ) ; var r = t . amount - t . balance ; ( "1" != t . account . hide _paid _to _date || r ) && i . push ( [ { text : invoiceLabels . paid _to _date , style : [ "subtotalsLabel" , "paidToDateLabel" ] } , { text : formatMoneyInvoice ( r , t ) , style : [ "subtotals" , "paidToDate" ] } ] ) ; var c = NINJA . parseFloat ( t . partial ) ; return e && ! c || i . push ( [ { text : invoiceLabels . balance _due , style : [ "subtotalsLabel" , c ? "" : "balanceDueLabel" ] } , { text : formatMoneyInvoice ( t . total _amount , t ) , style : [ "subtotals" , c ? "" : "balanceDue" ] } ] ) , e || c && i . push ( [ { te
2016-08-15 00:03:47 +02:00
//# sourceMappingURL=built.js.map