2016-11-28 10:42:58 +00:00
/ * *
* CyberChef - The Cyber Swiss Army Knife
*
* @ copyright Crown Copyright 2016
* @ license Apache - 2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS ,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
* /
"use strict" ; function BigInteger ( a , b , c ) { null != a && ( "number" == typeof a ? this . fromNumber ( a , b , c ) : null == b && "string" != typeof a ? this . fromString ( a , 256 ) : this . fromString ( a , b ) ) } function nbi ( ) { return new BigInteger ( null ) } function am1 ( a , b , c , d , e , f ) { for ( ; -- f >= 0 ; ) { var g = b * this [ a ++ ] + c [ d ] + e ; e = Math . floor ( g / 67108864 ) , c [ d ++ ] = 67108863 & g } return e } function am2 ( a , b , c , d , e , f ) { for ( var g = 32767 & b , h = b >> 15 ; -- f >= 0 ; ) { var i = 32767 & this [ a ] , j = this [ a ++ ] >> 15 , k = h * i + j * g ; i = g * i + ( ( 32767 & k ) << 15 ) + c [ d ] + ( 1073741823 & e ) , e = ( i >>> 30 ) + ( k >>> 15 ) + h * j + ( e >>> 30 ) , c [ d ++ ] = 1073741823 & i } return e } function am3 ( a , b , c , d , e , f ) { for ( var g = 16383 & b , h = b >> 14 ; -- f >= 0 ; ) { var i = 16383 & this [ a ] , j = this [ a ++ ] >> 14 , k = h * i + j * g ; i = g * i + ( ( 16383 & k ) << 14 ) + c [ d ] + e , e = ( i >> 28 ) + ( k >> 14 ) + h * j , c [ d ++ ] = 268435455 & i } return e } function int2char ( a ) { return BI _RM . charAt ( a ) } function intAt ( a , b ) { var c = BI _RC [ a . charCodeAt ( b ) ] ; return null == c ? - 1 : c } function bnpCopyTo ( a ) { for ( var b = this . t - 1 ; b >= 0 ; -- b ) a [ b ] = this [ b ] ; a . t = this . t , a . s = this . s } function bnpFromInt ( a ) { this . t = 1 , this . s = a < 0 ? - 1 : 0 , a > 0 ? this [ 0 ] = a : a < - 1 ? this [ 0 ] = a + this . DV : this . t = 0 } function nbv ( a ) { var b = nbi ( ) ; return b . fromInt ( a ) , b } function bnpFromString ( a , b ) { var c ; if ( 16 == b ) c = 4 ; else if ( 8 == b ) c = 3 ; else if ( 256 == b ) c = 8 ; else if ( 2 == b ) c = 1 ; else if ( 32 == b ) c = 5 ; else { if ( 4 != b ) return void this . fromRadix ( a , b ) ; c = 2 } this . t = 0 , this . s = 0 ; for ( var d = a . length , e = ! 1 , f = 0 ; -- d >= 0 ; ) { var g = 8 == c ? 255 & a [ d ] : intAt ( a , d ) ; g < 0 ? "-" == a . charAt ( d ) && ( e = ! 0 ) : ( e = ! 1 , 0 == f ? this [ this . t ++ ] = g : f + c > this . DB ? ( this [ this . t - 1 ] |= ( g & ( 1 << this . DB - f ) - 1 ) << f , this [ this . t ++ ] = g >> this . DB - f ) : this [ this . t - 1 ] |= g << f , f += c , f >= this . DB && ( f -= this . DB ) ) } 8 == c && 0 != ( 128 & a [ 0 ] ) && ( this . s = - 1 , f > 0 && ( this [ this . t - 1 ] |= ( 1 << this . DB - f ) - 1 << f ) ) , this . clamp ( ) , e && BigInteger . ZERO . subTo ( this , this ) } function bnpClamp ( ) { for ( var a = this . s & this . DM ; this . t > 0 && this [ this . t - 1 ] == a ; ) -- this . t } function bnToString ( a ) { if ( this . s < 0 ) return "-" + this . negate ( ) . toString ( a ) ; var b ; if ( 16 == a ) b = 4 ; else if ( 8 == a ) b = 3 ; else if ( 2 == a ) b = 1 ; else if ( 32 == a ) b = 5 ; else { if ( 4 != a ) return this . toRadix ( a ) ; b = 2 } var c , d = ( 1 << b ) - 1 , e = ! 1 , f = "" , g = this . t , h = this . DB - g * this . DB % b ; if ( g -- > 0 ) for ( h < this . DB && ( c = this [ g ] >> h ) > 0 && ( e = ! 0 , f = int2char ( c ) ) ; g >= 0 ; ) h < b ? ( c = ( this [ g ] & ( 1 << h ) - 1 ) << b - h , c |= this [ -- g ] >> ( h += this . DB - b ) ) : ( c = this [ g ] >> ( h -= b ) & d , h <= 0 && ( h += this . DB , -- g ) ) , c > 0 && ( e = ! 0 ) , e && ( f += int2char ( c ) ) ; return e ? f : "0" } function bnNegate ( ) { var a = nbi ( ) ; return BigInteger . ZERO . subTo ( this , a ) , a } function bnAbs ( ) { return this . s < 0 ? this . negate ( ) : this } function bnCompareTo ( a ) { var b = this . s - a . s ; if ( 0 != b ) return b ; var c = this . t ; if ( b = c - a . t , 0 != b ) return this . s < 0 ? - b : b ; for ( ; -- c >= 0 ; ) if ( 0 != ( b = this [ c ] - a [ c ] ) ) return b ; return 0 } function nbits ( a ) { var b , c = 1 ; return 0 != ( b = a >>> 16 ) && ( a = b , c += 16 ) , 0 != ( b = a >> 8 ) && ( a = b , c += 8 ) , 0 != ( b = a >> 4 ) && ( a = b , c += 4 ) , 0 != ( b = a >> 2 ) && ( a = b , c += 2 ) , 0 != ( b = a >> 1 ) && ( a = b , c += 1 ) , c } function bnBitLength ( ) { return this . t <= 0 ? 0 : this . DB * ( this . t - 1 ) + nbits ( this [ this . t - 1 ] ^ this . s & this . DM ) } function bnpDLShiftTo ( a , b ) { var c ; for ( c = this . t - 1 ; c >= 0 ; -- c ) b [ c + a ] = this [ c ] ; for ( c = a - 1 ; c >= 0 ; -- c ) b [ c ] = 0 ; b . t = this . t + a , b . s = this . s } function bnpDRShiftTo ( a , b ) { for ( var c = a ; c < this . t ; ++ c ) b [ c - a ] = this [ c ] ; b . t = Math . max ( this . t - a , 0 ) , b . s = this . s } function bnpLShiftTo ( a , b ) { var c , d = a % this . DB , e = this . DB - d , f = ( 1 << e ) - 1 , g = Math . floor ( a / this . DB ) , h = this . s << d & this . DM ; for ( c = this . t - 1 ; c >= 0 ; -- c ) b [ c + g + 1 ] = this [ c ] >> e | h , h = ( this [ c ] & f ) << d ; for ( c = g - 1 ; c >= 0 ; -- c ) b [ c ] = 0 ; b [ g ] = h , b . t = this . t + g + 1 , b . s = this . s , b . clamp ( ) } function bnpRShiftTo ( a , b ) { b . s = this . s ; var c = Math . floor ( a / this . DB ) ; if ( c >= this . t ) return void ( b . t = 0 ) ; var d = a % this . DB , e = this . DB - d , f = ( 1 << d ) - 1 ; b [ 0 ] = this [ c ] >> d ; for ( var g = c + 1 ; g < this . t ; ++ g ) b [ g - c - 1 ] |= ( this [ g ] & f ) << e , b [ g - c ] = this [ g ] >> d ; d > 0 && ( b [ this . t - c - 1 ] |= ( this . s & f ) << e ) , b . t = this . t - c , b . clamp ( ) } function bnpSubTo ( a , b ) { for ( var c = 0 , d = 0 , e = Math . min ( a . t , this . t ) ; c < e ; ) d += this [ c ] - a [ c ] , b [ c ++ ] = d & this . DM , d >>= this . DB ; if ( a . t < this . t ) { for ( d -= a . s ; c < this . t ; ) d += this [ c ] , b [ c ++ ] = d & this . DM , d >>= this . DB ; d += this . s } else { for ( d += this . s ; c < a . t ; ) d -= a [ c ] , b [ c ++ ] = d & this . DM , d >>= this . DB ; d -= a . s } b . s = d < 0 ? - 1 : 0 , d < - 1 ? b [ c ++ ] = this . DV + d : d > 0 && ( b [ c ++ ] = d ) , b . t = c , b . clamp ( ) } function bnpMultiplyTo ( a , b ) { var c = this . abs ( ) , d = a . abs ( ) , e = c . t ; for ( b . t = e + d . t ; -- e >= 0 ; ) b [ e ] = 0 ; for ( e = 0 ; e < d . t ; ++ e ) b [ e + c . t ] = c . am ( 0 , d [ e ] , b , e , 0 , c . t ) ; b . s = 0 , b . clamp ( ) , this . s != a . s && BigInteger . ZERO . subTo ( b , b ) } function bnpSquareTo ( a ) { for ( var b = this . abs ( ) , c = a . t = 2 * b . t ; -- c >= 0 ; ) a [ c ] = 0 ; for ( c = 0 ; c < b . t - 1 ; ++ c ) {
=== === === === === === === === === === === === === === === === === === === === === === === ===
The 'jsrsasign' ( RSA - Sign JavaScript Library ) License
Copyright ( c ) 2010 - 2013 Kenji Urushima
Permission is hereby granted , free of charge , to any person obtaining a copy
of this software and associated documentation files ( the "Software" ) , to deal
in the Software without restriction , including without limitation the rights
to use , copy , modify , merge , publish , distribute , sublicense , and / or sell
copies of the Software , and to permit persons to whom the Software is
furnished to do so , subject to the following conditions :
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software .
THE SOFTWARE IS PROVIDED "AS IS" , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER
LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM ,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE .
* /
function X509 ( ) { this . subjectPublicKeyRSA = null , this . subjectPublicKeyRSA _hN = null , this . subjectPublicKeyRSA _hE = null , this . hex = null , this . getSerialNumberHex = function ( ) { return ASN1HEX . getDecendantHexVByNthList ( this . hex , 0 , [ 0 , 1 ] ) } , this . getIssuerHex = function ( ) { return ASN1HEX . getDecendantHexTLVByNthList ( this . hex , 0 , [ 0 , 3 ] ) } , this . getIssuerString = function ( ) { return X509 . hex2dn ( ASN1HEX . getDecendantHexTLVByNthList ( this . hex , 0 , [ 0 , 3 ] ) ) } , this . getSubjectHex = function ( ) { return ASN1HEX . getDecendantHexTLVByNthList ( this . hex , 0 , [ 0 , 5 ] ) } , this . getSubjectString = function ( ) { return X509 . hex2dn ( ASN1HEX . getDecendantHexTLVByNthList ( this . hex , 0 , [ 0 , 5 ] ) ) } , this . getNotBefore = function ( ) { var a = ASN1HEX . getDecendantHexVByNthList ( this . hex , 0 , [ 0 , 4 , 0 ] ) ; return a = a . replace ( /(..)/g , "%$1" ) , a = decodeURIComponent ( a ) } , this . getNotAfter = function ( ) { var a = ASN1HEX . getDecendantHexVByNthList ( this . hex , 0 , [ 0 , 4 , 1 ] ) ; return a = a . replace ( /(..)/g , "%$1" ) , a = decodeURIComponent ( a ) } , this . readCertPEM = function ( a ) { var b = X509 . pemToHex ( a ) , c = X509 . getPublicKeyHexArrayFromCertHex ( b ) , d = new RSAKey ; d . setPublic ( c [ 0 ] , c [ 1 ] ) , this . subjectPublicKeyRSA = d , this . subjectPublicKeyRSA _hN = c [ 0 ] , this . subjectPublicKeyRSA _hE = c [ 1 ] , this . hex = b } , this . readCertPEMWithoutRSAInit = function ( a ) { var b = X509 . pemToHex ( a ) , c = X509 . getPublicKeyHexArrayFromCertHex ( b ) ; this . subjectPublicKeyRSA . setPublic ( c [ 0 ] , c [ 1 ] ) , this . subjectPublicKeyRSA _hN = c [ 0 ] , this . subjectPublicKeyRSA _hE = c [ 1 ] , this . hex = b } } / * * @ license
=== === === === === === === === === === === === === === === === === === === === === === === ===
Bootstrap v3 . 3.6 ( http : //getbootstrap.com)
Copyright 2011 - 2016 Twitter , Inc .
Licensed under the MIT license
* /
if ( function ( a , b ) { "object" == typeof module && "object" == typeof module . exports ? module . exports = a . document ? b ( a , ! 0 ) : function ( a ) { if ( ! a . document ) throw new Error ( "jQuery requires a window with a document" ) ; return b ( a ) } : b ( a ) } ( "undefined" != typeof window ? window : this , function ( a , b ) { function c ( a ) { var b = a . length , c = _ . type ( a ) ; return "function" !== c && ! _ . isWindow ( a ) && ( ! ( 1 !== a . nodeType || ! b ) || ( "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a ) ) } function d ( a , b , c ) { if ( _ . isFunction ( b ) ) return _ . grep ( a , function ( a , d ) { return ! ! b . call ( a , d , a ) !== c } ) ; if ( b . nodeType ) return _ . grep ( a , function ( a ) { return a === b !== c } ) ; if ( "string" == typeof b ) { if ( ha . test ( b ) ) return _ . filter ( b , a , c ) ; b = _ . filter ( b , a ) } return _ . grep ( a , function ( a ) { return U . call ( b , a ) >= 0 !== c } ) } function e ( a , b ) { for ( ; ( a = a [ b ] ) && 1 !== a . nodeType ; ) ; return a } function f ( a ) { var b = oa [ a ] = { } ; return _ . each ( a . match ( na ) || [ ] , function ( a , c ) { b [ c ] = ! 0 } ) , b } function g ( ) { Z . removeEventListener ( "DOMContentLoaded" , g , ! 1 ) , a . removeEventListener ( "load" , g , ! 1 ) , _ . ready ( ) } function h ( ) { Object . defineProperty ( this . cache = { } , 0 , { get : function ( ) { return { } } } ) , this . expando = _ . expando + Math . random ( ) } function i ( a , b , c ) { var d ; if ( void 0 === c && 1 === a . nodeType ) if ( d = "data-" + b . replace ( ua , "-$1" ) . toLowerCase ( ) , c = a . getAttribute ( d ) , "string" == typeof c ) { try { c = "true" === c || "false" !== c && ( "null" === c ? null : + c + "" === c ? + c : ta . test ( c ) ? _ . parseJSON ( c ) : c ) } catch ( a ) { } sa . set ( a , b , c ) } else c = void 0 ; return c } function j ( ) { return ! 0 } function k ( ) { return ! 1 } function l ( ) { try { return Z . activeElement } catch ( a ) { } } function m ( a , b ) { return _ . nodeName ( a , "table" ) && _ . nodeName ( 11 !== b . nodeType ? b : b . firstChild , "tr" ) ? a . getElementsByTagName ( "tbody" ) [ 0 ] || a . appendChild ( a . ownerDocument . createElement ( "tbody" ) ) : a } function n ( a ) { return a . type = ( null !== a . getAttribute ( "type" ) ) + "/" + a . type , a } function o ( a ) { var b = Ka . exec ( a . type ) ; return b ? a . type = b [ 1 ] : a . removeAttribute ( "type" ) , a } function p ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) ra . set ( a [ c ] , "globalEval" , ! b || ra . get ( b [ c ] , "globalEval" ) ) } function q ( a , b ) { var c , d , e , f , g , h , i , j ; if ( 1 === b . nodeType ) { if ( ra . hasData ( a ) && ( f = ra . access ( a ) , g = ra . set ( b , f ) , j = f . events ) ) { delete g . handle , g . events = { } ; for ( e in j ) for ( c = 0 , d = j [ e ] . length ; c < d ; c ++ ) _ . event . add ( b , e , j [ e ] [ c ] ) } sa . hasData ( a ) && ( h = sa . access ( a ) , i = _ . extend ( { } , h ) , sa . set ( b , i ) ) } } function r ( a , b ) { var c = a . getElementsByTagName ? a . getElementsByTagName ( b || "*" ) : a . querySelectorAll ? a . querySelectorAll ( b || "*" ) : [ ] ; return void 0 === b || b && _ . nodeName ( a , b ) ? _ . merge ( [ a ] , c ) : c } function s ( a , b ) { var c = b . nodeName . toLowerCase ( ) ; "input" === c && ya . test ( a . type ) ? b . checked = a . checked : "input" !== c && "textarea" !== c || ( b . defaultValue = a . defaultValue ) } function t ( b , c ) { var d , e = _ ( c . createElement ( b ) ) . appendTo ( c . body ) , f = a . getDefaultComputedStyle && ( d = a . getDefaultComputedStyle ( e [ 0 ] ) ) ? d . display : _ . css ( e [ 0 ] , "display" ) ; return e . detach ( ) , f } function u ( a ) { var b = Z , c = Oa [ a ] ; return c || ( c = t ( a , b ) , "none" !== c && c || ( Na = ( Na || _ ( "<iframe frameborder='0' width='0' height='0'/>" ) ) . appendTo ( b . documentElement ) , b = Na [ 0 ] . contentDocument , b . write ( ) , b . close ( ) , c = t ( a , b ) , Na . detach ( ) ) , Oa [ a ] = c ) , c } function v ( a , b , c ) { var d , e , f , g , h = a . style ; return c = c || Ra ( a ) , c && ( g = c . getPropertyValue ( b ) || c [ b ] ) , c && ( "" !== g || _ . contains ( a . ownerDocument , a ) || ( g = _ . style ( a , b ) ) , Qa . test ( g ) && Pa . test ( b ) && ( d = h . width , e = h . minWidth , f = h . maxWidth , h . minWidth = h . maxWidth = h . width = g , g = c . width , h . width = d , h . minWidth = e , h . maxWidth = f ) ) , void 0 !== g ? g + "" : g } function w ( a , b ) { return { get : function ( ) { return a ( ) ? void delete this . get : ( this . get = b ) . apply ( this , arguments ) } } } function x ( a , b ) { if ( b in a ) return b ; for ( var c = b [ 0 ] . toUpperCase ( ) + b . slice ( 1 ) , d = b , e = Xa . length ; e -- ; ) if ( b = Xa [ e ] + c , b in a ) return b ; return d } function y ( a , b , c ) { var d = Ta . exec ( b ) ; return d ? Math . max ( 0 , d [ 1 ] - ( c || 0 ) ) + ( d [ 2 ] || "px" ) : b } function z ( a , b , c , d , e ) { for ( var f = c === ( d ? "border" : "content" ) ? 4 : "width" === b ? 1 : 0 , g = 0 ; f < 4 ; f += 2 ) "margin" === c && ( g += _ . css ( a , c + wa [ f ] , ! 0 , e ) ) , d ? ( "content" === c && ( g -= _ . css ( a , "padding" + wa [ f ] , ! 0 , e ) ) , "margin" !== c && ( g -= _ . css ( a , "border" + wa [ f ] + "Width" , ! 0 , e ) ) ) : ( g += _ . css ( a , "padding" + wa [ f ] , ! 0 , e ) , "padding" !== c && ( g += _ . css ( a , "border" + wa [ f ] + "Width" , ! 0 , e ) ) ) ; return g } function A ( a , b , c ) { var d = ! 0 , e = "width" === b ? a . offsetWidth : a . offsetHeight , f = Ra ( a ) , g = "border-box" === _ . css ( a , "boxSizing" , ! 1 , f ) ; if ( e <= 0 || null == e ) { if ( e = v ( a , b , f ) , ( e < 0 || null == e ) && ( e = a . style [ b ] ) , Qa . test ( e ) ) ret
} ) ) ; for ( b = 0 ; b < c ; b ++ ) _ . find ( a , e [ b ] , d ) ; return d = this . pushStack ( c > 1 ? _ . unique ( d ) : d ) , d . selector = this . selector ? this . selector + " " + a : a , d } , filter : function ( a ) { return this . pushStack ( d ( this , a || [ ] , ! 1 ) ) } , not : function ( a ) { return this . pushStack ( d ( this , a || [ ] , ! 0 ) ) } , is : function ( a ) { return ! ! d ( this , "string" == typeof a && fa . test ( a ) ? _ ( a ) : a || [ ] , ! 1 ) . length } } ) ; var ia , ja = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/ , ka = _ . fn . init = function ( a , b ) { var c , d ; if ( ! a ) return this ; if ( "string" == typeof a ) { if ( c = "<" === a [ 0 ] && ">" === a [ a . length - 1 ] && a . length >= 3 ? [ null , a , null ] : ja . exec ( a ) , ! c || ! c [ 1 ] && b ) return ! b || b . jquery ? ( b || ia ) . find ( a ) : this . constructor ( b ) . find ( a ) ; if ( c [ 1 ] ) { if ( b = b instanceof _ ? b [ 0 ] : b , _ . merge ( this , _ . parseHTML ( c [ 1 ] , b && b . nodeType ? b . ownerDocument || b : Z , ! 0 ) ) , ga . test ( c [ 1 ] ) && _ . isPlainObject ( b ) ) for ( c in b ) _ . isFunction ( this [ c ] ) ? this [ c ] ( b [ c ] ) : this . attr ( c , b [ c ] ) ; return this } return d = Z . getElementById ( c [ 2 ] ) , d && d . parentNode && ( this . length = 1 , this [ 0 ] = d ) , this . context = Z , this . selector = a , this } return a . nodeType ? ( this . context = this [ 0 ] = a , this . length = 1 , this ) : _ . isFunction ( a ) ? "undefined" != typeof ia . ready ? ia . ready ( a ) : a ( _ ) : ( void 0 !== a . selector && ( this . selector = a . selector , this . context = a . context ) , _ . makeArray ( a , this ) ) } ; ka . prototype = _ . fn , ia = _ ( Z ) ; var la = /^(?:parents|prev(?:Until|All))/ , ma = { children : ! 0 , contents : ! 0 , next : ! 0 , prev : ! 0 } ; _ . extend ( { dir : function ( a , b , c ) { for ( var d = [ ] , e = void 0 !== c ; ( a = a [ b ] ) && 9 !== a . nodeType ; ) if ( 1 === a . nodeType ) { if ( e && _ ( a ) . is ( c ) ) break ; d . push ( a ) } return d } , sibling : function ( a , b ) { for ( var c = [ ] ; a ; a = a . nextSibling ) 1 === a . nodeType && a !== b && c . push ( a ) ; return c } } ) , _ . fn . extend ( { has : function ( a ) { var b = _ ( a , this ) , c = b . length ; return this . filter ( function ( ) { for ( var a = 0 ; a < c ; a ++ ) if ( _ . contains ( this , b [ a ] ) ) return ! 0 } ) } , closest : function ( a , b ) { for ( var c , d = 0 , e = this . length , f = [ ] , g = fa . test ( a ) || "string" != typeof a ? _ ( a , b || this . context ) : 0 ; d < e ; d ++ ) for ( c = this [ d ] ; c && c !== b ; c = c . parentNode ) if ( c . nodeType < 11 && ( g ? g . index ( c ) > - 1 : 1 === c . nodeType && _ . find . matchesSelector ( c , a ) ) ) { f . push ( c ) ; break } return this . pushStack ( f . length > 1 ? _ . unique ( f ) : f ) } , index : function ( a ) { return a ? "string" == typeof a ? U . call ( _ ( a ) , this [ 0 ] ) : U . call ( this , a . jquery ? a [ 0 ] : a ) : this [ 0 ] && this [ 0 ] . parentNode ? this . first ( ) . prevAll ( ) . length : - 1 } , add : function ( a , b ) { return this . pushStack ( _ . unique ( _ . merge ( this . get ( ) , _ ( a , b ) ) ) ) } , addBack : function ( a ) { return this . add ( null == a ? this . prevObject : this . prevObject . filter ( a ) ) } } ) , _ . each ( { parent : function ( a ) { var b = a . parentNode ; return b && 11 !== b . nodeType ? b : null } , parents : function ( a ) { return _ . dir ( a , "parentNode" ) } , parentsUntil : function ( a , b , c ) { return _ . dir ( a , "parentNode" , c ) } , next : function ( a ) { return e ( a , "nextSibling" ) } , prev : function ( a ) { return e ( a , "previousSibling" ) } , nextAll : function ( a ) { return _ . dir ( a , "nextSibling" ) } , prevAll : function ( a ) { return _ . dir ( a , "previousSibling" ) } , nextUntil : function ( a , b , c ) { return _ . dir ( a , "nextSibling" , c ) } , prevUntil : function ( a , b , c ) { return _ . dir ( a , "previousSibling" , c ) } , siblings : function ( a ) { return _ . sibling ( ( a . parentNode || { } ) . firstChild , a ) } , children : function ( a ) { return _ . sibling ( a . firstChild ) } , contents : function ( a ) { return a . contentDocument || _ . merge ( [ ] , a . childNodes ) } } , function ( a , b ) { _ . fn [ a ] = function ( c , d ) { var e = _ . map ( this , b , c ) ; return "Until" !== a . slice ( - 5 ) && ( d = c ) , d && "string" == typeof d && ( e = _ . filter ( d , e ) ) , this . length > 1 && ( ma [ a ] || _ . unique ( e ) , la . test ( a ) && e . reverse ( ) ) , this . pushStack ( e ) } } ) ; var na = /\S+/g , oa = { } ; _ . Callbacks = function ( a ) { a = "string" == typeof a ? oa [ a ] || f ( a ) : _ . extend ( { } , a ) ; var b , c , d , e , g , h , i = [ ] , j = ! a . once && [ ] , k = function ( f ) { for ( b = a . memory && f , c = ! 0 , h = e || 0 , e = 0 , g = i . length , d = ! 0 ; i && h < g ; h ++ ) if ( i [ h ] . apply ( f [ 0 ] , f [ 1 ] ) === ! 1 && a . stopOnFalse ) { b = ! 1 ; break } d = ! 1 , i && ( j ? j . length && k ( j . shift ( ) ) : b ? i = [ ] : l . disable ( ) ) } , l = { add : function ( ) { if ( i ) { var c = i . length ; ! function b ( c ) { _ . each ( c , function ( c , d ) { var e = _ . type ( d ) ; "function" === e ? a . unique && l . has ( d ) || i . push ( d ) : d && d . length && "string" !== e && b ( d ) } ) } ( arguments ) , d ? g = i . length : b && ( e = c , k ( b ) ) } return this } , remove : function ( ) { return i && _ . each ( arguments , function ( a , b ) { for ( var c ; ( c = _ . inArray ( b , i , c ) ) > - 1 ; ) i . splice ( c , 1 ) , d && ( c <= g && g -- , c <= h && h -- ) } ) , this } , has : function ( a ) { return a ? _ . inArray ( a , i ) > - 1 : ! ( ! i || ! i . length ) } , empty : function ( ) { return i = [ ] , g = 0 , this } , disable : function ( ) { return i = j = b = void 0 , this } , disabled : function ( ) { return ! i } , lock : function ( ) { return j = void 0 , b || l
_ . fn [ b ] = function ( a , d , e ) { return null == a || "boolean" == typeof a ? c . apply ( this , arguments ) : this . animate ( E ( b , ! 0 ) , a , d , e ) } } ) , _ . each ( { slideDown : E ( "show" ) , slideUp : E ( "hide" ) , slideToggle : E ( "toggle" ) , fadeIn : { opacity : "show" } , fadeOut : { opacity : "hide" } , fadeToggle : { opacity : "toggle" } } , function ( a , b ) { _ . fn [ a ] = function ( a , c , d ) { return this . animate ( b , a , c , d ) } } ) , _ . timers = [ ] , _ . fx . tick = function ( ) { var a , b = 0 , c = _ . timers ; for ( Ya = _ . now ( ) ; b < c . length ; b ++ ) a = c [ b ] , a ( ) || c [ b ] !== a || c . splice ( b -- , 1 ) ; c . length || _ . fx . stop ( ) , Ya = void 0 } , _ . fx . timer = function ( a ) { _ . timers . push ( a ) , a ( ) ? _ . fx . start ( ) : _ . timers . pop ( ) } , _ . fx . interval = 13 , _ . fx . start = function ( ) { Za || ( Za = setInterval ( _ . fx . tick , _ . fx . interval ) ) } , _ . fx . stop = function ( ) { clearInterval ( Za ) , Za = null } , _ . fx . speeds = { slow : 600 , fast : 200 , _default : 400 } , _ . fn . delay = function ( a , b ) { return a = _ . fx ? _ . fx . speeds [ a ] || a : a , b = b || "fx" , this . queue ( b , function ( b , c ) { var d = setTimeout ( b , a ) ; c . stop = function ( ) { clearTimeout ( d ) } } ) } , function ( ) { var a = Z . createElement ( "input" ) , b = Z . createElement ( "select" ) , c = b . appendChild ( Z . createElement ( "option" ) ) ; a . type = "checkbox" , Y . checkOn = "" !== a . value , Y . optSelected = c . selected , b . disabled = ! 0 , Y . optDisabled = ! c . disabled , a = Z . createElement ( "input" ) , a . value = "t" , a . type = "radio" , Y . radioValue = "t" === a . value } ( ) ; var db , eb , fb = _ . expr . attrHandle ; _ . fn . extend ( { attr : function ( a , b ) { return qa ( this , _ . attr , a , b , arguments . length > 1 ) } , removeAttr : function ( a ) { return this . each ( function ( ) { _ . removeAttr ( this , a ) } ) } } ) , _ . extend ( { attr : function ( a , b , c ) { var d , e , f = a . nodeType ; if ( a && 3 !== f && 8 !== f && 2 !== f ) return typeof a . getAttribute === za ? _ . prop ( a , b , c ) : ( 1 === f && _ . isXMLDoc ( a ) || ( b = b . toLowerCase ( ) , d = _ . attrHooks [ b ] || ( _ . expr . match . bool . test ( b ) ? eb : db ) ) , void 0 === c ? d && "get" in d && null !== ( e = d . get ( a , b ) ) ? e : ( e = _ . find . attr ( a , b ) , null == e ? void 0 : e ) : null !== c ? d && "set" in d && void 0 !== ( e = d . set ( a , c , b ) ) ? e : ( a . setAttribute ( b , c + "" ) , c ) : void _ . removeAttr ( a , b ) ) } , removeAttr : function ( a , b ) { var c , d , e = 0 , f = b && b . match ( na ) ; if ( f && 1 === a . nodeType ) for ( ; c = f [ e ++ ] ; ) d = _ . propFix [ c ] || c , _ . expr . match . bool . test ( c ) && ( a [ d ] = ! 1 ) , a . removeAttribute ( c ) } , attrHooks : { type : { set : function ( a , b ) { if ( ! Y . radioValue && "radio" === b && _ . nodeName ( a , "input" ) ) { var c = a . value ; return a . setAttribute ( "type" , b ) , c && ( a . value = c ) , b } } } } } ) , eb = { set : function ( a , b , c ) { return b === ! 1 ? _ . removeAttr ( a , c ) : a . setAttribute ( c , c ) , c } } , _ . each ( _ . expr . match . bool . source . match ( /\w+/g ) , function ( a , b ) { var c = fb [ b ] || _ . find . attr ; fb [ b ] = function ( a , b , d ) { var e , f ; return d || ( f = fb [ b ] , fb [ b ] = e , e = null != c ( a , b , d ) ? b . toLowerCase ( ) : null , fb [ b ] = f ) , e } } ) ; var gb = /^(?:input|select|textarea|button)$/i ; _ . fn . extend ( { prop : function ( a , b ) { return qa ( this , _ . prop , a , b , arguments . length > 1 ) } , removeProp : function ( a ) { return this . each ( function ( ) { delete this [ _ . propFix [ a ] || a ] } ) } } ) , _ . extend ( { propFix : { for : "htmlFor" , class : "className" } , prop : function ( a , b , c ) { var d , e , f , g = a . nodeType ; if ( a && 3 !== g && 8 !== g && 2 !== g ) return f = 1 !== g || ! _ . isXMLDoc ( a ) , f && ( b = _ . propFix [ b ] || b , e = _ . propHooks [ b ] ) , void 0 !== c ? e && "set" in e && void 0 !== ( d = e . set ( a , c , b ) ) ? d : a [ b ] = c : e && "get" in e && null !== ( d = e . get ( a , b ) ) ? d : a [ b ] } , propHooks : { tabIndex : { get : function ( a ) { return a . hasAttribute ( "tabindex" ) || gb . test ( a . nodeName ) || a . href ? a . tabIndex : - 1 } } } } ) , Y . optSelected || ( _ . propHooks . selected = { get : function ( a ) { var b = a . parentNode ; return b && b . parentNode && b . parentNode . selectedIndex , null } } ) , _ . each ( [ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ] , function ( ) { _ . propFix [ this . toLowerCase ( ) ] = this } ) ; var hb = /[\t\r\n\f]/g ; _ . fn . extend ( { addClass : function ( a ) { var b , c , d , e , f , g , h = "string" == typeof a && a , i = 0 , j = this . length ; if ( _ . isFunction ( a ) ) return this . each ( function ( b ) { _ ( this ) . addClass ( a . call ( this , b , this . className ) ) } ) ; if ( h ) for ( b = ( a || "" ) . match ( na ) || [ ] ; i < j ; i ++ ) if ( c = this [ i ] , d = 1 === c . nodeType && ( c . className ? ( " " + c . className + " " ) . replace ( hb , " " ) : " " ) ) { for ( f = 0 ; e = b [ f ++ ] ; ) d . indexOf ( " " + e + " " ) < 0 && ( d += e + " " ) ; g = _ . trim ( d ) , c . className !== g && ( c . className = g ) } return this } , removeClass : function ( a ) { var b , c , d , e , f , g , h = 0 === arguments . length || "string" == typeof a && a , i = 0 , j = this . length ; if ( _ . isFunction ( a ) ) return this . each ( function ( b ) { _ ( this ) . removeClass ( a . call ( this , b , this . className ) ) } ) ; if ( h ) for ( b = ( a || "" ) . match ( na ) || [ ] ; i < j ; i ++ ) if ( c = this [ i ] , d = 1 === c . nodeType && ( c . className ? ( " " + c . className + "
2016-12-20 20:18:16 +00:00
a ( b ) . on ( "click.bs.dropdown" , this . toggle ) } ; g . VERSION = "3.3.6" , g . prototype . toggle = function ( d ) { var e = a ( this ) ; if ( ! e . is ( ".disabled, :disabled" ) ) { var f = b ( e ) , g = f . hasClass ( "open" ) ; if ( c ( ) , ! g ) { "ontouchstart" in document . documentElement && ! f . closest ( ".navbar-nav" ) . length && a ( document . createElement ( "div" ) ) . addClass ( "dropdown-backdrop" ) . insertAfter ( a ( this ) ) . on ( "click" , c ) ; var h = { relatedTarget : this } ; if ( f . trigger ( d = a . Event ( "show.bs.dropdown" , h ) ) , d . isDefaultPrevented ( ) ) return ; e . trigger ( "focus" ) . attr ( "aria-expanded" , "true" ) , f . toggleClass ( "open" ) . trigger ( a . Event ( "shown.bs.dropdown" , h ) ) } return ! 1 } } , g . prototype . keydown = function ( c ) { if ( /(38|40|27|32)/ . test ( c . which ) && ! /input|textarea/i . test ( c . target . tagName ) ) { var d = a ( this ) ; if ( c . preventDefault ( ) , c . stopPropagation ( ) , ! d . is ( ".disabled, :disabled" ) ) { var e = b ( d ) , g = e . hasClass ( "open" ) ; if ( ! g && 27 != c . which || g && 27 == c . which ) return 27 == c . which && e . find ( f ) . trigger ( "focus" ) , d . trigger ( "click" ) ; var h = " li:not(.disabled):visible a" , i = e . find ( ".dropdown-menu" + h ) ; if ( i . length ) { var j = i . index ( c . target ) ; 38 == c . which && j > 0 && j -- , 40 == c . which && j < i . length - 1 && j ++ , ~ j || ( j = 0 ) , i . eq ( j ) . trigger ( "focus" ) } } } } ; var h = a . fn . dropdown ; a . fn . dropdown = d , a . fn . dropdown . Constructor = g , a . fn . dropdown . noConflict = function ( ) { return a . fn . dropdown = h , this } , a ( document ) . on ( "click.bs.dropdown.data-api" , c ) . on ( "click.bs.dropdown.data-api" , ".dropdown form" , function ( a ) { a . stopPropagation ( ) } ) . on ( "click.bs.dropdown.data-api" , f , g . prototype . toggle ) . on ( "keydown.bs.dropdown.data-api" , f , g . prototype . keydown ) . on ( "keydown.bs.dropdown.data-api" , ".dropdown-menu" , g . prototype . keydown ) } ( jQuery ) , + function ( a ) { function b ( b , d ) { return this . each ( function ( ) { var e = a ( this ) , f = e . data ( "bs.modal" ) , g = a . extend ( { } , c . DEFAULTS , e . data ( ) , "object" == typeof b && b ) ; f || e . data ( "bs.modal" , f = new c ( this , g ) ) , "string" == typeof b ? f [ b ] ( d ) : g . show && f . show ( d ) } ) } var c = function ( b , c ) { this . options = c , this . $body = a ( document . body ) , this . $element = a ( b ) , this . $dialog = this . $element . find ( ".modal-dialog" ) , this . $backdrop = null , this . isShown = null , this . originalBodyPad = null , this . scrollbarWidth = 0 , this . ignoreBackdropClick = ! 1 , this . options . remote && this . $element . find ( ".modal-content" ) . load ( this . options . remote , a . proxy ( function ( ) { this . $element . trigger ( "loaded.bs.modal" ) } , this ) ) } ; c . VERSION = "3.3.6" , c . TRANSITION _DURATION = 300 , c . BACKDROP _TRANSITION _DURATION = 150 , c . DEFAULTS = { backdrop : ! 0 , keyboard : ! 0 , show : ! 0 } , c . prototype . toggle = function ( a ) { return this . isShown ? this . hide ( ) : this . show ( a ) } , c . prototype . show = function ( b ) { var d = this , e = a . Event ( "show.bs.modal" , { relatedTarget : b } ) ; this . $element . trigger ( e ) , this . isShown || e . isDefaultPrevented ( ) || ( this . isShown = ! 0 , this . checkScrollbar ( ) , this . setScrollbar ( ) , this . $body . addClass ( "modal-open" ) , this . escape ( ) , this . resize ( ) , this . $element . on ( "click.dismiss.bs.modal" , '[data-dismiss="modal"]' , a . proxy ( this . hide , this ) ) , this . $dialog . on ( "mousedown.dismiss.bs.modal" , function ( ) { d . $element . one ( "mouseup.dismiss.bs.modal" , function ( b ) { a ( b . target ) . is ( d . $element ) && ( d . ignoreBackdropClick = ! 0 ) } ) } ) , this . backdrop ( function ( ) { var e = a . support . transition && d . $element . hasClass ( "fade" ) ; d . $element . parent ( ) . length || d . $element . appendTo ( d . $body ) , d . $element . show ( ) . scrollTop ( 0 ) , d . adjustDialog ( ) , e && d . $element [ 0 ] . offsetWidth , d . $element . addClass ( "in" ) , d . enforceFocus ( ) ; var f = a . Event ( "shown.bs.modal" , { relatedTarget : b } ) ; e ? d . $dialog . one ( "bsTransitionEnd" , function ( ) { d . $element . trigger ( "focus" ) . trigger ( f ) } ) . emulateTransitionEnd ( c . TRANSITION _DURATION ) : d . $element . trigger ( "focus" ) . trigger ( f ) } ) ) } , c . prototype . hide = function ( b ) { b && b . preventDefault ( ) , b = a . Event ( "hide.bs.modal" ) , this . $element . trigger ( b ) , this . isShown && ! b . isDefaultPrevented ( ) && ( this . isShown = ! 1 , this . escape ( ) , this . resize ( ) , a ( document ) . off ( "focusin.bs.modal" ) , this . $element . removeClass ( "in" ) . off ( "click.dismiss.bs.modal" ) . off ( "mouseup.dismiss.bs.modal" ) , this . $dialog . off ( "mousedown.dismiss.bs.modal" ) , a . support . transition && this . $element . hasClass ( "fade" ) ? this . $element . one ( "bsTransitionEnd" , a . proxy ( this . hideModal , this ) ) . emulateTransitionEnd ( c . TRANSITION _DURATION ) : this . hideModal ( ) ) } , c . prototype . enforceFocus = function ( ) { a ( document ) . off ( "focusin.bs.modal" ) . on ( "focusin.bs.modal" , a . proxy ( function ( a ) { document === a . target || this . $element [ 0
2016-11-28 10:42:58 +00:00
=== === === === === === === === === === === === === === === === === === === === === === === ===
bootstrap - switch - v3 . 1.0
http : //www.bootstrap-switch.org
Copyright 2012 - 2013 Mattia Larentis
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
* /
function ( ) { var a = [ ] . slice ; ! function ( b , c ) { var d ; return d = function ( ) { function a ( a , c ) { null == c && ( c = { } ) , this . $element = b ( a ) , this . options = b . extend ( { } , b . fn . bootstrapSwitch . defaults , { state : this . $element . is ( ":checked" ) , size : this . $element . data ( "size" ) , animate : this . $element . data ( "animate" ) , disabled : this . $element . is ( ":disabled" ) , readonly : this . $element . is ( "[readonly]" ) , indeterminate : this . $element . data ( "indeterminate" ) , inverse : this . $element . data ( "inverse" ) , radioAllOff : this . $element . data ( "radio-all-off" ) , onColor : this . $element . data ( "on-color" ) , offColor : this . $element . data ( "off-color" ) , onText : this . $element . data ( "on-text" ) , offText : this . $element . data ( "off-text" ) , labelText : this . $element . data ( "label-text" ) , baseClass : this . $element . data ( "base-class" ) , wrapperClass : this . $element . data ( "wrapper-class" ) } , c ) , this . $wrapper = b ( "<div>" , { class : function ( a ) { return function ( ) { var b ; return b = [ "" + a . options . baseClass ] . concat ( a . _getClasses ( a . options . wrapperClass ) ) , b . push ( a . options . state ? "" + a . options . baseClass + "-on" : "" + a . options . baseClass + "-off" ) , null != a . options . size && b . push ( "" + a . options . baseClass + "-" + a . options . size ) , a . options . animate && b . push ( "" + a . options . baseClass + "-animate" ) , a . options . disabled && b . push ( "" + a . options . baseClass + "-disabled" ) , a . options . readonly && b . push ( "" + a . options . baseClass + "-readonly" ) , a . options . indeterminate && b . push ( "" + a . options . baseClass + "-indeterminate" ) , a . options . inverse && b . push ( "" + a . options . baseClass + "-inverse" ) , a . $element . attr ( "id" ) && b . push ( "" + a . options . baseClass + "-id-" + a . $element . attr ( "id" ) ) , b . join ( " " ) } } ( this ) ( ) } ) , this . $container = b ( "<div>" , { class : "" + this . options . baseClass + "-container" } ) , this . $on = b ( "<span>" , { html : this . options . onText , class : "" + this . options . baseClass + "-handle-on " + this . options . baseClass + "-" + this . options . onColor } ) , this . $off = b ( "<span>" , { html : this . options . offText , class : "" + this . options . baseClass + "-handle-off " + this . options . baseClass + "-" + this . options . offColor } ) , this . $label = b ( "<label>" , { html : this . options . labelText , class : "" + this . options . baseClass + "-label" } ) , this . options . indeterminate && this . $element . prop ( "indeterminate" , ! 0 ) , this . $element . on ( "init.bootstrapSwitch" , function ( b ) { return function ( ) { return b . options . onInit . apply ( a , arguments ) } } ( this ) ) , this . $element . on ( "switchChange.bootstrapSwitch" , function ( b ) { return function ( ) { return b . options . onSwitchChange . apply ( a , arguments ) } } ( this ) ) , this . $container = this . $element . wrap ( this . $container ) . parent ( ) , this . $wrapper = this . $container . wrap ( this . $wrapper ) . parent ( ) , this . $element . before ( this . options . inverse ? this . $off : this . $on ) . before ( this . $label ) . before ( this . options . inverse ? this . $on : this . $off ) . trigger ( "init.bootstrapSwitch" ) , this . _elementHandlers ( ) , this . _handleHandlers ( ) , this . _labelHandlers ( ) , this . _formHandler ( ) } return a . prototype . _constructor = a , a . prototype . state = function ( a , b ) { return "undefined" == typeof a ? this . options . state : this . options . disabled || this . options . readonly ? this . $element : this . options . state && ! this . options . radioAllOff && this . $element . is ( ":radio" ) ? this . $element : ( this . options . indeterminate ? ( this . indeterminate ( ! 1 ) , a = ! 0 ) : a = ! ! a , this . $element . prop ( "checked" , a ) . trigger ( "change.bootstrapSwitch" , b ) , this . $element ) } , a . prototype . toggleState = function ( a ) { return this . options . disabled || this . options . readonly ? this . $element : this . options . indeterminate ? ( this . indeterminate ( ! 1 ) , this . state ( ! 0 ) ) : this . $element . prop ( "checked" , ! this . options . state ) . trigger ( "change.bootstrapSwitch" , a ) } , a . prototype . size = function ( a ) { return "undefined" == typeof a ? this . options . size : ( null != this . options . size && this . $wrapper . removeClass ( "" + this . options . baseClass + "-" + this . options . size ) , a && this . $wrapper . addClass ( "" + this . options . baseClass + "-" + a ) , this . options . size = a , this . $element ) } , a . prototype . animate = function ( a ) { return "undefined" == typeof a ? this . options . animate : ( a = ! ! a , this . $wrapper [ a ? "addClass" : "removeClass" ] ( "" + this . options . baseClass + "-animate" ) , this . options . animate = a , this . $element ) } , a . prototype . toggleAnimate = function ( ) { return this . $wrapper . toggleClass ( "" + this . options . baseClass + "-animate" ) , this . options . animate = ! this . options . animate , this . $element } , a . prototype . disabled = function ( a ) { return "undefined" == typeof a ? this . options . disabled : ( a = ! ! a , this . $wrapper [ a ? " addCl
=== === === === === === === === === === === === === === === === === === === === === === === ===
Copyright ( c ) 2011 , Yahoo ! Inc . All rights reserved .
Code licensed under the BSD License :
http : //developer.yahoo.com/yui/license.html
version : 2.9 . 0
* /
var typeof _yahoo = typeof YAHOO ; if ( "undefined" == typeof _yahoo || ! YAHOO ) var YAHOO = { } ; YAHOO . namespace = function ( ) { var a , b , c , d = arguments , e = null ; for ( a = 0 ; a < d . length ; a += 1 ) for ( c = ( "" + d [ a ] ) . split ( "." ) , e = YAHOO , b = "YAHOO" == c [ 0 ] ? 1 : 0 ; b < c . length ; b += 1 ) e [ c [ b ] ] = e [ c [ b ] ] || { } , e = e [ c [ b ] ] ; return e } , YAHOO . log = function ( a , b , c ) { var d = YAHOO . widget . Logger ; return ! ( ! d || ! d . log ) && d . log ( a , b , c ) } , YAHOO . register = function ( a , b , c ) { var d , e , f , g , h , i = YAHOO . env . modules ; for ( i [ a ] || ( i [ a ] = { versions : [ ] , builds : [ ] } ) , d = i [ a ] , e = c . version , f = c . build , g = YAHOO . env . listeners , d . name = a , d . version = e , d . build = f , d . versions . push ( e ) , d . builds . push ( f ) , d . mainClass = b , h = 0 ; h < g . length ; h += 1 ) g [ h ] ( d ) ; b ? ( b . VERSION = e , b . BUILD = f ) : YAHOO . log ( "mainClass is undefined for module " + a , "warn" ) } , YAHOO . env = YAHOO . env || { modules : [ ] , listeners : [ ] } , YAHOO . env . getVersion = function ( a ) { return YAHOO . env . modules [ a ] || null } , YAHOO . env . parseUA = function ( a ) { var b , c = function ( a ) { var b = 0 ; return parseFloat ( a . replace ( /\./g , function ( ) { return 1 == b ++ ? "" : "." } ) ) } , d = navigator , e = { ie : 0 , opera : 0 , gecko : 0 , webkit : 0 , chrome : 0 , mobile : null , air : 0 , ipad : 0 , iphone : 0 , ipod : 0 , ios : null , android : 0 , webos : 0 , caja : d && d . cajaVersion , secure : ! 1 , os : null } , f = a || navigator && navigator . userAgent , g = window && window . location , h = g && g . href ; return e . secure = h && 0 === h . toLowerCase ( ) . indexOf ( "https" ) , f && ( /windows|win32/i . test ( f ) ? e . os = "windows" : /macintosh/i . test ( f ) ? e . os = "macintosh" : /rhino/i . test ( f ) && ( e . os = "rhino" ) , /KHTML/ . test ( f ) && ( e . webkit = 1 ) , b = f . match ( /AppleWebKit\/([^\s]*)/ ) , b && b [ 1 ] && ( e . webkit = c ( b [ 1 ] ) , / Mobile\// . test ( f ) ? ( e . mobile = "Apple" , b = f . match ( /OS ([^\s]*)/ ) , b && b [ 1 ] && ( b = c ( b [ 1 ] . replace ( "_" , "." ) ) ) , e . ios = b , e . ipad = e . ipod = e . iphone = 0 , b = f . match ( /iPad|iPod|iPhone/ ) , b && b [ 0 ] && ( e [ b [ 0 ] . toLowerCase ( ) ] = e . ios ) ) : ( b = f . match ( /NokiaN[^\/]*|Android \d\.\d|webOS\/\d\.\d/ ) , b && ( e . mobile = b [ 0 ] ) , /webOS/ . test ( f ) && ( e . mobile = "WebOS" , b = f . match ( /webOS\/([^\s]*);/ ) , b && b [ 1 ] && ( e . webos = c ( b [ 1 ] ) ) ) , / Android/ . test ( f ) && ( e . mobile = "Android" , b = f . match ( /Android ([^\s]*);/ ) , b && b [ 1 ] && ( e . android = c ( b [ 1 ] ) ) ) ) , b = f . match ( /Chrome\/([^\s]*)/ ) , b && b [ 1 ] ? e . chrome = c ( b [ 1 ] ) : ( b = f . match ( /AdobeAIR\/([^\s]*)/ ) , b && ( e . air = b [ 0 ] ) ) ) , e . webkit || ( b = f . match ( /Opera[\s\/]([^\s]*)/ ) , b && b [ 1 ] ? ( e . opera = c ( b [ 1 ] ) , b = f . match ( /Version\/([^\s]*)/ ) , b && b [ 1 ] && ( e . opera = c ( b [ 1 ] ) ) , b = f . match ( /Opera Mini[^;]*/ ) , b && ( e . mobile = b [ 0 ] ) ) : ( b = f . match ( /MSIE\s([^;]*)/ ) , b && b [ 1 ] ? e . ie = c ( b [ 1 ] ) : ( b = f . match ( /Gecko\/([^\s]*)/ ) , b && ( e . gecko = 1 , b = f . match ( /rv:([^\s\)]*)/ ) , b && b [ 1 ] && ( e . gecko = c ( b [ 1 ] ) ) ) ) ) ) ) , e } , YAHOO . env . ua = YAHOO . env . parseUA ( ) , function ( ) { if ( YAHOO . namespace ( "util" , "widget" , "example" ) , "undefined" != typeof YAHOO _config ) { var a , b = YAHOO _config . listener , c = YAHOO . env . listeners , d = ! 0 ; if ( b ) { for ( a = 0 ; a < c . length ; a ++ ) if ( c [ a ] == b ) { d = ! 1 ; break } d && c . push ( b ) } } } ( ) , YAHOO . lang = YAHOO . lang || { } , function ( ) { var a = YAHOO . lang , b = Object . prototype , c = "[object Array]" , d = "[object Function]" , e = "[object Object]" , f = [ ] , g = { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" , "/" : "/" , "`" : "`" } , h = [ "toString" , "valueOf" ] , i = { isArray : function ( a ) { return b . toString . apply ( a ) === c } , isBoolean : function ( a ) { return "boolean" == typeof a } , isFunction : function ( a ) { return "function" == typeof a || b . toString . apply ( a ) === d } , isNull : function ( a ) { return null === a } , isNumber : function ( a ) { return "number" == typeof a && isFinite ( a ) } , isObject : function ( b ) { return b && ( "object" == typeof b || a . isFunction ( b ) ) || ! 1 } , isString : function ( a ) { return "string" == typeof a } , isUndefined : function ( a ) { return "undefined" == typeof a } , _IEEnumFix : YAHOO . env . ua . ie ? function ( c , d ) { var e , f , g ; for ( e = 0 ; e < h . length ; e += 1 ) f = h [ e ] , g = d [ f ] , a . isFunction ( g ) && g != b [ f ] && ( c [ f ] = g ) } : function ( ) { } , escapeHTML : function ( a ) { return a . replace ( /[&<>"'\/`]/g , function ( a ) { return g [ a ] } ) } , extend : function ( c , d , e ) { if ( ! d || ! c ) throw new Error ( "extend failed, please check that all dependencies are included." ) ; var f , g = function ( ) { } ; if ( g . prototype = d . prototype , c . prototype = new g , c . prototype . constructor = c , c . superclass = d . prototype , d . prototype . constructor == b . constructor && ( d . prototype . constructor = d ) , e ) { for ( f in e ) a . hasOwnProperty ( e , f ) && ( c . prototype [ f ] = e [ f ] ) ; a . _IEEnumFix ( c . prototype , e ) } } , augmentObject : function ( b , c ) { if ( ! c || ! b ) throw new Error ( "Absorb failed, verify dependencies." ) ; var d , e , f = arguments , g = f [ 2 ] ; if ( g && g !== ! 0 ) for ( d = 2 ; d < f . length ; d += 1 ) b [ f [ d ] ] = c [ f [
=== === === === === === === === === === === === === === === === === === === === === === === ===
Snowfall jquery plugin version 1.51 Dec 2 nd 2012
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
Developed by Jason Brown for any bugs or questions email me at loktar69 @ hotmail
info on the plugin is located on Somethinghitme . com
* /
Date . now || ( Date . now = function ( ) { return ( new Date ) . getTime ( ) } ) , function ( ) { for ( var a = [ "webkit" , "moz" ] , b = 0 ; b < a . length && ! window . requestAnimationFrame ; ++ b ) { var c = a [ b ] ; window . requestAnimationFrame = window [ c + "RequestAnimationFrame" ] , window . cancelAnimationFrame = window [ c + "CancelAnimationFrame" ] || window [ c + "CancelRequestAnimationFrame" ] } if ( /iP(ad|hone|od).*OS 6/ . test ( window . navigator . userAgent ) || ! window . requestAnimationFrame || ! window . cancelAnimationFrame ) { var d = 0 ; window . requestAnimationFrame = function ( a ) { var b = Date . now ( ) , c = Math . max ( d + 16 , b ) ; return setTimeout ( function ( ) { a ( d = c ) } , c - b ) } , window . cancelAnimationFrame = clearTimeout } } ( ) , function ( a ) { a . snowfall = function ( b , c ) { function d ( d , e , f , g ) { this . x = d , this . y = e , this . size = f , this . speed = g , this . step = 0 , this . stepSize = h ( 1 , 10 ) / 100 , c . collection && ( this . target = o [ h ( 0 , o . length - 1 ) ] ) ; var i = null ; c . image ? ( i = document . createElement ( "img" ) , i . src = c . image ) : ( i = document . createElement ( "div" ) , a ( i ) . css ( { background : c . flakeColor } ) ) , a ( i ) . attr ( { class : "snowfall-flakes" } ) . css ( { width : this . size , height : this . size , position : c . flakePosition , top : this . y , left : this . x , fontSize : 0 , zIndex : c . flakeIndex } ) , a ( b ) . get ( 0 ) . tagName === a ( document ) . get ( 0 ) . tagName ? ( a ( "body" ) . append ( a ( i ) ) , b = a ( "body" ) ) : a ( b ) . append ( a ( i ) ) , this . element = i , this . update = function ( ) { if ( this . y += this . speed , this . y > j - ( this . size + 6 ) && this . reset ( ) , this . element . style . top = this . y + "px" , this . element . style . left = this . x + "px" , this . step += this . stepSize , v === ! 1 ? this . x += Math . cos ( this . step ) : this . x += v + Math . cos ( this . step ) , c . collection && this . x > this . target . x && this . x < this . target . width + this . target . x && this . y > this . target . y && this . y < this . target . height + this . target . y ) { var a = this . target . element . getContext ( "2d" ) , b = this . x - this . target . x , d = this . y - this . target . y , e = this . target . colData ; if ( void 0 !== e [ parseInt ( b ) ] [ parseInt ( d + this . speed + this . size ) ] || d + this . speed + this . size > this . target . height ) if ( d + this . speed + this . size > this . target . height ) { for ( ; d + this . speed + this . size > this . target . height && this . speed > 0 ; ) this . speed *= . 5 ; a . fillStyle = "#fff" , a . shadowOffsetX = 1 , a . shadowOffsetY = 1 , a . shadowColor = "#000" , a . shadowBlur = 1 , void 0 == e [ parseInt ( b ) ] [ parseInt ( d + this . speed + this . size ) ] ? ( e [ parseInt ( b ) ] [ parseInt ( d + this . speed + this . size ) ] = 1 , a . beginPath ( ) , a . arc ( b , d + this . speed + this . size , this . size / 2 , 0 , 2 * Math . PI , ! 0 ) , a . closePath ( ) , a . fill ( ) ) : ( e [ parseInt ( b ) ] [ parseInt ( d + this . speed ) ] = 1 , a . beginPath ( ) , a . arc ( b , d + this . speed + this . size , this . size , 0 , 2 * Math . PI , ! 0 ) , a . closePath ( ) , a . fill ( ) ) , this . reset ( ) } else this . speed = 1 , this . stepSize = 0 , parseInt ( b ) + 1 < this . target . width && void 0 == e [ parseInt ( b ) + 1 ] [ parseInt ( d ) + 1 ] ? this . x ++ : parseInt ( b ) - 1 > 0 && void 0 == e [ parseInt ( b ) - 1 ] [ parseInt ( d ) + 1 ] ? this . x -- : ( a . fillStyle = "#fff" , a . shadowOffsetX = - 4 , a . shadowOffsetY = - 4 , a . shadowColor = "#000" , a . shadowBlur = 4 , a . beginPath ( ) , a . arc ( b , d + this . speed + this . size , this . size , 0 , 2 * Math . PI , ! 0 ) , a . closePath ( ) , a . fill ( ) , e [ parseInt ( b ) ] [ parseInt ( d ) ] = 1 , this . reset ( ) ) } ( this . x + this . size > k - l || this . x < l ) && this . reset ( ) } , this . reset = function ( ) { this . y = 0 , this . x = h ( l , k - l ) , this . stepSize = h ( 1 , 10 ) / 100 , this . size = h ( 100 * c . minSize , 100 * c . maxSize ) / 100 , this . element . style . width = this . size + "px" , this . element . style . height = this . size + "px" , this . speed = h ( c . minSpeed , c . maxSpeed ) } } function e ( ) { for ( i = 0 ; i < f . length ; i += 1 ) f [ i ] . update ( ) ; m = requestAnimationFrame ( function ( ) { e ( ) } ) } var f = [ ] , g = { flakeCount : 35 , flakeColor : "#ffffff" , flakePosition : "absolute" , flakeIndex : 999999 , minSize : 1 , maxSize : 2 , minSpeed : 1 , maxSpeed : 5 , round : ! 1 , shadow : ! 1 , collection : ! 1 , collectionHeight : 40 , deviceorientation : ! 1 } , c = a . extend ( g , c ) , h = function ( a , b ) { return Math . round ( a + Math . random ( ) * ( b - a ) ) } ; a ( b ) . data ( "snowfall" , this ) ; var i = 0 , j = a ( b ) . height ( ) , k = a ( b ) . width ( ) , l = 0 , m = 0 ; if ( c . collection !== ! 1 ) { var n = document . createElement ( "canvas" ) ; if ( n . getContext && n . getContext ( "2d" ) ) for ( var o = [ ] , p = a ( c . collection ) , q = c . collectionHeight , i = 0 ; i < p . length ; i ++ ) { var r = p [ i ] . getBoundingClientRect ( ) , s = a ( "<canvas/>" , { class : "snowfall-canvas" } ) , t = [ ] ; if ( r . top - q > 0 ) { a ( "body" ) . append ( s ) , s . css ( { position : c . flakePosition , left : r . left + "px" , top : r . top - q + "px" } ) . prop ( { width : r . width , height : q } ) ; for ( var u = 0 ; u < r . width ; u ++ ) t [ u ] = [ ] ; o . push ( { element : s . get ( 0 ) , x : r . left , y : r . top - q , width : r . width , height : q , colData : t } ) } } else c . collection = ! 1 } for ( a ( b ) . get ( 0 ) . tagName === a ( document ) . get ( 0 ) . ta
=== === === === === === === === === === === === === === === === === === === === === === === ===
CryptoJS v3 . 1.2
code . google . com / p / crypto - js
( c ) 2009 - 2013 by Jeff Mott . All rights reserved .
code . google . com / p / crypto - js / wiki / License
* /
var CryptoJS = CryptoJS || function ( a , b ) { var c = { } , d = c . lib = { } , e = d . Base = function ( ) { function a ( ) { } return { extend : function ( b ) { a . prototype = this ; var c = new a ; return b && c . mixIn ( b ) , c . hasOwnProperty ( "init" ) || ( c . init = function ( ) { c . $super . init . apply ( this , arguments ) } ) , c . init . prototype = c , c . $super = this , c } , create : function ( ) { var a = this . extend ( ) ; return a . init . apply ( a , arguments ) , a } , init : function ( ) { } , mixIn : function ( a ) { for ( var b in a ) a . hasOwnProperty ( b ) && ( this [ b ] = a [ b ] ) ; a . hasOwnProperty ( "toString" ) && ( this . toString = a . toString ) } , clone : function ( ) { return this . init . prototype . extend ( this ) } } } ( ) , f = d . WordArray = e . extend ( { init : function ( a , c ) { a = this . words = a || [ ] , c != b ? this . sigBytes = c : this . sigBytes = 4 * a . length } , toString : function ( a ) { return ( a || h ) . stringify ( this ) } , concat : function ( a ) { var b = this . words , c = a . words , d = this . sigBytes , e = a . sigBytes ; if ( this . clamp ( ) , d % 4 ) for ( var f = 0 ; f < e ; f ++ ) { var g = c [ f >>> 2 ] >>> 24 - f % 4 * 8 & 255 ; b [ d + f >>> 2 ] |= g << 24 - ( d + f ) % 4 * 8 } else if ( c . length > 65535 ) for ( var f = 0 ; f < e ; f += 4 ) b [ d + f >>> 2 ] = c [ f >>> 2 ] ; else b . push . apply ( b , c ) ; return this . sigBytes += e , this } , clamp : function ( ) { var b = this . words , c = this . sigBytes ; b [ c >>> 2 ] &= 4294967295 << 32 - c % 4 * 8 , b . length = a . ceil ( c / 4 ) } , clone : function ( ) { var a = e . clone . call ( this ) ; return a . words = this . words . slice ( 0 ) , a } , random : function ( b ) { for ( var c = [ ] , d = 0 ; d < b ; d += 4 ) c . push ( 4294967296 * a . random ( ) | 0 ) ; return new f . init ( c , b ) } } ) , g = c . enc = { } , h = g . Hex = { stringify : function ( a ) { for ( var b = a . words , c = a . sigBytes , d = [ ] , e = 0 ; e < c ; e ++ ) { var f = b [ e >>> 2 ] >>> 24 - e % 4 * 8 & 255 ; d . push ( ( f >>> 4 ) . toString ( 16 ) ) , d . push ( ( 15 & f ) . toString ( 16 ) ) } return d . join ( "" ) } , parse : function ( a ) { for ( var b = a . length , c = [ ] , d = 0 ; d < b ; d += 2 ) c [ d >>> 3 ] |= parseInt ( a . substr ( d , 2 ) , 16 ) << 24 - d % 8 * 4 ; return new f . init ( c , b / 2 ) } } , i = g . Latin1 = { stringify : function ( a ) { for ( var b = a . words , c = a . sigBytes , d = [ ] , e = 0 ; e < c ; e ++ ) { var f = b [ e >>> 2 ] >>> 24 - e % 4 * 8 & 255 ; d . push ( String . fromCharCode ( f ) ) } return d . join ( "" ) } , parse : function ( a ) { for ( var b = a . length , c = [ ] , d = 0 ; d < b ; d ++ ) c [ d >>> 2 ] |= ( 255 & a . charCodeAt ( d ) ) << 24 - d % 4 * 8 ; return new f . init ( c , b ) } } , j = g . Utf8 = { stringify : function ( a ) { try { return decodeURIComponent ( escape ( i . stringify ( a ) ) ) } catch ( a ) { throw new Error ( "Malformed UTF-8 data" ) } } , parse : function ( a ) { return i . parse ( unescape ( encodeURIComponent ( a ) ) ) } } , k = d . BufferedBlockAlgorithm = e . extend ( { reset : function ( ) { this . _data = new f . init , this . _nDataBytes = 0 } , _append : function ( a ) { "string" == typeof a && ( a = j . parse ( a ) ) , this . _data . concat ( a ) , this . _nDataBytes += a . sigBytes } , _process : function ( b ) { var c = this . _data , d = c . words , e = c . sigBytes , g = this . blockSize , h = 4 * g , i = e / h ; i = b ? a . ceil ( i ) : a . max ( ( 0 | i ) - this . _minBufferSize , 0 ) ; var j = i * g , k = a . min ( 4 * j , e ) ; if ( j ) { for ( var l = 0 ; l < j ; l += g ) this . _doProcessBlock ( d , l ) ; var m = d . splice ( 0 , j ) ; c . sigBytes -= k } return new f . init ( m , k ) } , clone : function ( ) { var a = e . clone . call ( this ) ; return a . _data = this . _data . clone ( ) , a } , _minBufferSize : 0 } ) , l = ( d . Hasher = k . extend ( { cfg : e . extend ( ) , init : function ( a ) { this . cfg = this . cfg . extend ( a ) , this . reset ( ) } , reset : function ( ) { k . reset . call ( this ) , this . _doReset ( ) } , update : function ( a ) { return this . _append ( a ) , this . _process ( ) , this } , finalize : function ( a ) { a && this . _append ( a ) ; var b = this . _doFinalize ( ) ; return b } , blockSize : 16 , _createHelper : function ( a ) { return function ( b , c ) { return new a . init ( c ) . finalize ( b ) } } , _createHmacHelper : function ( a ) { return function ( b , c ) { return new l . HMAC . init ( a , c ) . finalize ( b ) } } } ) , c . algo = { } ) ; return c } ( Math ) ; ! function ( a ) { var b = CryptoJS , c = b . lib , d = c . Base , e = c . WordArray , f = b . x64 = { } ; f . Word = d . extend ( { init : function ( a , b ) { this . high = a , this . low = b } } ) , f . WordArray = d . extend ( { init : function ( b , c ) { b = this . words = b || [ ] , c != a ? this . sigBytes = c : this . sigBytes = 8 * b . length } , toX32 : function ( ) { for ( var a = this . words , b = a . length , c = [ ] , d = 0 ; d < b ; d ++ ) { var f = a [ d ] ; c . push ( f . high ) , c . push ( f . low ) } return e . create ( c , this . sigBytes ) } , clone : function ( ) { for ( var a = d . clone . call ( this ) , b = a . words = this . words . slice ( 0 ) , c = b . length , e = 0 ; e < c ; e ++ ) b [ e ] = b [ e ] . clone ( ) ; return a } } ) } ( ) , function ( ) { var a = CryptoJS , b = a . lib , c = b . WordArray , d = a . enc ; d . Base64 = { stringify : function ( a ) { var b = a . words , c = a . sigBytes , d = this . _map ; a . clamp ( ) ; for ( var e = [ ] , f = 0 ; f < c ; f += 3 ) for ( var g = b [ f >>> 2 ] >>> 24 - f % 4 * 8 & 255 , h = b [ f + 1 >>> 2 ] >>> 24 - ( f + 1 ) % 4 * 8 & 255 , i = b [ f + 2 >>> 2 ] >>> 24 - ( f + 2 ) % 4 * 8 & 255 , j = g << 16 | h << 8 | i , k = 0 ; k < 4 && f + . 75 * k < c ; k ++ ) e . push ( d . charAt ( j >>> 6 * ( 3 - k ) & 63 ) ) ; var l = d . charAt ( 64 ) ; if ( l ) for ( ; e . length % 4 ; ) e . push ( l ) ; r
=== === === === === === === === === === === === === === === === === === === === === === === ===
CryptoJS . mode . CTRGladman
Counter block mode compatible with Dr Brian Gladman fileenc . c
derived from CryptoJS . mode . CTR
Jan Hruby jhruby . web @ gmail . com
* /
CryptoJS . mode . CTRGladman = function ( ) { function a ( a ) { if ( 255 === ( a >> 24 & 255 ) ) { var b = a >> 16 & 255 , c = a >> 8 & 255 , d = 255 & a ; 255 === b ? ( b = 0 , 255 === c ? ( c = 0 , 255 === d ? d = 0 : ++ d ) : ++ c ) : ++ b , a = 0 , a += b << 16 , a += c << 8 , a += d } else a += 1 << 24 ; return a } function b ( b ) { return 0 === ( b [ 0 ] = a ( b [ 0 ] ) ) && ( b [ 1 ] = a ( b [ 1 ] ) ) , b } var c = CryptoJS . lib . BlockCipherMode . extend ( ) , d = c . Encryptor = c . extend ( { processBlock : function ( a , c ) { var d = this . _cipher , e = d . blockSize , f = this . _iv , g = this . _counter ; f && ( g = this . _counter = f . slice ( 0 ) , this . _iv = void 0 ) , b ( g ) ; var h = g . slice ( 0 ) ; d . encryptBlock ( h , 0 ) ; for ( var i = 0 ; i < e ; i ++ ) a [ c + i ] ^= h [ i ] } } ) ; return c . Decryptor = d , c } ( ) , CryptoJS . mode . CTR = function ( ) { var a = CryptoJS . lib . BlockCipherMode . extend ( ) , b = a . Encryptor = a . extend ( { processBlock : function ( a , b ) { var c = this . _cipher , d = c . blockSize , e = this . _iv , f = this . _counter ; e && ( f = this . _counter = e . slice ( 0 ) , this . _iv = void 0 ) ; var g = f . slice ( 0 ) ; c . encryptBlock ( g , 0 ) , f [ d - 1 ] = f [ d - 1 ] + 1 | 0 ; for ( var h = 0 ; h < d ; h ++ ) a [ b + h ] ^= g [ h ] } } ) ; return a . Decryptor = b , a } ( ) , CryptoJS . mode . ECB = function ( ) { var a = CryptoJS . lib . BlockCipherMode . extend ( ) ; return a . Encryptor = a . extend ( { processBlock : function ( a , b ) { this . _cipher . encryptBlock ( a , b ) } } ) , a . Decryptor = a . extend ( { processBlock : function ( a , b ) { this . _cipher . decryptBlock ( a , b ) } } ) , a } ( ) , CryptoJS . mode . OFB = function ( ) { var a = CryptoJS . lib . BlockCipherMode . extend ( ) , b = a . Encryptor = a . extend ( { processBlock : function ( a , b ) { var c = this . _cipher , d = c . blockSize , e = this . _iv , f = this . _keystream ; e && ( f = this . _keystream = e . slice ( 0 ) , this . _iv = void 0 ) , c . encryptBlock ( f , 0 ) ; for ( var g = 0 ; g < d ; g ++ ) a [ b + g ] ^= f [ g ] } } ) ; return a . Decryptor = b , a } ( ) , function ( a ) { var b = CryptoJS , c = b . lib , d = c . CipherParams , e = b . enc , f = e . Hex , g = b . format ; g . Hex = { stringify : function ( a ) { return a . ciphertext . toString ( f ) } , parse : function ( a ) { var b = f . parse ( a ) ; return d . create ( { ciphertext : b } ) } } } ( ) , function ( ) { if ( "function" == typeof ArrayBuffer ) { var a = CryptoJS , b = a . lib , c = b . WordArray , d = c . init , e = c . init = function ( a ) { if ( a instanceof ArrayBuffer && ( a = new Uint8Array ( a ) ) , ( a instanceof Int8Array || a instanceof Uint8ClampedArray || a instanceof Int16Array || a instanceof Uint16Array || a instanceof Int32Array || a instanceof Uint32Array || a instanceof Float32Array || a instanceof Float64Array ) && ( a = new Uint8Array ( a . buffer , a . byteOffset , a . byteLength ) ) , a instanceof Uint8Array ) { for ( var b = a . byteLength , c = [ ] , e = 0 ; e < b ; e ++ ) c [ e >>> 2 ] |= a [ e ] << 24 - e % 4 * 8 ; d . call ( this , c , b ) } else d . apply ( this , arguments ) } ; e . prototype = c } } ( ) , CryptoJS . pad . AnsiX923 = { pad : function ( a , b ) { var c = a . sigBytes , d = 4 * b , e = d - c % d , f = c + e - 1 ; a . clamp ( ) , a . words [ f >>> 2 ] |= e << 24 - f % 4 * 8 , a . sigBytes += e } , unpad : function ( a ) { var b = 255 & a . words [ a . sigBytes - 1 >>> 2 ] ; a . sigBytes -= b } } , CryptoJS . pad . Iso10126 = { pad : function ( a , b ) { var c = 4 * b , d = c - a . sigBytes % c ; a . concat ( CryptoJS . lib . WordArray . random ( d - 1 ) ) . concat ( CryptoJS . lib . WordArray . create ( [ d << 24 ] , 1 ) ) } , unpad : function ( a ) { var b = 255 & a . words [ a . sigBytes - 1 >>> 2 ] ; a . sigBytes -= b } } , CryptoJS . pad . Iso97971 = { pad : function ( a , b ) { a . concat ( CryptoJS . lib . WordArray . create ( [ 2147483648 ] , 1 ) ) , CryptoJS . pad . ZeroPadding . pad ( a , b ) } , unpad : function ( a ) { CryptoJS . pad . ZeroPadding . unpad ( a ) , a . sigBytes -- } } , CryptoJS . pad . NoPadding = { pad : function ( ) { } , unpad : function ( ) { } } , CryptoJS . pad . ZeroPadding = { pad : function ( a , b ) { var c = 4 * b ; a . clamp ( ) , a . sigBytes += c - ( a . sigBytes % c || c ) } , unpad : function ( a ) { for ( var b = a . words , c = a . sigBytes - 1 ; ! ( b [ c >>> 2 ] >>> 24 - c % 4 * 8 & 255 ) ; ) c -- ; a . sigBytes = c + 1 } } , function ( ) { var a = CryptoJS , b = a . lib , c = b . BlockCipher , d = a . algo , e = [ ] , f = [ ] , g = [ ] , h = [ ] , i = [ ] , j = [ ] , k = [ ] , l = [ ] , m = [ ] , n = [ ] ; ! function ( ) { for ( var a = [ ] , b = 0 ; b < 256 ; b ++ ) b < 128 ? a [ b ] = b << 1 : a [ b ] = b << 1 ^ 283 ; for ( var c = 0 , d = 0 , b = 0 ; b < 256 ; b ++ ) { var o = d ^ d << 1 ^ d << 2 ^ d << 3 ^ d << 4 ; o = o >>> 8 ^ 255 & o ^ 99 , e [ c ] = o , f [ o ] = c ; var p = a [ c ] , q = a [ p ] , r = a [ q ] , s = 257 * a [ o ] ^ 16843008 * o ; g [ c ] = s << 24 | s >>> 8 , h [ c ] = s << 16 | s >>> 16 , i [ c ] = s << 8 | s >>> 24 , j [ c ] = s ; var s = 16843009 * r ^ 65537 * q ^ 257 * p ^ 16843008 * c ; k [ o ] = s << 24 | s >>> 8 , l [ o ] = s << 16 | s >>> 16 , m [ o ] = s << 8 | s >>> 24 , n [ o ] = s , c ? ( c = p ^ a [ a [ a [ r ^ p ] ] ] , d ^= a [ a [ d ] ] ) : c = d = 1 } } ( ) ; var o = [ 0 , 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128 , 27 , 54 ] , p = d . AES = c . extend ( { _doReset : function ( ) { for ( var a = this . _key , b = a . words , c = a . sigBytes / 4 , d = this . _nRounds = c + 6 , f = 4 * ( d + 1 ) , g = this . _keySchedule = [ ] , h = 0 ; h < f ; h ++ ) if ( h < c ) g [ h ] = b [ h ] ; else { var i = g [ h - 1 ] ; h % c ? c > 6 && h % c == 4 && ( i = e [ i >>> 24 ] << 24 | e [ i >>> 16 & 255 ] << 16 | e [ i >>> 8 & 255 ] << 8 | e [ 255 & i ] ) : ( i = i << 8 | i >>> 24 , i = e [ i >>> 24 ] << 24 | e [ i >>> 16 & 255 ] << 16 | e [ i >>> 8 & 255 ] << 8 | e [ 255 & i ] , i ^= o [ h / c | 0 ] << 24 ) , g [ h ]
=== === === === === === === === === === === === === === === === === === === === === === === ===
RIPEMD160
( c ) 2012 by Cédric Mesnil . All rights reserved .
Redistribution and use in source and binary forms , with or without modification , are permitted provided that the following conditions are met :
- Redistributions of source code must retain the above copyright notice , this list of conditions and the following disclaimer .
- Redistributions in binary form must reproduce the above copyright notice , this list of conditions and the following disclaimer in the documentation and / or other materials provided with the distribution .
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
* /
2017-01-16 16:40:43 +00:00
function ( a ) { function b ( a , b , c ) { return a ^ b ^ c } function c ( a , b , c ) { return a & b | ~ a & c } function d ( a , b , c ) { return ( a | ~ b ) ^ c } function e ( a , b , c ) { return a & c | b & ~ c } function f ( a , b , c ) { return a ^ ( b | ~ c ) } function g ( a , b ) { return a << b | a >>> 32 - b } var h = CryptoJS , i = h . lib , j = i . WordArray , k = i . Hasher , l = h . algo , m = j . create ( [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 7 , 4 , 13 , 1 , 10 , 6 , 15 , 3 , 12 , 0 , 9 , 5 , 2 , 14 , 11 , 8 , 3 , 10 , 14 , 4 , 9 , 15 , 8 , 1 , 2 , 7 , 0 , 6 , 13 , 11 , 5 , 12 , 1 , 9 , 11 , 10 , 0 , 8 , 12 , 4 , 13 , 3 , 7 , 15 , 14 , 5 , 6 , 2 , 4 , 0 , 5 , 9 , 7 , 12 , 2 , 10 , 14 , 1 , 3 , 8 , 11 , 6 , 15 , 13 ] ) , n = j . create ( [ 5 , 14 , 7 , 0 , 9 , 2 , 11 , 4 , 13 , 6 , 15 , 8 , 1 , 10 , 3 , 12 , 6 , 11 , 3 , 7 , 0 , 13 , 5 , 10 , 14 , 15 , 8 , 12 , 4 , 9 , 1 , 2 , 15 , 5 , 1 , 3 , 7 , 14 , 6 , 9 , 11 , 8 , 12 , 2 , 10 , 0 , 4 , 13 , 8 , 6 , 4 , 1 , 3 , 11 , 15 , 0 , 5 , 12 , 2 , 13 , 9 , 7 , 10 , 14 , 12 , 15 , 10 , 4 , 1 , 5 , 8 , 7 , 6 , 2 , 13 , 14 , 0 , 3 , 9 , 11 ] ) , o = j . create ( [ 11 , 14 , 15 , 12 , 5 , 8 , 7 , 9 , 11 , 13 , 14 , 15 , 6 , 7 , 9 , 8 , 7 , 6 , 8 , 13 , 11 , 9 , 7 , 15 , 7 , 12 , 15 , 9 , 11 , 7 , 13 , 12 , 11 , 13 , 6 , 7 , 14 , 9 , 13 , 15 , 14 , 8 , 13 , 6 , 5 , 12 , 7 , 5 , 11 , 12 , 14 , 15 , 14 , 15 , 9 , 8 , 9 , 14 , 5 , 6 , 8 , 6 , 5 , 12 , 9 , 15 , 5 , 11 , 6 , 8 , 13 , 12 , 5 , 12 , 13 , 14 , 11 , 8 , 5 , 6 ] ) , p = j . create ( [ 8 , 9 , 9 , 11 , 13 , 15 , 15 , 5 , 7 , 7 , 8 , 11 , 14 , 14 , 12 , 6 , 9 , 13 , 15 , 7 , 12 , 8 , 9 , 11 , 7 , 7 , 12 , 7 , 6 , 15 , 13 , 11 , 9 , 7 , 15 , 11 , 8 , 6 , 6 , 14 , 12 , 13 , 5 , 14 , 13 , 13 , 7 , 5 , 15 , 5 , 8 , 11 , 14 , 14 , 6 , 14 , 6 , 9 , 12 , 9 , 12 , 5 , 15 , 8 , 8 , 5 , 12 , 9 , 12 , 5 , 14 , 6 , 8 , 13 , 6 , 5 , 15 , 13 , 11 , 11 ] ) , q = j . create ( [ 0 , 1518500249 , 1859775393 , 2400959708 , 2840853838 ] ) , r = j . create ( [ 1352829926 , 1548603684 , 1836072691 , 2053994217 , 0 ] ) , s = l . RIPEMD160 = k . extend ( { _doReset : function ( ) { this . _hash = j . create ( [ 1732584193 , 4023233417 , 2562383102 , 271733878 , 3285377520 ] ) } , _doProcessBlock : function ( a , h ) { for ( var i = 0 ; i < 16 ; i ++ ) { var j = h + i , k = a [ j ] ; a [ j ] = 16711935 & ( k << 8 | k >>> 24 ) | 4278255360 & ( k << 24 | k >>> 8 ) } var l , s , t , u , v , w , x , y , z , A , B = this . _hash . words , C = q . words , D = r . words , E = m . words , F = n . words , G = o . words , H = p . words ; w = l = B [ 0 ] , x = s = B [ 1 ] , y = t = B [ 2 ] , z = u = B [ 3 ] , A = v = B [ 4 ] ; for ( var I , i = 0 ; i < 80 ; i += 1 ) I = l + a [ h + E [ i ] ] | 0 , I += i < 16 ? b ( s , t , u ) + C [ 0 ] : i < 32 ? c ( s , t , u ) + C [ 1 ] : i < 48 ? d ( s , t , u ) + C [ 2 ] : i < 64 ? e ( s , t , u ) + C [ 3 ] : f ( s , t , u ) + C [ 4 ] , I |= 0 , I = g ( I , G [ i ] ) , I = I + v | 0 , l = v , v = u , u = g ( t , 10 ) , t = s , s = I , I = w + a [ h + F [ i ] ] | 0 , I += i < 16 ? f ( x , y , z ) + D [ 0 ] : i < 32 ? e ( x , y , z ) + D [ 1 ] : i < 48 ? d ( x , y , z ) + D [ 2 ] : i < 64 ? c ( x , y , z ) + D [ 3 ] : b ( x , y , z ) + D [ 4 ] , I |= 0 , I = g ( I , H [ i ] ) , I = I + A | 0 , w = A , A = z , z = g ( y , 10 ) , y = x , x = I ; I = B [ 1 ] + t + z | 0 , B [ 1 ] = B [ 2 ] + u + A | 0 , B [ 2 ] = B [ 3 ] + v + w | 0 , B [ 3 ] = B [ 4 ] + l + x | 0 , B [ 4 ] = B [ 0 ] + s + y | 0 , B [ 0 ] = I } , _doFinalize : function ( ) { var a = this . _data , b = a . words , c = 8 * this . _nDataBytes , d = 8 * a . sigBytes ; b [ d >>> 5 ] |= 128 << 24 - d % 32 , b [ ( d + 64 >>> 9 << 4 ) + 14 ] = 16711935 & ( c << 8 | c >>> 24 ) | 4278255360 & ( c << 24 | c >>> 8 ) , a . sigBytes = 4 * ( b . length + 1 ) , this . _process ( ) ; for ( var e = this . _hash , f = e . words , g = 0 ; g < 5 ; g ++ ) { var h = f [ g ] ; f [ g ] = 16711935 & ( h << 8 | h >>> 24 ) | 4278255360 & ( h << 24 | h >>> 8 ) } return e } , clone : function ( ) { var a = k . clone . call ( this ) ; return a . _hash = this . _hash . clone ( ) , a } } ) ; h . RIPEMD160 = k . _createHelper ( s ) , h . HmacRIPEMD160 = k . _createHmacHelper ( s ) } ( Math ) , function ( ) { var a = CryptoJS , b = a . lib , c = b . WordArray , d = b . Hasher , e = a . algo , f = [ ] , g = e . SHA1 = d . extend ( { _doReset : function ( ) { this . _hash = new c . init ( [ 1732584193 , 4023233417 , 2562383102 , 271733878 , 3285377520 ] ) } , _doProcessBlock : function ( a , b ) { for ( var c = this . _hash . words , d = c [ 0 ] , e = c [ 1 ] , g = c [ 2 ] , h = c [ 3 ] , i = c [ 4 ] , j = 0 ; j < 80 ; j ++ ) { if ( j < 16 ) f [ j ] = 0 | a [ b + j ] ; else { var k = f [ j - 3 ] ^ f [ j - 8 ] ^ f [ j - 14 ] ^ f [ j - 16 ] ; f [ j ] = k << 1 | k >>> 31 } var l = ( d << 5 | d >>> 27 ) + i + f [ j ] ; l += j < 20 ? ( e & g | ~ e & h ) + 1518500249 : j < 40 ? ( e ^ g ^ h ) + 1859775393 : j < 60 ? ( e & g | e & h | g & h ) - 1894007588 : ( e ^ g ^ h ) - 899497514 , i = h , h = g , g = e << 30 | e >>> 2 , e = d , d = l } c [ 0 ] = c [ 0 ] + d | 0 , c [ 1 ] = c [ 1 ] + e | 0 , c [ 2 ] = c [ 2 ] + g | 0 , c [ 3 ] = c [ 3 ] + h | 0 , c [ 4 ] = c [ 4 ] + i | 0 } , _doFinalize : function ( ) { var a = this . _data , b = a . words , c = 8 * this . _nDataBytes , d = 8 * a . sigBytes ; return b [ d >>> 5 ] |= 128 << 24 - d % 32 , b [ ( d + 64 >>> 9 << 4 ) + 14 ] = Math . floor ( c / 4294967296 ) , b [ ( d + 64 >>> 9 << 4 ) + 15 ] = c , a . sigBytes = 4 * b . length , this . _process ( ) , this . _hash } , clone : function ( ) { var a = d . clone . call ( this ) ; return a . _hash = this . _hash . clone ( ) , a } } ) ; a . SHA1 = d . _createHelper ( g ) , a . HmacSHA1 = d . _createHmacHelper ( g ) } ( ) , function ( a ) { var b = CryptoJS , c = b . lib , d = c . WordArray , e = c . Hasher , f = b . algo , g = [ ] , h = [ ] ; ! function ( ) { function b ( b ) { for ( var c = a . sqrt ( b ) , d = 2 ; d <= c ; d ++ ) if ( ! ( b % d ) ) return ! 1 ; return ! 0 } function c ( a ) { return 4294967296 * ( a - ( 0 | a ) ) | 0 } for ( var d = 2 , e = 0 ; e < 64 ; ) b ( d ) && ( e < 8 && ( g [ e ] = c ( a . pow ( d , . 5 ) ) ) , h [ e ] = c ( a . pow ( d , 1 / 3 ) ) , e ++ ) , d ++ } ( ) ; var i = [ ] , j = f . SHA256 = e . extend ( { _doReset : function ( ) { this . _hash = new d . init ( g . slice ( 0 ) ) } , _doProcessBlock : function ( a , b ) { for ( var c = this . _hash . words , d = c [ 0 ] , e = c [ 1 ] , f = c [ 2 ] , g = c [ 3 ] , j = c [ 4 ] , k = c [ 5 ] , l = c [ 6 ] , m = c [ 7 ] , n = 0 ; n < 64 ; n ++ ) { if ( n < 16 ) i [ n ] = 0 | a [ b + n ] ; else { var o = i [ n - 15 ] , p = ( o << 25 | o >>> 7
=== === === === === === === === === === === === === === === === === === === === === === === ===
Crypto API for JavaScript - https : //github.com/nf404/crypto-api
The MIT License ( MIT )
Copyright ( c ) 2015 nf404
Permission is hereby granted , free of charge , to any person obtaining a copy of this software and associated documentation files ( the "Software" ) , to deal in the Software without restriction , including without limitation the rights to use , copy , modify , merge , publish , distribute , sublicense , and / or sell copies of the Software , and to permit persons to whom the Software is furnished to do so , subject to the following conditions :
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software .
THE SOFTWARE IS PROVIDED "AS IS" , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY , FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM , DAMAGES OR OTHER LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE , ARISING FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE .
* /
function ( a ) { var b = function ( ) { this . Hashers = new l , this . Encodes = new m , this . Macs = new n , this . Tools = new o } , c = function ( ) { } ; c . prototype . constructor = function ( ) { } , c . prototype . processBlock = function ( a ) { } , c . prototype . update = function ( a ) { } , c . prototype . finalize = function ( ) { } ; var d = function ( a , b ) { } ; d . prototype . constructor = function ( a , b ) { this . name = a , this . state = { } , this . state . message = [ ] , this . state . length = 0 , this . state . options = b , this . blockUnits = [ ] } , d . prototype . unitSize = 4 , d . prototype . unitOrder = 0 , d . prototype . blockSize = 16 , d . prototype . getState = function ( ) { return JSON . parse ( JSON . stringify ( this . state ) ) } , d . prototype . setState = function ( a ) { return this . state = a , this } , d . prototype . update = function ( a ) { for ( var b = 0 , c = 0 , d = a . length ; c < d ; c ++ ) { var e = a . charCodeAt ( c ) ; e < 128 ? ( this . state . message . push ( e ) , b += 1 ) : e < 2048 ? ( this . state . message . push ( 192 | e >> 6 , 128 | 63 & e ) , b += 2 ) : e < 55296 || e >= 57344 ? ( this . state . message . push ( 224 | e >> 12 , 128 | e >> 6 & 63 , 128 | 63 & e ) , b += 3 ) : ( c ++ , e = 65536 + ( ( 1023 & e ) << 10 | 1023 & a . charCodeAt ( c ) ) , this . state . message . push ( 240 | e >> 18 , 128 | e >> 12 & 63 , 128 | e >> 6 & 63 , 128 | 63 & e ) , b += 4 ) } this . state . length += b , this . process ( ) } , d . prototype . updateFromArray = function ( a ) { return this . state . length += a . length , this . state . message = this . state . message . concat ( a ) , this . process ( ) , this } , d . prototype . process = function ( ) { for ( ; this . state . message . length >= this . blockSize * this . unitSize ; ) { var a = 0 , b = 0 , c = this . state . message . splice ( 0 , this . blockSize * this . unitSize ) ; if ( this . unitSize > 1 ) { this . blockUnits = [ ] ; for ( var d = 0 , e = 0 ; d < c . length ; d += this . unitSize , e ++ ) if ( 1 === this . unitOrder ) for ( a = this . unitSize - 1 , b = 0 ; a >= 0 ; a -- , b += 8 ) this . blockUnits [ e ] |= c [ d + a ] << b ; else for ( a = 0 , b = 0 ; a < this . unitSize ; a ++ , b += 8 ) this . blockUnits [ e ] |= c [ d + a ] << b ; this . processBlock ( this . blockUnits ) } else this . processBlock ( c ) } } , b . prototype . BaseHasher = d ; var e = function ( a , b ) { this . constructor ( a , b ) } ; e . prototype = Object . create ( d . prototype ) , e . prototype . unitOrder = 0 , e . prototype . unitSize = 1 , e . prototype . constructor = function ( a , b ) { d . prototype . constructor . call ( this , a , b ) } , e . prototype . process = function ( ) { for ( ; this . state . message . length >= this . blockSize * this . unitSize ; ) { var a = this . state . message . splice ( 0 , this . blockSize * this . unitSize ) ; this . blockUnits = [ ] ; for ( var b = 0 ; b < this . blockSize ; b ++ ) this . blockUnits [ b ] = a [ b ] ; this . processBlock ( this . blockUnits ) } } , b . prototype . Hasher8 = e ; var f = function ( a , b ) { this . constructor ( a , b ) } ; f . prototype = Object . create ( d . prototype ) , f . prototype . unitOrder = 0 , f . prototype . constructor = function ( a , b ) { d . prototype . constructor . call ( this , a , b ) } , f . prototype . process = function ( ) { for ( ; this . state . message . length >= this . blockSize * this . unitSize ; ) { var a = this . state . message . splice ( 0 , this . blockSize * this . unitSize ) ; this . blockUnits = [ ] ; for ( var b = 0 , c = 0 ; b < this . blockSize ; b ++ , c += 4 ) this . blockUnits [ b ] = a [ c ] , this . blockUnits [ b ] |= a [ c + 1 ] << 8 , this . blockUnits [ b ] |= a [ c + 2 ] << 16 , this . blockUnits [ b ] |= a [ c + 3 ] << 24 ; this . processBlock ( this . blockUnits ) } } , b . prototype . Hasher32le = f ; var g = function ( a , b ) { this . constructor ( a , b ) } ; g . prototype = Object . create ( d . prototype ) , g . prototype . unitOrder = 1 , g . prototype . constructor = function ( a , b ) { d . prototype . constructor . call ( this , a , b ) } , g . prototype . process = function ( ) { for ( ; this . state . message . length >= this . blockSize * this . unitSize ; ) { var a = this . state . message . splice ( 0 , this . blockSize * this . unitSize ) ; this . blockUnits = [ ] ; for ( var b = 0 , c = 0 ; b < this . blockSize ; b ++ , c += 4 ) this . blockUnits [ b ] = a [ c ] << 24 , this . blockUnits [ b ] |= a [ c + 1 ] << 16 , this . blockUnits [ b ] |= a [ c + 2 ] << 8 , this . blockUnits [ b ] |= a [ c + 3 ] ; this . processBlock ( this . blockUnits ) } } , b . prototype . Hasher32be = g ; var h = function ( ) { } ; h . prototype . constructor = function ( a , b , c ) { } , h . prototype . processBlock = function ( a ) { } , h . prototype . update = function ( a ) { } , h . prototype . finalize = function ( ) { } ; var i = function ( a , b , c ) { } ; i . prototype = Object . create ( d . prototype ) , i . prototype . constructor = function ( a , b , c ) { d . prototype . constructor . call ( this , b , c ) } , b . prototype . BaseMac = i ; var j = function ( ) { } ; j . prototype . constructor = function ( a ) { } , j . prototype . stringify = function ( ) { } ; var k = function ( a ) { } ; k . prototype . constructor = function ( a ) { this . hash = a } , b . prototype . BaseEncode = k ; var l = function ( ) { this . hashers = { } } ; l . prototype . add = function ( a , b ) { if ( void 0 === b ) throw Error ( "Error adding hasher: " + a ) ; this . hashers [ a ] = b } , l . prototype . get = function ( a , b ) { var c = this . hashers [ a ] ; if ( void 0 ===
2016-11-28 10:42:58 +00:00
=== === === === === === === === === === === === === === === === === === === === === === === ===
Copyright ( c ) 2005 Tom Wu
All Rights Reserved .
Basic JavaScript BN library - subset useful for RSA encryption .
This software is covered under the following copyright :
Copyright ( c ) 2003 - 2005 Tom Wu
All Rights Reserved .
Permission is hereby granted , free of charge , to any person obtaining
a copy of this software and associated documentation files ( the
"Software" ) , to deal in the Software without restriction , including
without limitation the rights to use , copy , modify , merge , publish ,
distribute , sublicense , and / or sell copies of the Software , and to
permit persons to whom the Software is furnished to do so , subject to
the following conditions :
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software .
THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND ,
EXPRESS , IMPLIED OR OTHERWISE , INCLUDING WITHOUT LIMITATION , ANY
WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE .
IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL , INCIDENTAL ,
INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND , OR ANY DAMAGES WHATSOEVER
RESULTING FROM LOSS OF USE , DATA OR PROFITS , WHETHER OR NOT ADVISED OF
THE POSSIBILITY OF DAMAGE , AND ON ANY THEORY OF LIABILITY , ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE .
In addition , the following condition applies :
All redistributions must retain an intact copy of this copyright notice
and disclaimer .
Address all questions regarding this license to :
Tom Wu
tjw @ cs . Stanford . EDU
* /
var dbits , canary = 0xdeadbeefcafe , j _lm = 15715070 == ( 16777215 & canary ) ; j _lm && "Microsoft Internet Explorer" == navigator . appName ? ( BigInteger . prototype . am = am2 , dbits = 30 ) : j _lm && "Netscape" != navigator . appName ? ( BigInteger . prototype . am = am1 , dbits = 26 ) : ( BigInteger . prototype . am = am3 , dbits = 28 ) , BigInteger . prototype . DB = dbits , BigInteger . prototype . DM = ( 1 << dbits ) - 1 , BigInteger . prototype . DV = 1 << dbits ; var BI _FP = 52 ; BigInteger . prototype . FV = Math . pow ( 2 , BI _FP ) , BigInteger . prototype . F1 = BI _FP - dbits , BigInteger . prototype . F2 = 2 * dbits - BI _FP ; var BI _RM = "0123456789abcdefghijklmnopqrstuvwxyz" , BI _RC = new Array , rr , vv ; for ( rr = "0" . charCodeAt ( 0 ) , vv = 0 ; vv <= 9 ; ++ vv ) BI _RC [ rr ++ ] = vv ; for ( rr = "a" . charCodeAt ( 0 ) , vv = 10 ; vv < 36 ; ++ vv ) BI _RC [ rr ++ ] = vv ; for ( rr = "A" . charCodeAt ( 0 ) , vv = 10 ; vv < 36 ; ++ vv ) BI _RC [ rr ++ ] = vv ; Classic . prototype . convert = cConvert , Classic . prototype . revert = cRevert , Classic . prototype . reduce = cReduce , Classic . prototype . mulTo = cMulTo , Classic . prototype . sqrTo = cSqrTo , Montgomery . prototype . convert = montConvert , Montgomery . prototype . revert = montRevert , Montgomery . prototype . reduce = montReduce , Montgomery . prototype . mulTo = montMulTo , Montgomery . prototype . sqrTo = montSqrTo , BigInteger . prototype . copyTo = bnpCopyTo , BigInteger . prototype . fromInt = bnpFromInt , BigInteger . prototype . fromString = bnpFromString , BigInteger . prototype . clamp = bnpClamp , BigInteger . prototype . dlShiftTo = bnpDLShiftTo , BigInteger . prototype . drShiftTo = bnpDRShiftTo , BigInteger . prototype . lShiftTo = bnpLShiftTo , BigInteger . prototype . rShiftTo = bnpRShiftTo , BigInteger . prototype . subTo = bnpSubTo , BigInteger . prototype . multiplyTo = bnpMultiplyTo , BigInteger . prototype . squareTo = bnpSquareTo , BigInteger . prototype . divRemTo = bnpDivRemTo , BigInteger . prototype . invDigit = bnpInvDigit , BigInteger . prototype . isEven = bnpIsEven , BigInteger . prototype . exp = bnpExp , BigInteger . prototype . toString = bnToString , BigInteger . prototype . negate = bnNegate , BigInteger . prototype . abs = bnAbs , BigInteger . prototype . compareTo = bnCompareTo , BigInteger . prototype . bitLength = bnBitLength , BigInteger . prototype . mod = bnMod , BigInteger . prototype . modPowInt = bnModPowInt , BigInteger . ZERO = nbv ( 0 ) , BigInteger . ONE = nbv ( 1 ) , NullExp . prototype . convert = nNop , NullExp . prototype . revert = nNop , NullExp . prototype . mulTo = nMulTo , NullExp . prototype . sqrTo = nSqrTo , Barrett . prototype . convert = barrettConvert , Barrett . prototype . revert = barrettRevert , Barrett . prototype . reduce = barrettReduce , Barrett . prototype . mulTo = barrettMulTo , Barrett . prototype . sqrTo = barrettSqrTo ; var lowprimes = [ 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 , 53 , 59 , 61 , 67 , 71 , 73 , 79 , 83 , 89 , 97 , 101 , 103 , 107 , 109 , 113 , 127 , 131 , 137 , 139 , 149 , 151 , 157 , 163 , 167 , 173 , 179 , 181 , 191 , 193 , 197 , 199 , 211 , 223 , 227 , 229 , 233 , 239 , 241 , 251 , 257 , 263 , 269 , 271 , 277 , 281 , 283 , 293 , 307 , 311 , 313 , 317 , 331 , 337 , 347 , 349 , 353 , 359 , 367 , 373 , 379 , 383 , 389 , 397 , 401 , 409 , 419 , 421 , 431 , 433 , 439 , 443 , 449 , 457 , 461 , 463 , 467 , 479 , 487 , 491 , 499 , 503 , 509 , 521 , 523 , 541 , 547 , 557 , 563 , 569 , 571 , 577 , 587 , 593 , 599 , 601 , 607 , 613 , 617 , 619 , 631 , 641 , 643 , 647 , 653 , 659 , 661 , 673 , 677 , 683 , 691 , 701 , 709 , 719 , 727 , 733 , 739 , 743 , 751 , 757 , 761 , 769 , 773 , 787 , 797 , 809 , 811 , 821 , 823 , 827 , 829 , 839 , 853 , 857 , 859 , 863 , 877 , 881 , 883 , 887 , 907 , 911 , 919 , 929 , 937 , 941 , 947 , 953 , 967 , 971 , 977 , 983 , 991 , 997 ] , lplim = ( 1 << 26 ) / lowprimes [ lowprimes . length - 1 ] ; BigInteger . prototype . chunkSize = bnpChunkSize , BigInteger . prototype . toRadix = bnpToRadix , BigInteger . prototype . fromRadix = bnpFromRadix , BigInteger . prototype . fromNumber = bnpFromNumber , BigInteger . prototype . bitwiseTo = bnpBitwiseTo , BigInteger . prototype . changeBit = bnpChangeBit , BigInteger . prototype . addTo = bnpAddTo , BigInteger . prototype . dMultiply = bnpDMultiply , BigInteger . prototype . dAddOffset = bnpDAddOffset , BigInteger . prototype . multiplyLowerTo = bnpMultiplyLowerTo , BigInteger . prototype . multiplyUpperTo = bnpMultiplyUpperTo , BigInteger . prototype . modInt = bnpModInt , BigInteger . prototype . millerRabin = bnpMillerRabin , BigInteger . prototype . clone = bnClone , BigInteger . prototype . intValue = bnIntValue , BigInteger . prototype . byteValue = bnByteValue , BigInteger . prototype . shortValue = bnShortValue , BigInteger . prototype . signum = bnSigNum , BigInteger . prototype . toByteArray = bnToByteArray , BigInteger . prototype . equals = bnEquals , BigInteger . prototype . min = bnMin , BigInteger . prototype . max = bnMax , BigInteger . prototype . and = bnAnd , BigInteger . prototype . or = bnOr , BigInteger . prototype . xor = bnXor , BigInteger . prototype . andNot = b
} ) ; return this . hTLV = d . getEncodedHex ( ) , this . isModified = ! 1 , this . hTLV } , this . _initialize ( ) } , YAHOO . lang . extend ( KJUR . asn1 . x509 . TBSCertificate , KJUR . asn1 . ASN1Object ) , KJUR . asn1 . x509 . Extension = function ( a ) { KJUR . asn1 . x509 . Extension . superclass . constructor . call ( this ) ; this . getEncodedHex = function ( ) { var a = new KJUR . asn1 . DERObjectIdentifier ( { oid : this . oid } ) , b = new KJUR . asn1 . DEROctetString ( { hex : this . getExtnValueHex ( ) } ) , c = new Array ; c . push ( a ) , this . critical && c . push ( new KJUR . asn1 . DERBoolean ) , c . push ( b ) ; var d = new KJUR . asn1 . DERSequence ( { array : c } ) ; return d . getEncodedHex ( ) } , this . critical = ! 1 , "undefined" != typeof a && "undefined" != typeof a . critical && ( this . critical = a . critical ) } , YAHOO . lang . extend ( KJUR . asn1 . x509 . Extension , KJUR . asn1 . ASN1Object ) , KJUR . asn1 . x509 . KeyUsage = function ( a ) { KJUR . asn1 . x509 . KeyUsage . superclass . constructor . call ( this , a ) , this . getExtnValueHex = function ( ) { return this . asn1ExtnValue . getEncodedHex ( ) } , this . oid = "2.5.29.15" , "undefined" != typeof a && "undefined" != typeof a . bin && ( this . asn1ExtnValue = new KJUR . asn1 . DERBitString ( a ) ) } , YAHOO . lang . extend ( KJUR . asn1 . x509 . KeyUsage , KJUR . asn1 . x509 . Extension ) , KJUR . asn1 . x509 . BasicConstraints = function ( a ) { KJUR . asn1 . x509 . BasicConstraints . superclass . constructor . call ( this , a ) ; this . getExtnValueHex = function ( ) { var a = new Array ; this . cA && a . push ( new KJUR . asn1 . DERBoolean ) , this . pathLen > - 1 && a . push ( new KJUR . asn1 . DERInteger ( { int : this . pathLen } ) ) ; var b = new KJUR . asn1 . DERSequence ( { array : a } ) ; return this . asn1ExtnValue = b , this . asn1ExtnValue . getEncodedHex ( ) } , this . oid = "2.5.29.19" , this . cA = ! 1 , this . pathLen = - 1 , "undefined" != typeof a && ( "undefined" != typeof a . cA && ( this . cA = a . cA ) , "undefined" != typeof a . pathLen && ( this . pathLen = a . pathLen ) ) } , YAHOO . lang . extend ( KJUR . asn1 . x509 . BasicConstraints , KJUR . asn1 . x509 . Extension ) , KJUR . asn1 . x509 . CRLDistributionPoints = function ( a ) { KJUR . asn1 . x509 . CRLDistributionPoints . superclass . constructor . call ( this , a ) , this . getExtnValueHex = function ( ) { return this . asn1ExtnValue . getEncodedHex ( ) } , this . setByDPArray = function ( a ) { this . asn1ExtnValue = new KJUR . asn1 . DERSequence ( { array : a } ) } , this . setByOneURI = function ( a ) { var b = new KJUR . asn1 . x509 . GeneralNames ( [ { uri : a } ] ) , c = new KJUR . asn1 . x509 . DistributionPointName ( b ) , d = new KJUR . asn1 . x509 . DistributionPoint ( { dpobj : c } ) ; this . setByDPArray ( [ d ] ) } , this . oid = "2.5.29.31" , "undefined" != typeof a && ( "undefined" != typeof a . array ? this . setByDPArray ( a . array ) : "undefined" != typeof a . uri && this . setByOneURI ( a . uri ) ) } , YAHOO . lang . extend ( KJUR . asn1 . x509 . CRLDistributionPoints , KJUR . asn1 . x509 . Extension ) , KJUR . asn1 . x509 . ExtKeyUsage = function ( a ) { KJUR . asn1 . x509 . ExtKeyUsage . superclass . constructor . call ( this , a ) , this . setPurposeArray = function ( a ) { this . asn1ExtnValue = new KJUR . asn1 . DERSequence ; for ( var b = 0 ; b < a . length ; b ++ ) { var c = new KJUR . asn1 . DERObjectIdentifier ( a [ b ] ) ; this . asn1ExtnValue . appendASN1Object ( c ) } } , this . getExtnValueHex = function ( ) { return this . asn1ExtnValue . getEncodedHex ( ) } , this . oid = "2.5.29.37" , "undefined" != typeof a && "undefined" != typeof a . array && this . setPurposeArray ( a . array ) } , YAHOO . lang . extend ( KJUR . asn1 . x509 . ExtKeyUsage , KJUR . asn1 . x509 . Extension ) , KJUR . asn1 . x509 . AuthorityKeyIdentifier = function ( a ) { KJUR . asn1 . x509 . AuthorityKeyIdentifier . superclass . constructor . call ( this , a ) , this . asn1KID = null , this . asn1CertIssuer = null , this . asn1CertSN = null , this . getExtnValueHex = function ( ) { var a = new Array ; this . asn1KID && a . push ( new KJUR . asn1 . DERTaggedObject ( { explicit : ! 1 , tag : "80" , obj : this . asn1KID } ) ) , this . asn1CertIssuer && a . push ( new KJUR . asn1 . DERTaggedObject ( { explicit : ! 1 , tag : "a1" , obj : this . asn1CertIssuer } ) ) , this . asn1CertSN && a . push ( new KJUR . asn1 . DERTaggedObject ( { explicit : ! 1 , tag : "82" , obj : this . asn1CertSN } ) ) ; var b = new KJUR . asn1 . DERSequence ( { array : a } ) ; return this . asn1ExtnValue = b , this . asn1ExtnValue . getEncodedHex ( ) } , this . setKIDByParam = function ( a ) { this . asn1KID = new KJUR . asn1 . DEROctetString ( a ) } , this . setCertIssuerByParam = function ( a ) { this . asn1CertIssuer = new KJUR . asn1 . x509 . X500Name ( a ) } , this . setCertSNByParam = function ( a ) { this . asn1CertSN = new KJUR . asn1 . DERInteger ( a ) } , this . oid = "2.5.29.35" , "undefined" != typeof a && ( "undefined" != typeof a . kid && this . setKIDByParam ( a . kid ) , "undefined" != typeof a . issuer && this . setCertIssuerByParam ( a . issuer ) , "undefined" != typeof a . sn && this . setCertSNByParam ( a . sn ) ) } , YAHOO . lang . extend ( KJUR .
this . sign ( ) } , this . verify = function ( a ) { if ( this . sHashHex = this . md . digest ( ) , "undefined" != typeof this . ecpubhex && "undefined" != typeof this . eccurvename ) { var b = new KJUR . crypto . ECDSA ( { curve : this . eccurvename } ) ; return b . verifyHex ( this . sHashHex , a , this . ecpubhex ) } if ( this . pubKey instanceof RSAKey && "rsaandmgf1" == this . pubkeyAlgName ) return this . pubKey . verifyWithMessageHashPSS ( this . sHashHex , a , this . mdAlgName , this . pssSaltLen ) ; if ( this . pubKey instanceof RSAKey && "rsa" == this . pubkeyAlgName ) return this . pubKey . verifyWithMessageHash ( this . sHashHex , a ) ; if ( this . pubKey instanceof KJUR . crypto . ECDSA ) return this . pubKey . verifyWithMessageHash ( this . sHashHex , a ) ; if ( this . pubKey instanceof KJUR . crypto . DSA ) return this . pubKey . verifyWithMessageHash ( this . sHashHex , a ) ; throw "Signature: unsupported public key alg: " + this . pubkeyAlgName } } } , this . init = function ( a , b ) { throw "init(key, pass) not supported for this alg:prov=" + this . algProvName } , this . initVerifyByPublicKey = function ( a ) { throw "initVerifyByPublicKey(rsaPubKeyy) not supported for this alg:prov=" + this . algProvName } , this . initVerifyByCertificatePEM = function ( a ) { throw "initVerifyByCertificatePEM(certPEM) not supported for this alg:prov=" + this . algProvName } , this . initSign = function ( a ) { throw "initSign(prvKey) not supported for this alg:prov=" + this . algProvName } , this . updateString = function ( a ) { throw "updateString(str) not supported for this alg:prov=" + this . algProvName } , this . updateHex = function ( a ) { throw "updateHex(hex) not supported for this alg:prov=" + this . algProvName } , this . sign = function ( ) { throw "sign() not supported for this alg:prov=" + this . algProvName } , this . signString = function ( a ) { throw "digestString(str) not supported for this alg:prov=" + this . algProvName } , this . signHex = function ( a ) { throw "digestHex(hex) not supported for this alg:prov=" + this . algProvName } , this . verify = function ( a ) { throw "verify(hSigVal) not supported for this alg:prov=" + this . algProvName } , this . initParams = a , void 0 !== a && ( void 0 !== a . alg && ( this . algName = a . alg , void 0 === a . prov ? this . provName = KJUR . crypto . Util . DEFAULTPROVIDER [ this . algName ] : this . provName = a . prov , this . algProvName = this . algName + ":" + this . provName , this . setAlgAndProvider ( this . algName , this . provName ) , this . _setAlgNames ( ) ) , void 0 !== a . psssaltlen && ( this . pssSaltLen = a . psssaltlen ) , void 0 !== a . prvkeypem ) ) { if ( void 0 !== a . prvkeypas ) throw "both prvkeypem and prvkeypas parameters not supported" ; try { var b = new RSAKey ; b . readPrivateKeyFromPEMString ( a . prvkeypem ) , this . initSign ( b ) } catch ( a ) { throw "fatal error to load pem private key: " + a } } } , KJUR . crypto . OID = new function ( ) { this . oidhex2name = { "2a864886f70d010101" : "rsaEncryption" , "2a8648ce3d0201" : "ecPublicKey" , "2a8648ce380401" : "dsa" , "2a8648ce3d030107" : "secp256r1" , "2b8104001f" : "secp192k1" , "2b81040021" : "secp224r1" , "2b8104000a" : "secp256k1" , "2b81040023" : "secp521r1" , "2b81040022" : "secp384r1" , "2a8648ce380403" : "SHA1withDSA" , "608648016503040301" : "SHA224withDSA" , "608648016503040302" : "SHA256withDSA" } } , "undefined" != typeof KJUR && KJUR || ( KJUR = { } ) , "undefined" != typeof KJUR . crypto && KJUR . crypto || ( KJUR . crypto = { } ) , KJUR . crypto . DSA = function ( ) { function a ( a , b , c , e , f , g ) { var h = KJUR . crypto . Util . hashString ( b , a . toLowerCase ( ) ) , h = h . substr ( 0 , f . bitLength ( ) / 4 ) , i = new BigInteger ( h , 16 ) , j = d ( BigInteger . ONE . add ( BigInteger . ONE ) , f . subtract ( BigInteger . ONE ) ) , k = c . modPow ( j , e ) . mod ( f ) , l = j . modInverse ( f ) . multiply ( i . add ( g . multiply ( k ) ) ) . mod ( f ) , m = new Array ; return m [ 0 ] = k , m [ 1 ] = l , m } function b ( a ) { var b = openpgp . config . config . prefer _hash _algorithm ; switch ( Math . round ( a . bitLength ( ) / 8 ) ) { case 20 : return 2 != b && b > 11 && 10 != b && b < 8 ? 2 : b ; case 28 : return b > 11 && b < 8 ? 11 : b ; case 32 : return b > 10 && b < 8 ? 8 : b ; default : return util . print _debug ( "DSA select hash algorithm: returning null for an unknown length of q" ) , null } } function c ( a , b , c , d , e , f , g , h ) { var i = KJUR . crypto . Util . hashString ( d , a . toLowerCase ( ) ) , i = i . substr ( 0 , f . bitLength ( ) / 4 ) , j = new BigInteger ( i , 16 ) ; if ( BigInteger . ZERO . compareTo ( b ) > 0 || b . compareTo ( f ) > 0 || BigInteger . ZERO . compareTo ( c ) > 0 || c . compareTo ( f ) > 0 ) return util . print _error ( "invalid DSA Signature" ) , null ; var k = c . modInverse ( f ) , l = j . multiply ( k ) . mod ( f ) , m = b . multiply ( k ) . mod ( f ) , n = g . modPow ( l , e ) . multiply ( h . modPow ( m , e ) ) . mod ( e ) . mod ( f ) ; return 0 == n . compareTo ( b ) } function d ( a , b ) { if ( ! ( b . compareTo ( a ) <= 0 ) ) { for ( var c = b . subtr
var k = KEYUTIL . getHexFromPEM ( a , "RSA PRIVATE KEY" ) ; return KEYUTIL . getKey ( k , null , "pkcs5prv" ) } if ( a . indexOf ( "-END DSA PRIVATE KEY-" ) != - 1 && a . indexOf ( "4,ENCRYPTED" ) == - 1 ) { var l = this . getHexFromPEM ( a , "DSA PRIVATE KEY" ) , m = ASN1HEX . getVbyList ( l , 0 , [ 1 ] , "02" ) , n = ASN1HEX . getVbyList ( l , 0 , [ 2 ] , "02" ) , o = ASN1HEX . getVbyList ( l , 0 , [ 3 ] , "02" ) , p = ASN1HEX . getVbyList ( l , 0 , [ 4 ] , "02" ) , q = ASN1HEX . getVbyList ( l , 0 , [ 5 ] , "02" ) , d = new KJUR . crypto . DSA ; return d . setPrivate ( new BigInteger ( m , 16 ) , new BigInteger ( n , 16 ) , new BigInteger ( o , 16 ) , new BigInteger ( p , 16 ) , new BigInteger ( q , 16 ) ) , d } if ( a . indexOf ( "-END PRIVATE KEY-" ) != - 1 ) return KEYUTIL . getKeyFromPlainPrivatePKCS8PEM ( a ) ; if ( a . indexOf ( "-END RSA PRIVATE KEY-" ) != - 1 && a . indexOf ( "4,ENCRYPTED" ) != - 1 ) return KEYUTIL . getRSAKeyFromEncryptedPKCS5PEM ( a , b ) ; if ( a . indexOf ( "-END EC PRIVATE KEY-" ) != - 1 && a . indexOf ( "4,ENCRYPTED" ) != - 1 ) { var l = KEYUTIL . getDecryptedKeyHex ( a , b ) , d = ASN1HEX . getVbyList ( l , 0 , [ 1 ] , "04" ) , r = ASN1HEX . getVbyList ( l , 0 , [ 2 , 0 ] , "06" ) , s = ASN1HEX . getVbyList ( l , 0 , [ 3 , 0 ] , "03" ) . substr ( 2 ) , t = "" ; if ( void 0 === KJUR . crypto . OID . oidhex2name [ r ] ) throw "undefined OID(hex) in KJUR.crypto.OID: " + r ; t = KJUR . crypto . OID . oidhex2name [ r ] ; var e = new KJUR . crypto . ECDSA ( { name : t } ) ; return e . setPublicKeyHex ( s ) , e . setPrivateKeyHex ( d ) , e . isPublic = ! 1 , e } if ( a . indexOf ( "-END DSA PRIVATE KEY-" ) != - 1 && a . indexOf ( "4,ENCRYPTED" ) != - 1 ) { var l = KEYUTIL . getDecryptedKeyHex ( a , b ) , m = ASN1HEX . getVbyList ( l , 0 , [ 1 ] , "02" ) , n = ASN1HEX . getVbyList ( l , 0 , [ 2 ] , "02" ) , o = ASN1HEX . getVbyList ( l , 0 , [ 3 ] , "02" ) , p = ASN1HEX . getVbyList ( l , 0 , [ 4 ] , "02" ) , q = ASN1HEX . getVbyList ( l , 0 , [ 5 ] , "02" ) , d = new KJUR . crypto . DSA ; return d . setPrivate ( new BigInteger ( m , 16 ) , new BigInteger ( n , 16 ) , new BigInteger ( o , 16 ) , new BigInteger ( p , 16 ) , new BigInteger ( q , 16 ) ) , d } if ( a . indexOf ( "-END ENCRYPTED PRIVATE KEY-" ) != - 1 ) return KEYUTIL . getKeyFromEncryptedPKCS8PEM ( a , b ) ; throw "not supported argument" } , KEYUTIL . generateKeypair = function ( a , b ) { if ( "RSA" == a ) { var c = b , d = new RSAKey ; d . generate ( c , "10001" ) , d . isPrivate = ! 0 , d . isPublic = ! 0 ; var e = new RSAKey , f = d . n . toString ( 16 ) , g = d . e . toString ( 16 ) ; e . setPublic ( f , g ) , e . isPrivate = ! 1 , e . isPublic = ! 0 ; var h = { } ; return h . prvKeyObj = d , h . pubKeyObj = e , h } if ( "EC" == a ) { var i = b , j = new KJUR . crypto . ECDSA ( { curve : i } ) , k = j . generateKeyPairHex ( ) , d = new KJUR . crypto . ECDSA ( { curve : i } ) ; d . setPrivateKeyHex ( k . ecprvhex ) , d . isPrivate = ! 0 , d . isPublic = ! 1 ; var e = new KJUR . crypto . ECDSA ( { curve : i } ) ; e . setPublicKeyHex ( k . ecpubhex ) , e . isPrivate = ! 1 , e . isPublic = ! 0 ; var h = { } ; return h . prvKeyObj = d , h . pubKeyObj = e , h } throw "unknown algorithm: " + a } , KEYUTIL . getPEM = function ( a , b , c , d , e ) { function f ( a ) { var b = KJUR . asn1 . ASN1Util . newObject ( { seq : [ { int : 0 } , { int : { bigint : a . n } } , { int : a . e } , { int : { bigint : a . d } } , { int : { bigint : a . p } } , { int : { bigint : a . q } } , { int : { bigint : a . dmp1 } } , { int : { bigint : a . dmq1 } } , { int : { bigint : a . coeff } } ] } ) ; return b } function g ( a ) { var b = KJUR . asn1 . ASN1Util . newObject ( { seq : [ { int : 1 } , { octstr : { hex : a . prvKeyHex } } , { tag : [ "a0" , ! 0 , { oid : { name : a . curveName } } ] } , { tag : [ "a1" , ! 0 , { bitstr : { hex : "00" + a . pubKeyHex } } ] } ] } ) ; return b } function h ( a ) { var b = KJUR . asn1 . ASN1Util . newObject ( { seq : [ { int : 0 } , { int : { bigint : a . p } } , { int : { bigint : a . q } } , { int : { bigint : a . g } } , { int : { bigint : a . y } } , { int : { bigint : a . x } } ] } ) ; return b } var i = KJUR . asn1 , j = KJUR . crypto ; if ( ( "undefined" != typeof RSAKey && a instanceof RSAKey || "undefined" != typeof j . DSA && a instanceof j . DSA || "undefined" != typeof j . ECDSA && a instanceof j . ECDSA ) && 1 == a . isPublic && ( void 0 === b || "PKCS8PUB" == b ) ) { var k = new KJUR . asn1 . x509 . SubjectPublicKeyInfo ( a ) , l = k . getEncodedHex ( ) ; return i . ASN1Util . getPEMStringFromHex ( l , "PUBLIC KEY" ) } if ( "PKCS1PRV" == b && "undefined" != typeof RSAKey && a instanceof RSAKey && ( void 0 === c || null == c ) && 1 == a . isPrivate ) { var k = f ( a ) , l = k . getEncodedHex ( ) ; return i . ASN1Util . getPEMStringFromHex ( l , "RSA PRIVATE KEY" ) } if ( "PKCS1PRV" == b && "undefined" != typeof RSAKey && a instanceof KJUR . crypto . ECDSA && ( void 0 === c || null == c ) && 1 == a . isPrivate ) { var m = new KJUR . asn1 . DERObjectIdentifier ( { name : a . curveName } ) , n = m . getEncodedHex ( ) , o = g ( a ) , p = o . getEncodedHex ( ) , q = "" ; return q += i . ASN1Util . getPEMStringFromHex ( n , "EC PARAMETERS" ) , q += i . ASN1Util . getPEMStringFromHex ( p , "EC PRIVATE KEY" ) } if ( "PKCS1PRV" == b && "undefined" != typeof KJUR . crypto . DSA && a instanceof KJUR . crypto . DSA && ( void 0 === c || null == c ) && 1 == a . isPrivate ) { var k = h ( a ) , l = k . getEncodedHex ( ) ; return i . ASN1Util . getPEMStringFromHex ( l
=== === === === === === === === === === === === === === === === === === === === === === === ===
Blowfish . js from Dojo Toolkit 1.8 . 1
Cut of by Sladex ( xslade @ gmail . com )
Created based on the C # implementation by Marcus Hahn ( http : //www.hotpixel.net/)
Unsigned math based on Paul Johnstone and Peter Wood patches .
2005 - 12 - 08
The Dojo Toolkit ( including this package ) is dual licensed under BSD 3 - Clause and AFL .
The Dojo Toolkit is Copyright ( c ) 2005 - 2016 , The Dojo Foundation . All rights reserved .
* /
function ( a ) { var b = { } ; b . cipherModes = { ECB : 0 , CBC : 1 , PCBC : 2 , CFB : 3 , OFB : 4 , CTR : 5 } , b . outputTypes = { Base64 : 0 , Hex : 1 , String : 2 , Raw : 3 } ; var c = { } , d = "=" , e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ; c . encode = function ( a ) { for ( var b = [ ] , c = a . length , f = c % 3 , g = c - f , h = 0 ; h < g ; ) { var i = a [ h ++ ] << 16 | a [ h ++ ] << 8 | a [ h ++ ] ; b . push ( e . charAt ( i >>> 18 & 63 ) ) , b . push ( e . charAt ( i >>> 12 & 63 ) ) , b . push ( e . charAt ( i >>> 6 & 63 ) ) , b . push ( e . charAt ( 63 & i ) ) } switch ( f ) { case 2 : var i = a [ h ++ ] << 16 | a [ h ++ ] << 8 ; b . push ( e . charAt ( i >>> 18 & 63 ) ) , b . push ( e . charAt ( i >>> 12 & 63 ) ) , b . push ( e . charAt ( i >>> 6 & 63 ) ) , b . push ( d ) ; break ; case 1 : var i = a [ h ++ ] << 16 ; b . push ( e . charAt ( i >>> 18 & 63 ) ) , b . push ( e . charAt ( i >>> 12 & 63 ) ) , b . push ( d ) , b . push ( d ) } return b . join ( "" ) } , c . decode = function ( a ) { for ( var b = a . split ( "" ) , c = [ ] , f = b . length ; b [ -- f ] == d ; ) ; for ( var g = 0 ; g < f ; ) { var h = e . indexOf ( b [ g ++ ] ) << 18 ; g <= f && ( h |= e . indexOf ( b [ g ++ ] ) << 12 ) , g <= f && ( h |= e . indexOf ( b [ g ++ ] ) << 6 ) , g <= f && ( h |= e . indexOf ( b [ g ++ ] ) ) , c . push ( h >>> 16 & 255 ) , c . push ( h >>> 8 & 255 ) , c . push ( 255 & h ) } for ( ; 0 == c [ c . length - 1 ] ; ) c . pop ( ) ; return c } ; var f = { } ; f . isString = function ( a ) { return "string" == typeof a || a instanceof String } ; var g = { } ; g . map = function ( a , b , c , d ) { var e = 0 , f = a && a . length || 0 , g = new ( d || Array ) ( f ) ; if ( f && "string" == typeof a && ( a = a . split ( "" ) ) , "string" == typeof b && ( b = cache [ b ] || buildFn ( b ) ) , c ) for ( ; e < f ; ++ e ) g [ e ] = b . call ( c , a [ e ] , e , a ) ; else for ( ; e < f ; ++ e ) g [ e ] = b ( a [ e ] , e , a ) ; return g } , b . Blowfish = new function ( ) { function a ( a , b ) { return ( a >> 16 ^ b >> 16 ) << 16 | 65535 & ( 65535 & a ^ 65535 & b ) } function d ( a , b ) { var c = b . s3 [ 255 & a ] ; a >>= 8 ; var d = b . s2 [ 255 & a ] ; a >>= 8 ; var e = b . s1 [ 255 & a ] ; a >>= 8 ; var f = b . s0 [ 255 & a ] , g = ( f >> 16 ) + ( e >> 16 ) + ( ( 65535 & f ) + ( 65535 & e ) >> 16 ) << 16 | ( 65535 & f ) + ( 65535 & e ) & 65535 ; return g = ( g >> 16 ^ d >> 16 ) << 16 | 65535 & ( 65535 & g ^ 65535 & d ) , ( g >> 16 ) + ( c >> 16 ) + ( ( 65535 & g ) + ( 65535 & c ) >> 16 ) << 16 | ( 65535 & g ) + ( 65535 & c ) & 65535 } function e ( b , c ) { var e = b . left , f = b . right ; e = a ( e , c . p [ 0 ] ) , f = a ( f , a ( d ( e , c ) , c . p [ 1 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 2 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 3 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 4 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 5 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 6 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 7 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 8 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 9 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 10 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 11 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 12 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 13 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 14 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 15 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 16 ] ) ) , b . right = e , b . left = a ( f , c . p [ 17 ] ) } function h ( b , c ) { var e = b . left , f = b . right ; e = a ( e , c . p [ 17 ] ) , f = a ( f , a ( d ( e , c ) , c . p [ 16 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 15 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 14 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 13 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 12 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 11 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 10 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 9 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 8 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 7 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 6 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 5 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 4 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 3 ] ) ) , f = a ( f , a ( d ( e , c ) , c . p [ 2 ] ) ) , e = a ( e , a ( d ( f , c ) , c . p [ 1 ] ) ) , b . right = e , b . left = a ( f , c . p [ 0 ] ) } function i ( a ) { var b = a ; f . isString ( b ) && ( b = g . map ( b . split ( "" ) , function ( a ) { return 255 & a . charCodeAt ( 0 ) } ) ) ; var c , d , h , i = 0 , k = 0 , l = { left : 0 , right : 0 } , m = { p : g . map ( n . p . slice ( 0 ) , function ( a ) { var c , d = b . length ; for ( c = 0 ; c < 4 ; c ++ ) k = k * j | b [ i ++ % d ] ; return ( a >> 16 ^ k >> 16 ) << 16 | 65535 & ( 65535 & a ^ 65535 & k ) } ) , s0 : n . s0 . slice ( 0 ) , s1 : n . s1 . slice ( 0 ) , s2 : n . s2 . slice ( 0 ) , s3 : n . s3 . slice ( 0 ) } ; for ( c = 0 , h = m . p . length ; c < h ; ) e ( l , m ) , m . p [ c ++ ] = l . left , m . p [ c ++ ] = l . right ; for ( c = 0 ; c < 4 ; c ++ ) for ( d = 0 , h = m [ "s" + c ] . length ; d < h ; ) e ( l , m ) , m [ "s" + c ] [ d ++ ] = l . left , m [ "s" + c ] [ d ++ ] = l . right ; return m } var j = ( Math . pow ( 2 , 2 ) , Math . pow ( 2 , 3 ) , Math . pow ( 2 , 4 ) , Math . pow ( 2 , 8 ) ) , k = Math . pow ( 2 , 16 ) , l = Math . pow ( 2 , 24 ) , m = null , n = { p : [ 608135816 , 2242054355 , 320440878 , 57701188 , 2752067618 , 698298832 , 137296536 , 3964562569 , 1160258022 , 953160567 , 3193202383 , 887688300 , 3232508343 , 3380367581 , 1065670069 , 3041331479 , 2450970073 , 2306472731 ] , s0 : [ 3509652390 , 2564797868 , 805139163 , 3491422135 , 3101798381 , 1780907670 , 3128725573 , 4046225305 , 614570311 , 3012652279 , 134345442 , 2240740374 , 1667834072 , 1901547113 , 2757295779 , 4103290238 , 227898511 , 1921955416 , 1904987480 , 2182433518 , 2069144605 , 3260701109 , 2620446009 , 720527379 , 3318853667 , 677414384 , 3393288472 , 3101374703 , 2390351024 , 1614419982 , 1822297739 , 2954791486 , 3608508353 , 3174124327 , 2024746970 , 1432378464 , 3864339955 , 2857741204 , 1464375394 , 1676153920 , 1439316330 , 715854006 , 3033291828 , 289532110 , 2706671279 , 2087905683 , 3018724369 , 1668267050 , 732546397 , 1947742710 , 3462151702 , 2609353502 , 2950085171 , 1814351708 , 2050118529 , 680887927 , 999245976 , 1800124847 , 330091
k = c . length ) ; j -- ; ) c [ f ] = c [ f ++ - i ] ; for ( ; 8 <= this . c ; ) this . c -= 8 , this . d -- ; this . a = f } , c . prototype . e = function ( ) { var a , b , c = new ( h ? Uint8Array : Array ) ( this . a - 32768 ) , d = this . a - 32768 , e = this . b ; if ( h ) c . set ( e . subarray ( 32768 , c . length ) ) ; else for ( a = 0 , b = c . length ; a < b ; ++ a ) c [ a ] = e [ a + 32768 ] ; if ( this . g . push ( c ) , this . k += c . length , h ) e . set ( e . subarray ( d , d + 32768 ) ) ; else for ( a = 0 ; 32768 > a ; ++ a ) e [ a ] = e [ d + a ] ; return this . a = 32768 , e } , c . prototype . v = function ( a ) { var b , c , d , e , f = this . input . length / this . d + 1 | 0 , g = this . input , i = this . b ; return a && ( "number" == typeof a . o && ( f = a . o ) , "number" == typeof a . r && ( f += a . r ) ) , 2 > f ? ( c = ( g . length - this . d ) / this . n [ 2 ] , e = 258 * ( c / 2 ) | 0 , d = e < i . length ? i . length + e : i . length << 1 ) : d = i . length * f , h ? ( b = new Uint8Array ( d ) , b . set ( i ) ) : b = i , this . b = b } , c . prototype . m = function ( ) { var a , b , c , d , e , f = 0 , g = this . b , i = this . g , j = new ( h ? Uint8Array : Array ) ( this . k + ( this . a - 32768 ) ) ; if ( 0 === i . length ) return h ? this . b . subarray ( 32768 , this . a ) : this . b . slice ( 32768 , this . a ) ; for ( b = 0 , c = i . length ; b < c ; ++ b ) for ( a = i [ b ] , d = 0 , e = a . length ; d < e ; ++ d ) j [ f ++ ] = a [ d ] ; for ( b = 32768 , c = this . a ; b < c ; ++ b ) j [ f ++ ] = g [ b ] ; return this . g = [ ] , this . buffer = j } , c . prototype . s = function ( ) { var a , b = this . a ; return h ? this . q ? ( a = new Uint8Array ( b ) , a . set ( this . b . subarray ( 0 , b ) ) ) : a = this . b . subarray ( 0 , b ) : ( this . b . length > b && ( this . b . length = b ) , a = this . b ) , this . buffer = a } , a ( "Zlib.RawInflate" , c ) , a ( "Zlib.RawInflate.prototype.decompress" , c . prototype . u ) ; var C , D , E , F , G = { ADAPTIVE : j , BLOCK : i } ; if ( Object . keys ) C = Object . keys ( G ) ; else for ( D in C = [ ] , E = 0 , G ) C [ E ++ ] = D ; for ( E = 0 , F = C . length ; E < F ; ++ E ) D = C [ E ] , a ( "Zlib.RawInflate.BufferType." + D , G [ D ] ) } . call ( this ) , function ( ) { function a ( a , b ) { var c = a . split ( "." ) , d = s ; ! ( c [ 0 ] in d ) && d . execScript && d . execScript ( "var " + c [ 0 ] ) ; for ( var e ; c . length && ( e = c . shift ( ) ) ; ) c . length || b === q ? d = d [ e ] ? d [ e ] : d [ e ] = { } : d [ e ] = b } function b ( a , b ) { if ( this . index = "number" == typeof b ? b : 0 , this . f = 0 , this . buffer = a instanceof ( t ? Uint8Array : Array ) ? a : new ( t ? Uint8Array : Array ) ( 32768 ) , 2 * this . buffer . length <= this . index ) throw Error ( "invalid index" ) ; this . buffer . length <= this . index && c ( this ) } function c ( a ) { var b , c = a . buffer , d = c . length , e = new ( t ? Uint8Array : Array ) ( d << 1 ) ; if ( t ) e . set ( c ) ; else for ( b = 0 ; b < d ; ++ b ) e [ b ] = c [ b ] ; return a . buffer = e } function d ( a ) { var b , c = q , d = "number" == typeof c ? c : c = 0 , e = a . length ; for ( b = - 1 , d = 7 & e ; d -- ; ++ c ) b = b >>> 8 ^ B [ 255 & ( b ^ a [ c ] ) ] ; for ( d = e >> 3 ; d -- ; c += 8 ) b = b >>> 8 ^ B [ 255 & ( b ^ a [ c ] ) ] , b = b >>> 8 ^ B [ 255 & ( b ^ a [ c + 1 ] ) ] , b = b >>> 8 ^ B [ 255 & ( b ^ a [ c + 2 ] ) ] , b = b >>> 8 ^ B [ 255 & ( b ^ a [ c + 3 ] ) ] , b = b >>> 8 ^ B [ 255 & ( b ^ a [ c + 4 ] ) ] , b = b >>> 8 ^ B [ 255 & ( b ^ a [ c + 5 ] ) ] , b = b >>> 8 ^ B [ 255 & ( b ^ a [ c + 6 ] ) ] , b = b >>> 8 ^ B [ 255 & ( b ^ a [ c + 7 ] ) ] ; return ( 4294967295 ^ b ) >>> 0 } function e ( a ) { this . buffer = new ( t ? Uint16Array : Array ) ( 2 * a ) , this . length = 0 } function f ( a , b ) { this . k = D , this . l = 0 , this . input = t && a instanceof Array ? new Uint8Array ( a ) : a , this . e = 0 , b && ( b . lazy && ( this . l = b . lazy ) , "number" == typeof b . compressionType && ( this . k = b . compressionType ) , b . outputBuffer && ( this . c = t && b . outputBuffer instanceof Array ? new Uint8Array ( b . outputBuffer ) : b . outputBuffer ) , "number" == typeof b . outputIndex && ( this . e = b . outputIndex ) ) , this . c || ( this . c = new ( t ? Uint8Array : Array ) ( 32768 ) ) } function g ( a , b ) { this . length = a , this . n = b } function h ( a , b ) { function c ( a , b ) { var c , d = a . n , e = [ ] , f = 0 ; c = G [ a . length ] , e [ f ++ ] = 65535 & c , e [ f ++ ] = c >> 16 & 255 , e [ f ++ ] = c >> 24 ; var g ; switch ( r ) { case 1 === d : g = [ 0 , d - 1 , 0 ] ; break ; case 2 === d : g = [ 1 , d - 2 , 0 ] ; break ; case 3 === d : g = [ 2 , d - 3 , 0 ] ; break ; case 4 === d : g = [ 3 , d - 4 , 0 ] ; break ; case 6 >= d : g = [ 4 , d - 5 , 1 ] ; break ; case 8 >= d : g = [ 5 , d - 7 , 1 ] ; break ; case 12 >= d : g = [ 6 , d - 9 , 2 ] ; break ; case 16 >= d : g = [ 7 , d - 13 , 2 ] ; break ; case 24 >= d : g = [ 8 , d - 17 , 3 ] ; break ; case 32 >= d : g = [ 9 , d - 25 , 3 ] ; break ; case 48 >= d : g = [ 10 , d - 33 , 4 ] ; break ; case 64 >= d : g = [ 11 , d - 49 , 4 ] ; break ; case 96 >= d : g = [ 12 , d - 65 , 5 ] ; break ; case 128 >= d : g = [ 13 , d - 97 , 5 ] ; break ; case 192 >= d : g = [ 14 , d - 129 , 6 ] ; break ; case 256 >= d : g = [ 15 , d - 193 , 6 ] ; break ; case 384 >= d : g = [ 16 , d - 257 , 7 ] ; break ; case 512 >= d : g = [ 17 , d - 385 , 7 ] ; break ; case 768 >= d : g = [ 18 , d - 513 , 8 ] ; break ; case 1024 >= d : g = [ 19 , d - 769 , 8 ] ; break ; case 1536 >= d : g = [ 20 , d - 1025 , 9 ] ; break ; case 2048 >= d : g = [ 21 , d - 1537 , 9 ] ; break ; case 3072 >= d : g = [ 22 , d - 2049 , 10 ] ; break ; case 4096 >= d : g = [ 23 , d - 3073 , 10 ] ; break ; case 6144 >= d : g = [ 24 , d - 4097 , 11 ] ; break ; case 8192 >= d : g = [ 25 , d - 6145 , 11 ] ; break ; case 12288 >= d : g = [ 26 , d - 8193 , 12 ] ; break ; case 16384 >= d : g = [ 27 , d - 12289 , 12 ] ; break ; case 24576 >= d : g = [ 28 , d - 16385 , 13 ] ; break ; case 32768 >= d : g = [ 29 , d - 24577 , 13 ] ; break ; default : throw "invalid distance" } c = g , e [ f ++ ] = c [ 0 ] , e [ f ++ ] = c [ 1 ] , e [ f ++ ] = c [ 2 ]
} ) . r ( ) ; break ; default : a ( Error ( "unknown compression type" ) ) } if ( this . ca ) { var v , x = o , y = "number" == typeof x ? x : x = 0 , z = j . length ; for ( v = - 1 , y = 7 & z ; y -- ; ++ x ) v = v >>> 8 ^ w [ 255 & ( v ^ j [ x ] ) ] ; for ( y = z >> 3 ; y -- ; x += 8 ) v = v >>> 8 ^ w [ 255 & ( v ^ j [ x ] ) ] , v = v >>> 8 ^ w [ 255 & ( v ^ j [ x + 1 ] ) ] , v = v >>> 8 ^ w [ 255 & ( v ^ j [ x + 2 ] ) ] , v = v >>> 8 ^ w [ 255 & ( v ^ j [ x + 3 ] ) ] , v = v >>> 8 ^ w [ 255 & ( v ^ j [ x + 4 ] ) ] , v = v >>> 8 ^ w [ 255 & ( v ^ j [ x + 5 ] ) ] , v = v >>> 8 ^ w [ 255 & ( v ^ j [ x + 6 ] ) ] , v = v >>> 8 ^ w [ 255 & ( v ^ j [ x + 7 ] ) ] ; n = ( 4294967295 ^ v ) >>> 0 , g . p !== n && a ( Error ( "wrong crc: file=0x" + g . p . toString ( 16 ) + ", data=0x" + n . toString ( 16 ) ) ) } return j } , n . M = function ( a ) { this . j = a } , n . k = h . prototype . k , n . T = h . prototype . U , n . s = h . prototype . s , b ( "Zlib.Unzip" , i ) , b ( "Zlib.Unzip.prototype.decompress" , i . prototype . r ) , b ( "Zlib.Unzip.prototype.getFilenames" , i . prototype . Z ) , b ( "Zlib.Unzip.prototype.setPassword" , i . prototype . M ) } . call ( this ) , / * * @ l i c e n s e
=== === === === === === === === === === === === === === === === === === === === === === === ===
zlib . js 2012 - imaya [ https : //github.com/imaya/zlib.js ] The MIT License
* /
function ( ) { function a ( a ) { throw a } function b ( a , b ) { var c = a . split ( "." ) , d = A ; ! ( c [ 0 ] in d ) && d . execScript && d . execScript ( "var " + c [ 0 ] ) ; for ( var e ; c . length && ( e = c . shift ( ) ) ; ) c . length || b === y ? d = d [ e ] ? d [ e ] : d [ e ] = { } : d [ e ] = b } function c ( b , c ) { this . index = "number" == typeof c ? c : 0 , this . m = 0 , this . buffer = b instanceof ( B ? Uint8Array : Array ) ? b : new ( B ? Uint8Array : Array ) ( 32768 ) , 2 * this . buffer . length <= this . index && a ( Error ( "invalid index" ) ) , this . buffer . length <= this . index && this . f ( ) } function d ( a , b , c ) { var d , e = "number" == typeof b ? b : b = 0 , f = "number" == typeof c ? c : a . length ; for ( d = - 1 , e = 7 & f ; e -- ; ++ b ) d = d >>> 8 ^ J [ 255 & ( d ^ a [ b ] ) ] ; for ( e = f >> 3 ; e -- ; b += 8 ) d = d >>> 8 ^ J [ 255 & ( d ^ a [ b ] ) ] , d = d >>> 8 ^ J [ 255 & ( d ^ a [ b + 1 ] ) ] , d = d >>> 8 ^ J [ 255 & ( d ^ a [ b + 2 ] ) ] , d = d >>> 8 ^ J [ 255 & ( d ^ a [ b + 3 ] ) ] , d = d >>> 8 ^ J [ 255 & ( d ^ a [ b + 4 ] ) ] , d = d >>> 8 ^ J [ 255 & ( d ^ a [ b + 5 ] ) ] , d = d >>> 8 ^ J [ 255 & ( d ^ a [ b + 6 ] ) ] , d = d >>> 8 ^ J [ 255 & ( d ^ a [ b + 7 ] ) ] ; return ( 4294967295 ^ d ) >>> 0 } function e ( ) { } function f ( a ) { this . buffer = new ( B ? Uint16Array : Array ) ( 2 * a ) , this . length = 0 } function g ( a ) { var b , c , d , e , f , g , h , i , j , k , l = a . length , m = 0 , n = Number . POSITIVE _INFINITY ; for ( i = 0 ; i < l ; ++ i ) a [ i ] > m && ( m = a [ i ] ) , a [ i ] < n && ( n = a [ i ] ) ; for ( b = 1 << m , c = new ( B ? Uint32Array : Array ) ( b ) , d = 1 , e = 0 , f = 2 ; d <= m ; ) { for ( i = 0 ; i < l ; ++ i ) if ( a [ i ] === d ) { for ( g = 0 , h = e , j = 0 ; j < d ; ++ j ) g = g << 1 | 1 & h , h >>= 1 ; for ( k = d << 16 | i , j = g ; j < b ; j += f ) c [ j ] = k ; ++ e } ++ d , e <<= 1 , f <<= 1 } return [ c , m , n ] } function h ( a , b ) { this . k = L , this . I = 0 , this . input = B && a instanceof Array ? new Uint8Array ( a ) : a , this . b = 0 , b && ( b . lazy && ( this . I = b . lazy ) , "number" == typeof b . compressionType && ( this . k = b . compressionType ) , b . outputBuffer && ( this . a = B && b . outputBuffer instanceof Array ? new Uint8Array ( b . outputBuffer ) : b . outputBuffer ) , "number" == typeof b . outputIndex && ( this . b = b . outputIndex ) ) , this . a || ( this . a = new ( B ? Uint8Array : Array ) ( 32768 ) ) } function i ( a , b ) { this . length = a , this . Q = b } function j ( b , c ) { function d ( b , c ) { var d , e = b . Q , f = [ ] , g = 0 ; d = P [ b . length ] , f [ g ++ ] = 65535 & d , f [ g ++ ] = d >> 16 & 255 , f [ g ++ ] = d >> 24 ; var h ; switch ( z ) { case 1 === e : h = [ 0 , e - 1 , 0 ] ; break ; case 2 === e : h = [ 1 , e - 2 , 0 ] ; break ; case 3 === e : h = [ 2 , e - 3 , 0 ] ; break ; case 4 === e : h = [ 3 , e - 4 , 0 ] ; break ; case 6 >= e : h = [ 4 , e - 5 , 1 ] ; break ; case 8 >= e : h = [ 5 , e - 7 , 1 ] ; break ; case 12 >= e : h = [ 6 , e - 9 , 2 ] ; break ; case 16 >= e : h = [ 7 , e - 13 , 2 ] ; break ; case 24 >= e : h = [ 8 , e - 17 , 3 ] ; break ; case 32 >= e : h = [ 9 , e - 25 , 3 ] ; break ; case 48 >= e : h = [ 10 , e - 33 , 4 ] ; break ; case 64 >= e : h = [ 11 , e - 49 , 4 ] ; break ; case 96 >= e : h = [ 12 , e - 65 , 5 ] ; break ; case 128 >= e : h = [ 13 , e - 97 , 5 ] ; break ; case 192 >= e : h = [ 14 , e - 129 , 6 ] ; break ; case 256 >= e : h = [ 15 , e - 193 , 6 ] ; break ; case 384 >= e : h = [ 16 , e - 257 , 7 ] ; break ; case 512 >= e : h = [ 17 , e - 385 , 7 ] ; break ; case 768 >= e : h = [ 18 , e - 513 , 8 ] ; break ; case 1024 >= e : h = [ 19 , e - 769 , 8 ] ; break ; case 1536 >= e : h = [ 20 , e - 1025 , 9 ] ; break ; case 2048 >= e : h = [ 21 , e - 1537 , 9 ] ; break ; case 3072 >= e : h = [ 22 , e - 2049 , 10 ] ; break ; case 4096 >= e : h = [ 23 , e - 3073 , 10 ] ; break ; case 6144 >= e : h = [ 24 , e - 4097 , 11 ] ; break ; case 8192 >= e : h = [ 25 , e - 6145 , 11 ] ; break ; case 12288 >= e : h = [ 26 , e - 8193 , 12 ] ; break ; case 16384 >= e : h = [ 27 , e - 12289 , 12 ] ; break ; case 24576 >= e : h = [ 28 , e - 16385 , 13 ] ; break ; case 32768 >= e : h = [ 29 , e - 24577 , 13 ] ; break ; default : a ( "invalid distance" ) } d = h , f [ g ++ ] = d [ 0 ] , f [ g ++ ] = d [ 1 ] , f [ g ++ ] = d [ 2 ] ; var i , j ; for ( i = 0 , j = f . length ; i < j ; ++ i ) p [ q ++ ] = f [ i ] ; s [ f [ 0 ] ] ++ , t [ f [ 3 ] ] ++ , r = b . length + c - 1 , m = null } var e , f , g , h , i , j , l , m , n , o = { } , p = B ? new Uint16Array ( 2 * c . length ) : [ ] , q = 0 , r = 0 , s = new ( B ? Uint32Array : Array ) ( 286 ) , t = new ( B ? Uint32Array : Array ) ( 30 ) , u = b . I ; if ( ! B ) { for ( g = 0 ; 285 >= g ; ) s [ g ++ ] = 0 ; for ( g = 0 ; 29 >= g ; ) t [ g ++ ] = 0 } for ( s [ 256 ] = 1 , e = 0 , f = c . length ; e < f ; ++ e ) { for ( g = i = 0 , h = 3 ; g < h && e + g !== f ; ++ g ) i = i << 8 | c [ e + g ] ; if ( o [ i ] === y && ( o [ i ] = [ ] ) , j = o [ i ] , ! ( 0 < r -- ) ) { for ( ; 0 < j . length && 32768 < e - j [ 0 ] ; ) j . shift ( ) ; if ( e + 3 >= f ) { for ( m && d ( m , - 1 ) , g = 0 , h = f - e ; g < h ; ++ g ) n = c [ e + g ] , p [ q ++ ] = n , ++ s [ n ] ; break } 0 < j . length ? ( l = k ( c , e , j ) , m ? m . length < l . length ? ( n = c [ e - 1 ] , p [ q ++ ] = n , ++ s [ n ] , d ( l , 0 ) ) : d ( m , - 1 ) : l . length < u ? m = l : d ( l , 0 ) ) : m ? d ( m , - 1 ) : ( n = c [ e ] , p [ q ++ ] = n , ++ s [ n ] ) } j . push ( e ) } return p [ q ++ ] = 256 , s [ 256 ] ++ , b . W = s , b . V = t , B ? p . subarray ( 0 , q ) : p } function k ( a , b , c ) { var d , e , f , g , h , j , k = 0 , l = a . length ; g = 0 , j = c . length ; a : for ( ; g < j ; g ++ ) { if ( d = c [ j - g - 1 ] , f = 3 , 3 < k ) { for ( h = k ; 3 < h ; h -- ) if ( a [ d + h - 1 ] !== a [ b + h - 1 ] ) continue a ; f = k } for ( ; 258 > f && b + f < l && a [ d + f ] === a [ b + f ] ; ) ++ f ; if ( f > k && ( e = d , k = f ) , 258 === f ) break } return new i ( k , b - e ) } function l ( a , b ) { var c , d , e , g , h , i = a . length , j = new f ( 572 ) , k = new ( B ? Uint8Array : Array ) ( i ) ; if ( ! B ) for ( g = 0 ; g < i ; g ++ ) k [ g ] = 0 ; for ( g = 0 ; g < i ; ++ g ) 0 < a [ g ] && j . push ( g , a [ g ] ) ; if ( c = Array ( j . length / 2 ) , d = new ( B ? Uint32Array : Array ) ( j . length / 2 ) , 1 === c . length ) return k [ j . pop ( ) . index ] = 1 , k ; for ( g = 0 , h =
metadata : { uaFamily : "Jyxobot" , uaName : "Jyxobot" , uaUrl : "" , uaCompany : "Jyxo s.r.o." , uaCompanyUrl : "http://jyxo.cz/" , uaIcon : "bot_Jyxobot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Jyxobot" } } , 9 : { userAgent : "Scooter/3.3" , metadata : { uaFamily : "Scooter" , uaName : "Scooter/3.3" , uaUrl : "" , uaCompany : "AltaVista" , uaCompanyUrl : "http://www.altavista.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Scooter" } } , 14 : { userAgent : "Baiduspider+(+http://www.baidu.com/search/spider.htm)" , metadata : { uaFamily : "Baiduspider" , uaName : "Baiduspider" , uaUrl : "http://www.baidu.com/search/spider.htm" , uaCompany : "Baidu" , uaCompanyUrl : "http://www.baidu.com/" , uaIcon : "bot_baiduspider.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Baiduspider" } } , 20 : { userAgent : "lmspider (lmspider@scansoft.com)" , metadata : { uaFamily : "lmspider" , uaName : "lmspider" , uaUrl : "http://www.nuance.com/" , uaCompany : "Nuance Communications, Inc." , uaCompanyUrl : "http://www.nuance.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=lmspider" } } , 25 : { userAgent : "Googlebot-Image/1.0" , metadata : { uaFamily : "Googlebot" , uaName : "Googlebot-Image/1.0" , uaUrl : "http://support.google.com/webmasters/bin/answer.py?hl=en&answer=1061943" , uaCompany : "Google Inc." , uaCompanyUrl : "http://www.google.com/" , uaIcon : "bot_googlebot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Googlebot" } } , 31 : { userAgent : "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" , metadata : { uaFamily : "Googlebot" , uaName : "Googlebot/2.1" , uaUrl : "http://support.google.com/webmasters/bin/answer.py?hl=en&answer=1061943" , uaCompany : "Google Inc." , uaCompanyUrl : "http://www.google.com/" , uaIcon : "bot_googlebot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Googlebot" } } , 32 : { userAgent : "ConveraMultiMediaCrawler/0.1 (+http://www.authoritativeweb.com/crawl)" , metadata : { uaFamily : "ConveraCrawler" , uaName : "ConveraMultiMediaCrawler/0.1" , uaUrl : "http://www.authoritativeweb.com/crawl" , uaCompany : "Convera Corporation" , uaCompanyUrl : "http://www.authoritativeweb.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=ConveraCrawler" } } , 37 : { userAgent : "Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html)" , metadata : { uaFamily : "Ask Jeeves/Teoma" , uaName : "Ask Jeeves/Teoma - b" , uaUrl : "http://about.ask.com/en/docs/about/webmasters.shtml" , uaCompany : "Ask Jeeves Inc." , uaCompanyUrl : "http://about.ask.com/en/docs/about/index.shtml" , uaIcon : "bot_AskJeeves.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Ask Jeeves/Teoma" } } , 38 : { userAgent : "NG/2.0" , metadata : { uaFamily : "NG" , uaName : "NG/2.0" , uaUrl : "" , uaCompany : "Exalead" , uaCompanyUrl : "http://exalead.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=NG" } } , 40 : { userAgent : "TutorGigBot/1.5 ( +http://www.tutorgig.info )" , metadata : { uaFamily : "TutorGigBot" , uaName : "TutorGigBot" , uaUrl : "http://www.tutorgig.com/help.html" , uaCompany : "TutorGig" , uaCompanyUrl : "http://www.tutorgig.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=TutorGigBot" } } , 43 : { userAgent : "ZACATEK_CZ_BOT (www.zacatek.cz)" , metadata : { uaFamily : "ZACATEK_CZ" , uaName : "ZACATEK_CZ_BOT" , uaUrl : "http://www.zacatek.cz/" , uaCompany : "webprovider - Adam Haken" , uaCompanyUrl : "http://www.webprovider.cz/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=ZACATEK_CZ" } } , 45 : { userAgent : "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)" , metadata : { uaFamily : "Girafabot" , uaName : "Girafabot" , uaUrl : "" , uaCompany : "Girafa Inc." , uaCompanyUrl : "http://www.girafa.com/" , uaIcon : "bot_girafabot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Girafabot" } } , 47 : { userAgent : "FAST MetaWeb Crawler (helpdesk at fastsearch dot com)" , metadata : { uaFamily : "FAST MetaWeb Crawler" , uaName : "FAST MetaWeb Crawler" , uaUrl : "http://www.fast.no/glossary.aspx?m=48&amid=415" , uaCompany : "Fast Search & Transfer" , uaCompanyUrl : "http://www.fastsearch.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=FAST MetaWeb Crawler" } } , 56 : { userAgent : "psbot/0.1 (+http://www.picsearch.com/bot.html)" , metadata : { uaFamily : "psbot" , uaName : "psbot/0.1" , uaUrl : "http://www.picsearch.com/bot.html" , uaCompany : "picsearch.com" , uaCompanyUrl : "http://www.picsearch.com/" , uaIcon : " b
uaFamily : "NimbleCrawler" , uaName : "NimbleCrawler/1.15" , uaUrl : "" , uaCompany : "Healthline Networks, Inc." , uaCompanyUrl : "http://www.healthline.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=NimbleCrawler" } } , 295 : { userAgent : "MetaTagRobot/1.6 (http://www.widexl.com/remote/search-engines/metatag-analyzer.html)" , metadata : { uaFamily : "MetaTagRobot" , uaName : "MetaTagRobot/1.6" , uaUrl : "http://www.widexl.com/remote/search-engines/metatag-analyzer.html" , uaCompany : "widexl.com" , uaCompanyUrl : "http://www.widexl.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MetaTagRobot" } } , 296 : { userAgent : "sproose/0.1-alpha (sproose crawler; http://www.sproose.com/bot.html; crawler@sproose.com)" , metadata : { uaFamily : "sproose" , uaName : "sproose/0.1-alpha" , uaUrl : "http://www.sproose.com/bot.html" , uaCompany : "Sproose, Inc." , uaCompanyUrl : "http://www.sproose.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=sproose" } } , 301 : { userAgent : "Search Engine World Robots.txt Validator at http://www.searchengineworld.com/cgi-bin/robotcheck.cgi" , metadata : { uaFamily : "Search Engine World Robots.txt Validator" , uaName : "Search Engine World Robots.txt Validator" , uaUrl : "http://www.searchengineworld.com/cgi-bin/robotcheck.cgi" , uaCompany : "searchengineworld" , uaCompanyUrl : "http://www.searchengineworld.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Search Engine World Robots.txt Validator" } } , 303 : { userAgent : "Gaisbot/3.0+(robot06@gais.cs.ccu.edu.tw;+http://gais.cs.ccu.edu.tw/robot.php)" , metadata : { uaFamily : "Gaisbot" , uaName : "Gaisbot/3.0 - 06" , uaUrl : "http://gais.cs.ccu.edu.tw/robot.php" , uaCompany : "National Chung Cheng University" , uaCompanyUrl : "http://www.ccu.edu.tw/" , uaIcon : "bot_gaisbot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Gaisbot" } } , 306 : { userAgent : "Forschungsportal/0.8-dev (Testinstallation; http://www.forschungsportal.net/; fpcrawler@rrzn.uni-hannover.de)" , metadata : { uaFamily : "Forschungsportal" , uaName : "Forschungsportal/0.8-dev" , uaUrl : "http://www.forschungsportal.net/" , uaCompany : "Bundesministerium f\xfcr Bildung und Forschung" , uaCompanyUrl : "http://www.bmbf.de/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Forschungsportal" } } , 307 : { userAgent : "HooWWWer/2.2.0 (debugging run) (+http://cosco.hiit.fi/search/hoowwwer/ | mailto:crawler-info<at>hiit.fi)" , metadata : { uaFamily : "HooWWWer" , uaName : "HooWWWer/2.2.0" , uaUrl : "http://cosco.hiit.fi/search/hoowwwer/" , uaCompany : "CoSCo" , uaCompanyUrl : "http://cosco.hiit.fi/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=HooWWWer" } } , 308 : { userAgent : "OmniExplorer_Bot/6.47 (+http://www.omni-explorer.com) WorldIndexer" , metadata : { uaFamily : "OmniExplorer_Bot" , uaName : "OmniExplorer_Bot/6.47" , uaUrl : "http://www.omni-explorer.com/" , uaCompany : "" , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=OmniExplorer_Bot" } } , 310 : { userAgent : "Orbiter (+http://www.dailyorbit.com/bot.htm)" , metadata : { uaFamily : "Orbiter" , uaName : "Orbiter" , uaUrl : "http://www.dailyorbit.com/bot.htm" , uaCompany : "DailyOrbit.com" , uaCompanyUrl : "http://www.dailyorbit.com/" , uaIcon : "bot_orbiter.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Orbiter" } } , 312 : { userAgent : "FAST Enterprise Crawler/6.4 (crawler@fast.no)" , metadata : { uaFamily : "FAST Enterprise Crawler" , uaName : "FAST Enterprise Crawler/6.4" , uaUrl : "http://www.fast.no/glossary.aspx?m=48&amid=415" , uaCompany : "Fast Search & Transfer" , uaCompanyUrl : "http://www.fastsearch.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=FAST Enterprise Crawler" } } , 317 : { userAgent : "csci_b659/0.13" , metadata : { uaFamily : "csci_b659" , uaName : "csci_b659/0.13" , uaUrl : "http://informatics.indiana.edu/fil/Class/b659/" , uaCompany : "Indiana University" , uaCompanyUrl : "http://www.indiana.edu/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=csci_b659" } } , 321 : { userAgent : "NutchCVS/0.06-dev (Nutch; http://www.nutch.org/docs/en/bot.html; nutch-agent@lists.sourceforge.net)" , metadata : { uaFamily : "Nutch" , uaName : "NutchCVS/0.06-dev" , uaUrl : "http://www.nutch.org/docs/en/bot.html" , uaCompany : "lucene" , uaCompanyUrl : "http://lucene.apache.org/" , uaIcon : "bot_Nutch.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Nutch" } } , 323 : { userAgent : " NutchCVS / 0.7 . 1
metadata : { uaFamily : "EDI" , uaName : "EDI/1.6.5" , uaUrl : "" , uaCompany : "Daum Communications Corp." , uaCompanyUrl : "http://info.daum.net/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=EDI" } } , 560 : { userAgent : "ccubee/9.0" , metadata : { uaFamily : "ccubee" , uaName : "ccubee/9.0" , uaUrl : "http://empyreum.com/technologies/platforms/ccubee/" , uaCompany : "EMPYREUM k. s." , uaCompanyUrl : "http://empyreum.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=ccubee" } } , 562 : { userAgent : "MQBOT/Nutch-0.9-dev (MQBOT Nutch Crawler; http://falcon.cs.uiuc.edu; mqbot@cs.uiuc.edu)" , metadata : { uaFamily : "MQbot" , uaName : "MQBOT/Nutch-0.9-dev" , uaUrl : "http://metaquerier.cs.uiuc.edu/crawler/" , uaCompany : "University of Illinois at Urbana-Champaign" , uaCompanyUrl : "http://www.uiuc.edu/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MQbot" } } , 563 : { userAgent : "Mozilla/5.0 (compatible; nextthing.org/1.0; +http://www.nextthing.org/bot)" , metadata : { uaFamily : "nextthing.org" , uaName : "nextthing.org/1.0" , uaUrl : "http://www.nextthing.org/bot/" , uaCompany : "Andrew Wooster" , uaCompanyUrl : "http://www.cs.hmc.edu/~awooster/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=nextthing.org" } } , 564 : { userAgent : "crawler43.ejupiter.com" , metadata : { uaFamily : "ejupiter.com" , uaName : "ejupiter.com 43" , uaUrl : "http://robot.ejupiter.com/16/robot_privacy.html" , uaCompany : "eJupiter Inc" , uaCompanyUrl : "http://www.ejupiter.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=ejupiter.com" } } , 565 : { userAgent : "Szukacz/1.5 (robot; www.szukacz.pl/jakdzialarobot.html; info@szukacz.pl)" , metadata : { uaFamily : "Szukacz" , uaName : "Szukacz/1.5 b" , uaUrl : "http://www.szukacz.pl/jakdzialarobot.html" , uaCompany : "24 Godziny Sp. z o.o." , uaCompanyUrl : "http://www.szukacz.pl/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Szukacz" } } , 566 : { userAgent : "Mozilla/5.0 (compatible; BecomeBot/3.0; +http://www.become.com/site_owners.html)" , metadata : { uaFamily : "BecomeBot" , uaName : "BecomeBot/3.0 b" , uaUrl : "http://www.become.com/site_owners.html" , uaCompany : "Become, Inc." , uaCompanyUrl : "http://www.become.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=BecomeBot" } } , 567 : { userAgent : "Steeler/3.2 (http://www.tkl.iis.u-tokyo.ac.jp/~crawler/)" , metadata : { uaFamily : "Steeler" , uaName : "Steeler/3.2" , uaUrl : "http://www.tkl.iis.u-tokyo.ac.jp/~crawler/" , uaCompany : "Kitsuregawa Laboratory, The University of Tokyo" , uaCompanyUrl : "http://www.tkl.iis.u-tokyo.ac.jp/" , uaIcon : "bot_Steeler.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Steeler" } } , 569 : { userAgent : "Mozilla/4.0 (compatible; EDI/1.6.6; Edacious & Intelligent Web Robot; Daum Communications Corp., Korea)" , metadata : { uaFamily : "EDI" , uaName : "EDI/1.6.6" , uaUrl : "" , uaCompany : "Daum Communications Corp." , uaCompanyUrl : "http://info.daum.net/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=EDI" } } , 580 : { userAgent : "Blaiz-Bee/2.00.5655 (+http://www.blaiz.net)" , metadata : { uaFamily : "Blaiz-Bee" , uaName : "Blaiz-Bee/2.00.5655" , uaUrl : "http://www.rawgrunt.com/index.html" , uaCompany : "Blaiz Enterprises" , uaCompanyUrl : "http://www.blaiz.net/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Blaiz-Bee" } } , 581 : { userAgent : "Zeusbot/0.07 (Ulysseek's web-crawling robot; http://www.zeusbot.com; agent@zeusbot.com)" , metadata : { uaFamily : "Zeusbot" , uaName : "Zeusbot/0.07" , uaUrl : "http://www.zeusbot.com/" , uaCompany : "Ulysseek" , uaCompanyUrl : "http://www.ulysseek.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Zeusbot" } } , 587 : { userAgent : "MQBOT/Nutch-0.9-dev (MQBOT Crawler; http://falcon.cs.uiuc.edu; mqbot@cs.uiuc.edu)" , metadata : { uaFamily : "MQbot" , uaName : "MQBOT/Nutch-0.9-dev b" , uaUrl : "http://metaquerier.cs.uiuc.edu/crawler/" , uaCompany : "University of Illinois at Urbana-Champaign" , uaCompanyUrl : "http://www.uiuc.edu/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MQbot" } } , 588 : { userAgent : "CazoodleBot/Nutch-0.9-dev (CazoodleBot Crawler; http://www.cazoodle.com; mqbot@cazoodle.com)" , metadata : { uaFamily : "CazoodleBot" , uaName : "CazoodleBot d" , uaUrl : "http://www.cazoodle.com/cazoodlebot.php" , uaCompany : "Cazoodle Inc." , uaCompanyUrl : "http://www.cazoodle.com/" , uaIcon : "bot.png" , uaInfoUrl : " / list - of - ua / bot - detail ? bot = Cazoodle
uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Acorn" } } , 832 : { userAgent : "nestReader/0.2 (discovery; http://echonest.com/reader.shtml; reader at echonest.com)" , metadata : { uaFamily : "nestReader" , uaName : "nestReader/0.2" , uaUrl : "http://echonest.com/reader.shtml" , uaCompany : "The Echo Nest Corporation" , uaCompanyUrl : "http://echonest.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=nestReader" } } , 833 : { userAgent : "boitho.com-dc/0.86 ( http://www.boitho.com/dcbot.html )" , metadata : { uaFamily : "boitho.com-dc" , uaName : "boitho.com-dc/0.86" , uaUrl : "http://www.boitho.com/dcbot.html" , uaCompany : "Boitho" , uaCompanyUrl : "http://www.boitho.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=boitho.com-dc" } } , 835 : { userAgent : "Snappy/1.1 ( http://www.urltrends.com/ )" , metadata : { uaFamily : "Snappy" , uaName : "Snappy/1.1" , uaUrl : "http://www.urltrends.com/" , uaCompany : "Xerocity Design Group, LLC." , uaCompanyUrl : "http://www.xerocity.com/" , uaIcon : "bot_snappy.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Snappy" } } , 844 : { userAgent : "great-plains-web-spider/gpws (Flatland Industries Web Spider; http://www.flatlandindustries.com/flatlandbot.php; jason@flatlandindustries.com)" , metadata : { uaFamily : "flatlandbot" , uaName : "flatlandbot c" , uaUrl : "http://www.flatlandindustries.com/flatlandbot.php" , uaCompany : "Flatland Industries, Inc." , uaCompanyUrl : "http://www.flatlandindustries.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=flatlandbot" } } , 851 : { userAgent : "Mozilla/5.0 (compatible; FunnelBack; http://cyan.funnelback.com/robot.html)" , metadata : { uaFamily : "FunnelBack" , uaName : "FunnelBack" , uaUrl : "http://cyan.funnelback.com/robot.html" , uaCompany : "Funnelback Pty Ltd" , uaCompanyUrl : "http://www.funnelback.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=FunnelBack" } } , 856 : { userAgent : "RedBot/redbot-1.0 (Rediff.com Crawler; redbot at rediff dot com)" , metadata : { uaFamily : "RedBot" , uaName : "RedBot1.0" , uaUrl : "" , uaCompany : "Rediff.com India Limited." , uaCompanyUrl : "http://www.rediff.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=RedBot" } } , 859 : { userAgent : "Mozilla/5.0 (compatible; heritrix/1.12.0 +http://www.accelobot.com)" , metadata : { uaFamily : "Accelobot" , uaName : "Accelobot" , uaUrl : "http://www.accelobot.com/" , uaCompany : "NetBase Solutions, Inc." , uaCompanyUrl : "http://www.netbase.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Accelobot" } } , 861 : { userAgent : "wectar/Nutch-0.9 (nectar extracted form the glorious web; http://goosebumps4all.net/wectar; see website)" , metadata : { uaFamily : "wectar" , uaName : "wectar/Nutch-0.9 b" , uaUrl : "http://wectar.com/" , uaCompany : "Martin Dudek" , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=wectar" } } , 865 : { userAgent : "MQBOT/Nutch-0.9-dev (MQBOT Nutch Crawler; http://vwbot.cs.uiuc.edu; mqbot@cs.uiuc.edu)" , metadata : { uaFamily : "MQbot" , uaName : "MQBOT/Nutch-0.9-dev c" , uaUrl : "http://metaquerier.cs.uiuc.edu/crawler/" , uaCompany : "University of Illinois at Urbana-Champaign" , uaCompanyUrl : "http://www.uiuc.edu/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MQbot" } } , 872 : { userAgent : "Willow Internet Crawler by Twotrees V2.1" , metadata : { uaFamily : "Willow Internet Crawler" , uaName : "Willow Internet Crawler 2.1" , uaUrl : "" , uaCompany : "Twotrees Technologies, LLC." , uaCompanyUrl : "http://www.twotrees.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Willow Internet Crawler" } } , 873 : { userAgent : "Netintelligence LiveAssessment - www.netintelligence.com" , metadata : { uaFamily : "Netintelligence LiveAssessment" , uaName : "Netintelligence LiveAssessment" , uaUrl : "" , uaCompany : "Netintelligence Limited" , uaCompanyUrl : "http://www.netintelligence.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Netintelligence LiveAssessment" } } , 874 : { userAgent : "Mozilla/5.0 (compatible; SkreemRBot +http://skreemr.com)" , metadata : { uaFamily : "SkreemRBot" , uaName : "SkreemRBot" , uaUrl : "" , uaCompany : "SkreemR" , uaCompanyUrl : "http://skreemr.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=SkreemRBot" } } , 876 : { userAgent : " great - plains - web - spider / flatlandbot ( Flatland Industries Web Robot ; http : //www.flatlandindustries.com/flatlandbot.php; jason@f
uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Daumoa" } } , 1468 : { userAgent : "msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)" , metadata : { uaFamily : "MSNBot" , uaName : "msnbot-media/1.1" , uaUrl : "http://search.msn.com/msnbot.htm" , uaCompany : "Microsoft Corporation" , uaCompanyUrl : "http://www.microsoft.com/" , uaIcon : "bot_msnbot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MSNBot" } } , 1469 : { userAgent : "OOZBOT/0.20 ( -- ; http://www.setooz.com/oozbot.html ; agentname at setooz dot_com )" , metadata : { uaFamily : "Setoozbot" , uaName : "OOZBOT/0.20" , uaUrl : "http://www.setooz.com/oozbot.html" , uaCompany : "SETU Software Systems (P) Ltd." , uaCompanyUrl : "http://www.setusoftware.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Setoozbot" } } , 1470 : { userAgent : "Sogou develop spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" , metadata : { uaFamily : "sogou spider" , uaName : "Sogou develop spider/4.0" , uaUrl : "http://www.sogou.com/docs/help/webmasters.htm#07" , uaCompany : "SOGOU.COM" , uaCompanyUrl : "http://www.sogou.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=sogou spider" } } , 1471 : { userAgent : "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" , metadata : { uaFamily : "sogou spider" , uaName : "Sogou web spider/4.0" , uaUrl : "http://www.sogou.com/docs/help/webmasters.htm#07" , uaCompany : "SOGOU.COM" , uaCompanyUrl : "http://www.sogou.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=sogou spider" } } , 1472 : { userAgent : "SpokeSpider/1.0 (http://support.spoke.com/webspider/) Mozilla/5.0 (not really)" , metadata : { uaFamily : "SpokeSpider" , uaName : "SpokeSpider/1.0" , uaUrl : "http://support.spoke.com/webspider/" , uaCompany : "Spoke Software " , uaCompanyUrl : "http://www.spoke.com/company/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=SpokeSpider" } } , 1474 : { userAgent : "Baiduspider+(+http://www.baidu.jp/spider/)" , metadata : { uaFamily : "Baiduspider" , uaName : "Baiduspider japan" , uaUrl : "http://www.baidu.com/search/spider.htm" , uaCompany : "Baidu" , uaCompanyUrl : "http://www.baidu.com/" , uaIcon : "bot_baiduspider.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Baiduspider" } } , 1475 : { userAgent : "linkdexbot/Nutch-1.0-dev (http://www.linkdex.com/; crawl at linkdex dot com)" , metadata : { uaFamily : "linkdexbot" , uaName : "linkdexbot" , uaUrl : "http://www.linkdex.com/about/bots/" , uaCompany : "Linkdex Limited." , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=linkdexbot" } } , 1476 : { userAgent : "Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)" , metadata : { uaFamily : "NaverBot" , uaName : "Yeti/1.0" , uaUrl : "http://help.naver.com/robots/" , uaCompany : "NHN Corporation" , uaCompanyUrl : "http://www.nhncorp.com/" , uaIcon : "bot_NaverBot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=NaverBot" } } , 1478 : { userAgent : "mozilla/5.0 (compatible; webmastercoffee/0.7; +http://webmastercoffee.com/about)" , metadata : { uaFamily : "webmastercoffee" , uaName : "webmastercoffee/0.7" , uaUrl : "http://webmastercoffee.com/about" , uaCompany : "Martin Schwartz" , uaCompanyUrl : "http://webmastercoffee.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=webmastercoffee" } } , 1479 : { userAgent : "boitho.com-dc/0.82 ( http://www.boitho.com/dcbot.html )" , metadata : { uaFamily : "boitho.com-dc" , uaName : "boitho.com-dc/0.82" , uaUrl : "http://www.boitho.com/dcbot.html" , uaCompany : "Boitho" , uaCompanyUrl : "http://www.boitho.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=boitho.com-dc" } } , 1480 : { userAgent : "Busiversebot/v1.0 (http://www.busiverse.com/bot.php)" , metadata : { uaFamily : "Sirketce/Busiverse" , uaName : "Busiversebot/v1.0" , uaUrl : "http://www.busiverse.com/bot.php" , uaCompany : "BerilTech" , uaCompanyUrl : "http://www.sirketce.com.tr/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Sirketce/Busiverse" } } , 1481 : { userAgent : "CatchBot/1.0; +http://www.catchbot.com" , metadata : { uaFamily : "CatchBot" , uaName : "CatchBot/1.0" , uaUrl : "http://www.catchbot.com/" , uaCompany : "Reed Business Information Pty Limited" , uaCompanyUrl : "http://www.reedbusiness.com/" , uaIcon : "bot_CatchBot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=CatchBot" } } , 1482 : { userAgent : "CazoodleBot/0.0.2 (http://www.cazoodle.com/contact.php; cbot@cazoodle.com)" , metadata : { uaFamily : "CazoodleBot" , uaName : "
uaCompany : "Yahoo! Inc" , uaCompanyUrl : "http://www.yahoo.com/" , uaIcon : "bot_yahoo!slurp.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Yahoo!" } } , 1798 : { userAgent : "LinkAider (http://linkaider.com/crawler/)" , metadata : { uaFamily : "LinkAider" , uaName : "LinkAider" , uaUrl : "http://linkaider.com/crawler/" , uaCompany : "Ivinco" , uaCompanyUrl : "http://linkaider.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=LinkAider" } } , 1805 : { userAgent : "WinWebBot/1.0; (Balaena Ltd, UK); http://www.balaena.com/winwebbot.html; winwebbot@balaena.com;)" , metadata : { uaFamily : "WinWebBot" , uaName : "WinWebBot/1.0" , uaUrl : "http://www.balaena.com/winwebbot.html" , uaCompany : "Balaena Ltd" , uaCompanyUrl : "http://www.balaena.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=WinWebBot" } } , 1815 : { userAgent : "R6_FeedFetcher(www.radian6.com/crawler)" , metadata : { uaFamily : "R6 bot" , uaName : "R6_FeedFetcher" , uaUrl : "http://www.radian6.com/crawler/" , uaCompany : "Radian6 Technologies Inc" , uaCompanyUrl : "http://www.radian6.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=R6 bot" } } , 1816 : { userAgent : "http://domino.research.ibm.com/comm/research_projects.nsf/pages/sai-crawler.callingcard.html" , metadata : { uaFamily : "SAI Crawler" , uaName : "SAI Crawler" , uaUrl : "http://domino.research.ibm.com/comm/research_projects.nsf/pages/sai-crawler.callingcard.html" , uaCompany : "IBM" , uaCompanyUrl : "http://www.ibm.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=SAI Crawler" } } , 1818 : { userAgent : "Mozilla/5.0 (compatible;YodaoBot-Image/1.0;http://www.youdao.com/help/webmaster/spider/;)" , metadata : { uaFamily : "YodaoBot" , uaName : "YodaoBot-Image/1.0" , uaUrl : "http://www.youdao.com/help/webmaster/spider/" , uaCompany : "youdao" , uaCompanyUrl : "http://www.youdao.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=YodaoBot" } } , 1838 : { userAgent : "Mozilla/5.0 (compatible; Topicbot/12.0rc-2; +http://topicbot.awardspace.us/)" , metadata : { uaFamily : "Topicbot" , uaName : "Topicbot/12.0rc-2" , uaUrl : "http://topicbot.awardspace.us/" , uaCompany : "Research Group TopicBot" , uaCompanyUrl : "http://topicbot.awardspace.us/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Topicbot" } } , 1849 : { userAgent : "http://www.amagit.com/" , metadata : { uaFamily : "Amagit.COM" , uaName : "Amagit.COM" , uaUrl : "" , uaCompany : "Joshua Schwarz" , uaCompanyUrl : "http://contacts.joshuaschwarz.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Amagit.COM" } } , 1853 : { userAgent : "Sosospider+(+http://help.soso.com/webspider.htm)" , metadata : { uaFamily : "Sosospider" , uaName : "Sosospider" , uaUrl : "http://help.soso.com/webspider.htm" , uaCompany : "Tencent, Inc." , uaCompanyUrl : "http://www.tencent.com/" , uaIcon : "bot_soso.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Sosospider" } } , 1856 : { userAgent : "findlinks/1.1.5-beta7 (+http://wortschatz.uni-leipzig.de/findlinks/)" , metadata : { uaFamily : "findlinks" , uaName : "findlinks/1.1.4-beta7" , uaUrl : "http://wortschatz.uni-leipzig.de/findlinks/" , uaCompany : "Universit\xe4t Leipzig" , uaCompanyUrl : "http://www.uni-leipzig.de/" , uaIcon : "bot_findlinks.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=findlinks" } } , 1859 : { userAgent : "Mozilla/5.0 (compatible; JadynAveBot; +http://www.jadynave.com/robot)" , metadata : { uaFamily : "JadynAveBot" , uaName : "JadynAveBot" , uaUrl : "http://www.jadynave.com/robot" , uaCompany : "Yesup Ecommerce Solutions Inc." , uaCompanyUrl : "http://www.yesup.net/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=JadynAveBot" } } , 1866 : { userAgent : "smart.apnoti.com Robot/v1.34 (http://smart.apnoti.com/en/aboutApnotiWebCrawler.html)" , metadata : { uaFamily : "smart.apnoti.com Robot" , uaName : "smart.apnoti.com Robot/v1.34" , uaUrl : "http://smart.apnoti.com/en/aboutApnotiWebCrawler.html" , uaCompany : "apnoti.com GmbH" , uaCompanyUrl : "http://www.apnoti.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=smart.apnoti.com Robot" } } , 1867 : { userAgent : "MnoGoSearch/3.3.9" , metadata : { uaFamily : "MnoGoSearch" , uaName : "MnoGoSearch/3.3.9" , uaUrl : "http://www.mnogosearch.org/products.html" , uaCompany : "Lavtech.Com" , uaCompanyUrl : "http://www.lavtech.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MnoGoSearch" } } , 1869 : { userAgent : "Yandex/1.01.001 (compatible; Win16; H)" , metadata : { uaFam
uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 3132 : { userAgent : "SeznamBot/2.0-Test (+http://fulltext.sblog.cz/robot/)" , metadata : { uaFamily : "SeznamBot" , uaName : "SeznamBot/2.0-test" , uaUrl : "http://napoveda.seznam.cz/en/indexing-the-web.html" , uaCompany : "Seznam.cz, a.s." , uaCompanyUrl : "http://www.seznam.cz/" , uaIcon : "seznam.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=SeznamBot" } } , 3142 : { userAgent : "SEOENGBot/1.2 (+http://learn.seoeng.com/seoengbot.htm)" , metadata : { uaFamily : "SEOENGBot" , uaName : "SEOENGBot/1.2 old" , uaUrl : "http://www.seoengine.com/seoengbot.htm" , uaCompany : "SEO Engine" , uaCompanyUrl : "http://www.seoengine.com/" , uaIcon : "bot_SEOENGBot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=SEOENGBot" } } , 3203 : { userAgent : "Mozilla/5.0 (compatible; ScoutJet; http://www.scoutjet.com/)" , metadata : { uaFamily : "ScoutJet" , uaName : "ScoutJet" , uaUrl : "http://www.scoutjet.com/" , uaCompany : "blekko, inc." , uaCompanyUrl : "http://blekko.com/" , uaIcon : "bot_ScoutJet.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=ScoutJet" } } , 3221 : { userAgent : "yacybot (i386 Linux 2.6.31-18-generic; java 1.6.0_0; Europe/en) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 3235 : { userAgent : "Mozilla/4.0 (compatible; HostTracker.com/1.0;+http://host-tracker.com/)" , metadata : { uaFamily : "HostTracker.com" , uaName : "HostTracker.com/1.0" , uaUrl : "http://host-tracker.com/" , uaCompany : "host-tracker.com " , uaCompanyUrl : "" , uaIcon : "bot_HostTracker.com.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=HostTracker.com" } } , 3236 : { userAgent : "Mozilla/5.0 (compatible; AportWorm/3.2; +http://www.aport.ru/help)" , metadata : { uaFamily : "AportWorm" , uaName : "AportWorm/3.2" , uaUrl : "http://www.aport.ru/help/" , uaCompany : "Golden Telecom" , uaCompanyUrl : "http://goldentelecom.ru/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=AportWorm" } } , 3238 : { userAgent : "yacybot (i386 Linux 2.6.30-2-686; java 1.6.0_0; SystemV/en) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 3292 : { userAgent : "Karneval-Bot (Version: 1.06, powered by www.karnevalsuchmaschine.de +http://www.karnevalsuchmaschine.de/bot.html)" , metadata : { uaFamily : "Karneval-Bot" , uaName : "Karneval-Bot/1.06" , uaUrl : "http://www.karnevalsuchmaschine.de/zeige/bot.html" , uaCompany : "F\xf6deration Europ\xe4ischer Narren" , uaCompanyUrl : "http://www.fen-sued.de/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Karneval-Bot" } } , 3333 : { userAgent : "Mozilla/5.0 (compatible; dotSemantic/1.0; +http://www.dotsemantic.org)" , metadata : { uaFamily : "dotSemantic" , uaName : "dotSemantic/1.0" , uaUrl : "http://www.dotsemantic.org" , uaCompany : "dotSemantic Projekt" , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=dotSemantic" } } , 3379 : { userAgent : "Mozilla/5.0 (compatible; spbot/1.0; +http://www.seoprofiler.com/bot/ )" , metadata : { uaFamily : "spbot" , uaName : "spbot/1.0" , uaUrl : "http://www.seoprofiler.com/bot/" , uaCompany : "Axandra GmbH" , uaCompanyUrl : "http://www.axandra.com/" , uaIcon : "bot_spbot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=spbot" } } , 3398 : { userAgent : "L.webis/0.44 (http://webalgo.iit.cnr.it/index.php?pg=lwebis)" , metadata : { uaFamily : "L.webis" , uaName : "L.webis/0.44" , uaUrl : "http://webalgo.iit.cnr.it/index.php?pg=lwebis" , uaCompany : "Institute of Informatics and Telematics (IIT)" , uaCompanyUrl : "http://www.iit.cnr.it/" , uaIcon : "bot_L.webis.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=L.webis" } } , 3409 : { userAgent : "Cityreview Robot (+http://www.cityreview.org/crawler/)" , metadata : { uaFamily : "cityreview" , uaName : "cityreview" , uaUrl : "http://www.cityreview.org/crawler/" , uaCompany : "SISTRIX GmbH" , uaCompanyUrl : "http://www.sistrix.com/" , uaIcon : "bot_cityreview.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=cityreview" } } , 3415 : { userAgent : " Ruky - Roboter ( Version : 1.06 , powered by www . ruky . de + http : //w
uaInfoUrl : "/list-of-ua/bot-detail?bot=findlinks" } } , 5278 : { userAgent : "yacybot (amd64 Windows 7 6.1; java 1.6.0_18; Europe/de) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 5280 : { userAgent : "Mozilla/5.0 (compatible; MetamojiCrawler/1.0; +http://www.metamoji.com/jp/crawler.html" , metadata : { uaFamily : "MetamojiCrawler" , uaName : "MetamojiCrawler/1.0" , uaUrl : "http://www.metamoji.com/jp/crawler.html" , uaCompany : "MetaMoJi Corporation" , uaCompanyUrl : "http://www.metamoji.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MetamojiCrawler" } } , 5281 : { userAgent : "yacybot (amd64 Windows 7 6.1; java 1.6.0_21; Europe/fr) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 5292 : { userAgent : "findlinks/1.1.6-beta4 (+http://wortschatz.uni-leipzig.de/findlinks/)" , metadata : { uaFamily : "findlinks" , uaName : "findlinks/1.1.6-beta4" , uaUrl : "http://wortschatz.uni-leipzig.de/findlinks/" , uaCompany : "Universit\xe4t Leipzig" , uaCompanyUrl : "http://www.uni-leipzig.de/" , uaIcon : "bot_findlinks.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=findlinks" } } , 5302 : { userAgent : "HuaweiSymantecSpider/1.0+DSE-support@huaweisymantec.com+(compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR ; http://www.huaweisymantec.com/en/IRL/spider)" , metadata : { uaFamily : "HuaweiSymantecSpider" , uaName : "HuaweiSymantecSpider/1.0" , uaUrl : "http://www.huaweisymantec.com/en/IRL/spider/" , uaCompany : "Huawei Symantec Technologies Co.,Ltd." , uaCompanyUrl : "http://www.huaweisymantec.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=HuaweiSymantecSpider" } } , 5311 : { userAgent : "Mozilla/5.0 (compatible; 008/0.83; http://www.80legs.com/webcrawler.html;) Gecko/2008032620" , metadata : { uaFamily : "80legs" , uaName : "80legs/0.83 b" , uaUrl : "http://www.80legs.com/webcrawler.html" , uaCompany : "Computational Crawling, LP" , uaCompanyUrl : "http://compucrawl.com/" , uaIcon : "bot_80legs.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=80legs" } } , 5322 : { userAgent : "yacybot (amd64 Linux 2.6.31-22-server; java 1.6.0_18; Asia/en) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 5352 : { userAgent : "findlinks/1.1.6-beta5 (+http://wortschatz.uni-leipzig.de/findlinks/)" , metadata : { uaFamily : "findlinks" , uaName : "findlinks/1.1.6-beta5" , uaUrl : "http://wortschatz.uni-leipzig.de/findlinks/" , uaCompany : "Universit\xe4t Leipzig" , uaCompanyUrl : "http://www.uni-leipzig.de/" , uaIcon : "bot_findlinks.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=findlinks" } } , 5357 : { userAgent : "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" , metadata : { uaFamily : "bingbot" , uaName : "bingbot/2.0" , uaUrl : "http://www.bing.com/webmaster/help/which-crawlers-does-bing-use-8c184ec0" , uaCompany : "Microsoft Corporation" , uaCompanyUrl : "http://www.microsoft.com/" , uaIcon : "bot_msnbot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=bingbot" } } , 5360 : { userAgent : "PostPost/1.0 (+http://postpo.st/crawlers)" , metadata : { uaFamily : "PostPost" , uaName : "PostPost/1.0" , uaUrl : "http://postpost.com/crawlers" , uaCompany : "Boathouse group" , uaCompanyUrl : "http://www.boathouseinc.com/" , uaIcon : "bot_PostPost.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=PostPost" } } , 5361 : { userAgent : "WebWatch/Robot_txtChecker" , metadata : { uaFamily : "WebWatch/Robot_txtChecker" , uaName : "WebWatch/Robot_txtChecker" , uaUrl : "http://www.ukoln.ac.uk/web-focus/webwatch/services/robots-txt/" , uaCompany : "UKOLN" , uaCompanyUrl : "http://www.ukoln.ac.uk/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=WebWatch/Robot_txtChecker" } } , 5362 : { userAgent : "Robots_Tester_http_www.searchenginepromotionhelp.com" , metadata : { uaFamily : "Robots_Tester" , uaName : "Robots_Tester" , uaUrl : " http : //www.searchenginepromotionhelp.com/m
uaIcon : "bot_baiduspider.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Baiduspider" } } , 6404 : { userAgent : "Mozilla/5.0 (compatible; AhrefsBot/1.0; +http://ahrefs.com/robot/)" , metadata : { uaFamily : "AhrefsBot" , uaName : "AhrefsBot/1.0" , uaUrl : "http://ahrefs.com/robot/" , uaCompany : "Ahrefs.com" , uaCompanyUrl : "http://ahrefs.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=AhrefsBot" } } , 6436 : { userAgent : "Mozilla/5.0 (compatible; MojeekBot/0.2; http://www.mojeek.com/bot.html)" , metadata : { uaFamily : "MojeekBot" , uaName : "MojeekBot/0.2" , uaUrl : "http://www.mojeek.com/bot.html" , uaCompany : "Mojeek Ltd." , uaCompanyUrl : "http://www.mojeek.com/" , uaIcon : "bot_MojeekBot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=MojeekBot" } } , 6506 : { userAgent : "SEOENGWorldBot/1.0 (+http://www.seoengine.com/seoengbot.htm)" , metadata : { uaFamily : "SEOENGBot" , uaName : "SEOENGBot/1.0" , uaUrl : "http://www.seoengine.com/seoengbot.htm" , uaCompany : "SEO Engine" , uaCompanyUrl : "http://www.seoengine.com/" , uaIcon : "bot_SEOENGBot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=SEOENGBot" } } , 6514 : { userAgent : "Mozilla/5.0 (compatible; socketcrawler; http://nlp.fi.muni.cz/projects/biwec/)" , metadata : { uaFamily : "biwec" , uaName : "biwec" , uaUrl : "http://nlp.fi.muni.cz/projects/biwec/" , uaCompany : "Centre for Natural Language Processing" , uaCompanyUrl : "http://muni.cz/fi/335300?lang=en" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=biwec" } } , 6515 : { userAgent : "Wotbox/2.0 (bot@wotbox.com; http://www.wotbox.com)" , metadata : { uaFamily : "Wotbox" , uaName : "Wotbox/2.0" , uaUrl : "http://www.wotbox.com/bot/" , uaCompany : "Wotbox Team" , uaCompanyUrl : "http://www.wotbox.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Wotbox" } } , 6578 : { userAgent : "Mozilla/5.0 (compatible; Thumbshots.ru; +http://thumbshots.ru/bot) Firefox/3" , metadata : { uaFamily : "Thumbshots.ru" , uaName : "Thumbshots.ru" , uaUrl : "http://thumbshots.ru/bot" , uaCompany : "Sonorth Technologies" , uaCompanyUrl : "http://www.sonorth.com/tech/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Thumbshots.ru" } } , 6583 : { userAgent : "JikeSpider Mozilla/5.0 (compatible; JikeSpider; +http://shoulu.jike.com/spider.html)" , metadata : { uaFamily : "JikeSpider" , uaName : "JikeSpider" , uaUrl : "http://shoulu.jike.com/spider.html" , uaCompany : "jike.com" , uaCompanyUrl : "http://www.jike.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=JikeSpider" } } , 6592 : { userAgent : "Aboundex/0.2 (http://www.aboundex.com/crawler/)" , metadata : { uaFamily : "Aboundexbot" , uaName : "Aboundexbot/0.2" , uaUrl : "http://www.aboundex.com/crawler/" , uaCompany : "Aboundex.com" , uaCompanyUrl : "http://www.aboundex.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Aboundexbot" } } , 6598 : { userAgent : "Mozilla/5.0 (compatible; SEOkicks-Robot +http://www.seokicks.de/robot.html)" , metadata : { uaFamily : "SEOkicks-Robot" , uaName : "SEOkicks-Robot" , uaUrl : "http://www.seokicks.de/robot.html" , uaCompany : "Torsten R\xfcckert Internetdienstleistungen" , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=SEOkicks-Robot" } } , 6603 : { userAgent : "Y!J-BRW/1.0 crawler (http://help.yahoo.co.jp/help/jp/search/indexing/indexing-15.html)" , metadata : { uaFamily : "Yahoo! JAPAN" , uaName : "Y!J-BRW/1.0" , uaUrl : "http://help.yahoo.co.jp/help/jp/search/indexing/indexing-15.html" , uaCompany : "Yahoo! Inc" , uaCompanyUrl : "http://www.yahoo.com/" , uaIcon : "bot_yahoo!slurp.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Yahoo! JAPAN" } } , 6612 : { userAgent : "The Lemur Web Crawler/Nutch-1.3 (Lemur Web Crawler; http://boston.lti.cs.cmu.edu/crawler_12/; admin@lemurproject.org)" , metadata : { uaFamily : "LemurWebCrawler" , uaName : "LemurWebCrawler" , uaUrl : "http://boston.lti.cs.cmu.edu/crawler_12/" , uaCompany : "Language Technologies Institute" , uaCompanyUrl : "http://www.lti.cs.cmu.edu/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=LemurWebCrawler" } } , 6625 : { userAgent : "LapozzBot/1.5 (+http://robot.lapozz.hu) " , metadata : { uaFamily : "LapozzBot" , uaName : "LapozzBot/1.5" , uaUrl : "http://robot.lapozz.hu/" , uaCompany : "lapozz.hu" , uaCompanyUrl : "http://www.lapozz.hu/" , uaIcon : "bot_lapozzbot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=LapozzBot" } } , 6630 : { userAgent : " CovarioIDS / 1.1 ( http : //www.covario.com/ids; support at covario
metadata : { uaFamily : "heritrix" , uaName : "heritrix/3.1.1" , uaUrl : "http://www.archive.org/details/archive.org_bot" , uaCompany : "Internet Archive" , uaCompanyUrl : "" , uaIcon : "bot_heritrix.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=heritrix" } } , 7230 : { userAgent : "AddThis.com robot tech.support@clearspring.com" , metadata : { uaFamily : "AddThis.com" , uaName : "AddThis.com robot" , uaUrl : "" , uaCompany : "Clearspring Technologies, Inc." , uaCompanyUrl : "http://www.clearspring.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=AddThis.com" } } , 7238 : { userAgent : "Mozilla/5.0 (compatible; Netseer crawler/2.0; +http://www.netseer.com/crawler.html; crawler@netseer.com)" , metadata : { uaFamily : "Netseer" , uaName : "Netseer crawler/2.0" , uaUrl : "http://www.netseer.com/crawler.html" , uaCompany : "NetSeer, Inc." , uaCompanyUrl : "http://www.netseer.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Netseer" } } , 7243 : { userAgent : "Mozilla/5.0 (compatible; EventGuruBot/1.0; +http://www.eventguru.com/spider.html)" , metadata : { uaFamily : "EventGuruBot" , uaName : "EventGuruBot/1.0" , uaUrl : "http://www.eventguru.com/spider.html" , uaCompany : "Matt Wells" , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=EventGuruBot" } } , 7252 : { userAgent : "yacybot (freeworld/global; amd64 Linux 2.6.26-2-amd64; java 1.6.0_18; Europe/de) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 7253 : { userAgent : "yacybot (freeworld/global; amd64 Windows Server 2008 6.0; java 1.7.0_03; Europe/en) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 7258 : { userAgent : "SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" , metadata : { uaFamily : "Googlebot" , uaName : "Googlebot-Mobile/2.1" , uaUrl : "http://googlewebmastercentral.blogspot.com/2011/12/introducing-smartphone-googlebot-mobile.html" , uaCompany : "Google Inc." , uaCompanyUrl : "http://www.google.com/" , uaIcon : "bot_googlebot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Googlebot" } } , 7259 : { userAgent : "DoCoMo/2.0 N905i(c100;TB;W24H16) (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" , metadata : { uaFamily : "Googlebot" , uaName : "Googlebot-Mobile/2.1" , uaUrl : "http://googlewebmastercentral.blogspot.com/2011/12/introducing-smartphone-googlebot-mobile.html" , uaCompany : "Google Inc." , uaCompanyUrl : "http://www.google.com/" , uaIcon : "bot_googlebot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Googlebot" } } , 7260 : { userAgent : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" , metadata : { uaFamily : "Googlebot" , uaName : "Googlebot-Mobile/2.1" , uaUrl : "http://googlewebmastercentral.blogspot.com/2011/12/introducing-smartphone-googlebot-mobile.html" , uaCompany : "Google Inc." , uaCompanyUrl : "http://www.google.com/" , uaIcon : "bot_googlebot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Googlebot" } } , 7263 : { userAgent : "yacybot (freeworld/global; amd64 Windows 7 6.1; java 1.6.0_24; Europe/de) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 7265 : { userAgent : "Acoon v4.10.5 (www.acoon.de)" , metadata : { uaFamily : "AcoonBot" , uaName : "Acoon v4.10.5" , uaUrl : "http://www.acoon.de/robot.asp" , uaCompany : "Acoon GmbH" , uaCompanyUrl : "http://www.acoon.de/" , uaIcon : "bot_Acoon.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=AcoonBot" } } , 7267 : { userAgent : "SemrushBot/0.92" , metadata : { uaFamily : "SemrushBot" , uaName : "SemrushBot/0.92" , uaUrl : "http://www.semrush.com/bot.html" , uaCompany : "SEOQuake Team" , uaCompanyUrl : "http://www.seoquaketeam.com/" , uaIcon : "bot.png" ,
} } , 7671 : { userAgent : "Sogou Web Spider" , metadata : { uaFamily : "sogou spider" , uaName : "Sogou web spider" , uaUrl : "http://www.sogou.com/docs/help/webmasters.htm#07" , uaCompany : "SOGOU.COM" , uaCompanyUrl : "http://www.sogou.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=sogou spider" } } , 7675 : { userAgent : "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.0; trendictionbot0.5.0; trendiction search; http://www.trendiction.de/bot; please let us know of any problems; web at trendiction.com) Gecko/20071127 Firefox/3.0.0.11" , metadata : { uaFamily : "trendictionbot " , uaName : "trendictionbot0.5.0" , uaUrl : "http://www.trendiction.de/bot" , uaCompany : "Trendiction S.A." , uaCompanyUrl : "http://www.trendiction.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=trendictionbot " } } , 7676 : { userAgent : "ichiro/3.0 (http://search.goo.ne.jp/option/use/sub4/sub4-1/)" , metadata : { uaFamily : "ichiro" , uaName : "ichiro/3.0" , uaUrl : "http://search.goo.ne.jp/option/use/sub4/sub4-1/" , uaCompany : "NTT-Resonant Inc." , uaCompanyUrl : "http://www.nttr.co.jp/" , uaIcon : "bot_ichiro.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=ichiro" } } , 7696 : { userAgent : "bot-pge.chlooe.com/1.0.0 (+http://www.chlooe.com/)" , metadata : { uaFamily : "bot-pge.chlooe.com" , uaName : "bot-pge.chlooe.com/1.0.0" , uaUrl : "http://bot-pge.chlooe.com/" , uaCompany : "Chlooe.com" , uaCompanyUrl : "http://www.chlooe.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=bot-pge.chlooe.com" } } , 7697 : { userAgent : "Mozilla/5.0(compatible; Sosospider/2.0; +http://help.soso.com/webspider.htm)" , metadata : { uaFamily : "Sosospider" , uaName : "Sosospider/2.0" , uaUrl : "http://help.soso.com/webspider.htm" , uaCompany : "Tencent, Inc." , uaCompanyUrl : "http://www.tencent.com/" , uaIcon : "bot_soso.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Sosospider" } } , 7717 : { userAgent : "Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)" , metadata : { uaFamily : "GrapeshotCrawler" , uaName : "GrapeshotCrawler/2.0" , uaUrl : "http://www.grapeshot.co.uk/crawler.php" , uaCompany : "Grapeshot Limited" , uaCompanyUrl : "http://www.grapeshot.co.uk/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=GrapeshotCrawler" } } , 7718 : { userAgent : "Mozilla/5.0 (compatible; grapeFX/0.9; crawler@grapeshot.co.uk" , metadata : { uaFamily : "GrapeshotCrawler" , uaName : "grapeFX/0.9" , uaUrl : "http://www.grapeshot.co.uk/crawler.php" , uaCompany : "Grapeshot Limited" , uaCompanyUrl : "http://www.grapeshot.co.uk/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=GrapeshotCrawler" } } , 7726 : { userAgent : "Mozilla/5.0 (compatible; Infohelfer/1.3.0; +http://www.infohelfer.de/crawler.php)" , metadata : { uaFamily : "Infohelfer" , uaName : "Infohelfer/1.3.0" , uaUrl : "http://www.infohelfer.de/crawler.php" , uaCompany : "ITam GmbH" , uaCompanyUrl : "http://www.itam-gmbh.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Infohelfer" } } , 7727 : { userAgent : "coccoc/1.0 (http://help.coccoc.vn/)" , metadata : { uaFamily : "coccoc" , uaName : "coccoc/1.0" , uaUrl : "http://help.coccoc.com/" , uaCompany : "Coc Coc" , uaCompanyUrl : "http://coccoc.vn/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=coccoc" } } , 7729 : { userAgent : "yacybot (freeworld/global; amd64 Windows 7 6.1; java 1.6.0_25; Europe/de) http://yacy.net/bot.html" , metadata : { uaFamily : "yacybot" , uaName : "yacybot" , uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 7732 : { userAgent : "Bad-Neighborhood Link Analyzer (http://www.bad-neighborhood.com/)" , metadata : { uaFamily : "Bad-Neighborhood" , uaName : "Bad-Neighborhood Link Analyzer" , uaUrl : "http://www.bad-neighborhood.com/text-link-tool.htm" , uaCompany : "Michael VanDeMar" , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Bad-Neighborhood" } } , 7733 : { userAgent : "Bad Neighborhood Header Detector (http://www.bad-neighborhood.com/header_detector.php)" , metadata : { uaFamily : "Bad-Neighborhood" , uaName : "Bad Neighborhood Header Detector" , uaUrl : "http://www.bad-neighborhood.com/header_detector.php" , uaCompany : "Michael VanDeMar" , uaCompanyUrl : "" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Bad-Neighborhood" } } , 7747 : { userAgent : " Whoismindbot / 1.0 ( + htt
uaUrl : "http://yacy.net/bot.html" , uaCompany : "Michael Christen" , uaCompanyUrl : "" , uaIcon : "bot_yacybot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=yacybot" } } , 9717 : { userAgent : "Sogou web spider/4.0l-2m!" , metadata : { uaFamily : "sogou spider" , uaName : "Sogou web spider/4.0l-2m!" , uaUrl : "http://www.sogou.com/docs/help/webmasters.htm#07" , uaCompany : "SOGOU.COM" , uaCompanyUrl : "http://www.sogou.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=sogou spider" } } , 9737 : { userAgent : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko; Google Web Preview) Chrome/22.0.1229 Safari/537.4" , metadata : { uaFamily : "Googlebot" , uaName : "Google Web Preview" , uaUrl : "http://support.google.com/webmasters/bin/answer.py?hl=en&answer=1062498" , uaCompany : "Google Inc." , uaCompanyUrl : "http://www.google.com/" , uaIcon : "bot_googlebot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Googlebot" } } , 9781 : { userAgent : "Mozilla/5.0 (compatible; uMBot-FC/1.0; mailto: crawling@ubermetrics-technologies.com)" , metadata : { uaFamily : "uMBot" , uaName : "uMBot-FC/1.0" , uaUrl : "" , uaCompany : "uberMetrics Technologies GmbH" , uaCompanyUrl : "http://www.ubermetrics-technologies.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=uMBot" } } , 9784 : { userAgent : "Mozilla/5.0 (compatible; coccoc/1.0; +http://help.coccoc.com/)" , metadata : { uaFamily : "coccoc" , uaName : "coccoc/1.0" , uaUrl : "http://help.coccoc.com/" , uaCompany : "Coc Coc" , uaCompanyUrl : "http://coccoc.vn/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=coccoc" } } , 9832 : { userAgent : "Mozilla/5.0 (compatible; Mozilla; +http://wiki.github.com/bixo/bixo/bixocrawler; bixo-dev@yahoogroups.com)" , metadata : { uaFamily : "bixocrawler" , uaName : "bixocrawler" , uaUrl : "http://wiki.github.com/bixo/bixo/bixocrawler" , uaCompany : "Bixo Labs" , uaCompanyUrl : "http://openbixo.org/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=bixocrawler" } } , 9839 : { userAgent : "Mozilla/5.0 (compatible; aiHitBot/2.7; +http://www.aihit.com/)" , metadata : { uaFamily : "aiHitBot" , uaName : "aiHitBot/2.7" , uaUrl : "" , uaCompany : "aiHit Ltd" , uaCompanyUrl : "http://aihit.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=aiHitBot" } } , 9852 : { userAgent : "Mozilla/5.0 (compatible; GigaBot/1.0; +http://www.gigablast.com/ )" , metadata : { uaFamily : "Gigabot" , uaName : "Gigabot/1.0" , uaUrl : "http://www.gigablast.com/spider.html" , uaCompany : "Gigablast Inc" , uaCompanyUrl : "http://www.gigablast.com/" , uaIcon : "bot_gigabot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Gigabot" } } , 9868 : { userAgent : "CirrusExplorer/1.1 (http://www.cireu.com/explorer.php)" , metadata : { uaFamily : "CirrusExplorer" , uaName : "CirrusExplorer/1.1" , uaUrl : "http://www.cireu.com/explorer.php" , uaCompany : "cireu.com" , uaCompanyUrl : "http://www.cireu.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=CirrusExplorer" } } , 9874 : { userAgent : "Mozilla/5.0 (compatible; uMBot-LN/1.0; mailto: crawling@ubermetrics-technologies.com)" , metadata : { uaFamily : "uMBot" , uaName : "uMBot-LN/1.0" , uaUrl : "" , uaCompany : "uberMetrics Technologies GmbH" , uaCompanyUrl : "http://www.ubermetrics-technologies.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=uMBot" } } , 9875 : { userAgent : "Crowsnest/0.5 (+http://www.crowsnest.tv/)" , metadata : { uaFamily : "Crowsnest" , uaName : "Crowsnest/0.5" , uaUrl : "" , uaCompany : "Gocro, Inc." , uaCompanyUrl : "http://www.gocro.jp/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=Crowsnest" } } , 9877 : { userAgent : "QuerySeekerSpider ( http://queryseeker.com/bot.html )" , metadata : { uaFamily : "QuerySeekerSpider" , uaName : "QuerySeekerSpider" , uaUrl : "http://queryseeker.com/bot.html" , uaCompany : "QueryEye Inc." , uaCompanyUrl : "http://queryeye.com/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=QuerySeekerSpider" } } , 9905 : { userAgent : "ownCloud Server Crawler" , metadata : { uaFamily : "ownCloud Server Crawler" , uaName : "ownCloud Server Crawler" , uaUrl : "" , uaCompany : "ownCloud comunity" , uaCompanyUrl : "http://owncloud.org/" , uaIcon : "bot.png" , uaInfoUrl : "/list-of-ua/bot-detail?bot=ownCloud Server Crawler" } } , 9918 : { userAgent : "Mozilla/5.0 (compatible; rogerBot/1.0; UrlCrawler; http://www.seomoz.org/dp/rogerbot)" , metadata : { uaFamily : "rogerbot" , uaName : "rogerbot/1.0" , uaUrl : " http : //moz.com/help/pro/what-is-roge
} , os : { 1 : { osFamily : "Windows" , osName : "Windows XP" , osUrl : "http://en.wikipedia.org/wiki/Windows_XP" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windowsxp.png" } , 2 : { osFamily : "Windows" , osName : "Windows 2000" , osUrl : "http://en.wikipedia.org/wiki/Windows_2000" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windows.png" } , 3 : { osFamily : "Windows" , osName : "Windows 2003 Server" , osUrl : "http://en.wikipedia.org/wiki/Windows_2003" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windowsxp.png" } , 4 : { osFamily : "Windows" , osName : "Windows 95" , osUrl : "http://en.wikipedia.org/wiki/Windows_95" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windows.png" } , 5 : { osFamily : "Windows" , osName : "Windows 98" , osUrl : "http://en.wikipedia.org/wiki/Windows_98" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windows.png" } , 6 : { osFamily : "Windows" , osName : "Windows 3.x" , osUrl : "http://en.wikipedia.org/wiki/Windows_3.x" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windows.png" } , 7 : { osFamily : "Windows" , osName : "Windows CE" , osUrl : "http://en.wikipedia.org/wiki/Windows_CE" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windowsce.png" } , 8 : { osFamily : "Windows" , osName : "Windows ME" , osUrl : "http://en.wikipedia.org/wiki/Windows_me" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windows.png" } , 9 : { osFamily : "Windows" , osName : "Windows Vista" , osUrl : "http://en.wikipedia.org/wiki/Windows_Vista" , osCompany : "Microsoft Corporation." , osCompanyUrl : "http://www.microsoft.com/" , osIcon : "windowsvista.png" } , 10 : { osFamily : "JVM" , osName : "JVM (Platform Micro Edition)" , osUrl : "http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition" , osCompany : "Sun Microsystems, Inc." , osCompanyUrl : "http://en.wikipedia.org/wiki/Sun_Microsystems" , osIcon : "java.png" } , 11 : { osFamily : "Linux" , osName : "Linux (CentOS)" , osUrl : "http://www.centos.org/" , osCompany : "CentOS Project" , osCompanyUrl : "http://www.centos.org/" , osIcon : "linux_centos.png" } , 12 : { osFamily : "Linux" , osName : "Linux (Ubuntu)" , osUrl : "http://www.ubuntu.com/" , osCompany : "Canonical Ltd." , osCompanyUrl : "http://www.canonical.com/" , osIcon : "linux_ubuntu.png" } , 13 : { osFamily : "Linux" , osName : "Linux (Debian)" , osUrl : "http://www.debian.org/" , osCompany : "Software in the Public Interest, Inc." , osCompanyUrl : "http://www.spi-inc.org/" , osIcon : "linux_debian.png" } , 14 : { osFamily : "Linux" , osName : "Linux (Fedora)" , osUrl : "http://fedoraproject.org/" , osCompany : "Red Hat, Inc." , osCompanyUrl : "http://www.redhat.com/" , osIcon : "linux_fedora.png" } , 15 : { osFamily : "Linux" , osName : "Linux (Gentoo)" , osUrl : "http://www.gentoo.org/" , osCompany : "Gentoo Foundation, Inc." , osCompanyUrl : "http://www.gentoo.org/foundation/en/" , osIcon : "linux_gentoo.png" } , 16 : { osFamily : "Linux" , osName : "Linux (Linspire)" , osUrl : "http://en.wikipedia.org/wiki/Linspire" , osCompany : "Linspire, Inc." , osCompanyUrl : "http://www.linspire.com/" , osIcon : "linux_linspire.png" } , 17 : { osFamily : "Linux" , osName : "Linux (Mandriva)" , osUrl : "http://www.mandriva.com/" , osCompany : "" , osCompanyUrl : "" , osIcon : "linux_mandriva.png" } , 18 : { osFamily : "Linux" , osName : "Linux (RedHat)" , osUrl : "http://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux" , osCompany : "Red Hat, Inc." , osCompanyUrl : "http://www.redhat.com/" , osIcon : "linux_redhat.png" } , 19 : { osFamily : "Linux" , osName : "Linux" , osUrl : "http://en.wikipedia.org/wiki/Linux" , osCompany : "" , osCompanyUrl : "" , osIcon : "linux.png" } , 20 : { osFamily : "Linux" , osName : "Linux (Slackware)" , osUrl : "http://www.slackware.com/" , osCompany : "Slackware Linux, Inc." , osCompanyUrl : "" , osIcon : "linux_slackware.png" } , 21 : { osFamily : "Linux" , osName : "Linux (Kanotix)" , osUrl : "http://kanotix.com/" , osCompany : "" , osCompanyUrl : "" , osIcon : "linux_kanotix.png" } , 22 : { osFamily : "Linux" , osName : "Linux (SUSE)" , osUrl : "http://www.suse.com/" , osCompany : "Novell, Inc." , osCompanyUrl : "http://www.novell.com/home/" , osIcon : "linux_suse.png" } , 23 : { osFamily : "Linux" , osName : "Linux (Knoppix)" , osUrl : "http://knoppix.net/" , osCompany : "Klaus Knopper" , osCompanyUrl : " http : //w
uaCompany : "Fenrir Inc." , uaCompanyUrl : "http://www.fenrir-inc.com/" , uaIcon : "sleipnir.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Sleipnir" } } , 61 : { typeId : "0" , metadata : { uaFamily : "Swiftfox" , uaUrl : "http://www.getswiftfox.com/" , uaCompany : "Jason Halme" , uaCompanyUrl : "" , uaIcon : "swiftfox.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Swiftfox" } } , 62 : { typeId : "1" , metadata : { uaFamily : "Teleport Pro" , uaUrl : "http://www.tenmax.com/teleport/pro/home.htm" , uaCompany : "Tennyson Maxwell Information Systems, Inc." , uaCompanyUrl : "http://www.tenmax.com/" , uaIcon : "teleportpro.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Teleport Pro" } } , 71 : { typeId : "1" , metadata : { uaFamily : "WebCopier" , uaUrl : "http://www.maximumsoft.com/products/wc_index.html" , uaCompany : "MaximumSoft Corp." , uaCompanyUrl : "http://www.maximumsoft.com/" , uaIcon : "webcopier.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=WebCopier" } } , 74 : { typeId : "0" , metadata : { uaFamily : "Phaseout" , uaUrl : "http://www.phaseout.net/" , uaCompany : "PhaseOut.net" , uaCompanyUrl : "http://www.phaseout.net/" , uaIcon : "phaseout.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Phaseout" } } , 79 : { typeId : "4" , metadata : { uaFamily : "Thunderbird" , uaUrl : "http://www.mozilla.com/en-US/thunderbird/" , uaCompany : "Mozilla Foundation" , uaCompanyUrl : "http://www.mozilla.org/" , uaIcon : "thunderbird.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Thunderbird" } } , 81 : { typeId : "3" , metadata : { uaFamily : "Doris" , uaUrl : "http://www.anygraaf.fi/browser/indexe.htm" , uaCompany : "Anygraaf" , uaCompanyUrl : "http://www.anygraaf.fi/" , uaIcon : "doris.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Doris" } } , 82 : { typeId : "0" , metadata : { uaFamily : "Enigma browser" , uaUrl : "http://www.suttondesigns.com/" , uaCompany : "Advanced Search Technologies, Inc." , uaCompanyUrl : "http://www.advancedsearchcorp.com/" , uaIcon : "enigmabrowser.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Enigma browser" } } , 85 : { typeId : "5" , metadata : { uaFamily : "Jakarta Commons-HttpClient" , uaUrl : "http://jakarta.apache.org/commons/httpclient/" , uaCompany : "Apache Software Foundation" , uaCompanyUrl : "http://www.apache.org/" , uaIcon : "jakarta.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Jakarta Commons-HttpClient" } } , 86 : { typeId : "5" , metadata : { uaFamily : "cURL" , uaUrl : "http://curl.haxx.se/" , uaCompany : "team Haxx" , uaCompanyUrl : "http://www.haxx.se/" , uaIcon : "curl.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=cURL" } } , 87 : { typeId : "0" , metadata : { uaFamily : "Amaya" , uaUrl : "http://www.w3.org/Amaya/" , uaCompany : "World Wide Web Consortium" , uaCompanyUrl : "http://www.w3.org/" , uaIcon : "amaya.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Amaya" } } , 88 : { typeId : "1" , metadata : { uaFamily : "GetRight" , uaUrl : "http://www.getright.com/" , uaCompany : "Headlight Software, Inc." , uaCompanyUrl : "http://www.headlightinc.com/" , uaIcon : "getright.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=GetRight" } } , 89 : { typeId : "0" , metadata : { uaFamily : "Off By One" , uaUrl : "http://offbyone.com/" , uaCompany : "Home Page Software Inc." , uaCompanyUrl : "http://homepagesw.com/" , uaIcon : "offbyone.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Off By One" } } , 90 : { typeId : "5" , metadata : { uaFamily : "Python-urllib" , uaUrl : "http://www.python.org/doc/current/lib/module-urllib.html" , uaCompany : "Python Software Foundation" , uaCompanyUrl : "http://www.python.org/psf/" , uaIcon : "pythonurllib.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Python-urllib" } } , 91 : { typeId : "0" , metadata : { uaFamily : "w3m" , uaUrl : "http://w3m.sourceforge.net/" , uaCompany : "Sakamoto Hironori" , uaCompanyUrl : "http://www2u.biglobe.ne.jp/%7Ehsaka/" , uaIcon : "w3m.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=w3m" } } , 93 : { typeId : "1" , metadata : { uaFamily : "WebZIP" , uaUrl : "http://www.spidersoft.com/webzip/" , uaCompany : "Spidersoft" , uaCompanyUrl : "http://www.spidersoft.com/" , uaIcon : "webzip.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=WebZIP" } } , 94 : { typeId : "0" , metadata : { uaFamily : "ICE browser" , uaUrl : "http://www.icesoft.com/products/icebrowser.html" , uaCompany : "ICEsoft Technologies Inc." , uaCompanyUrl : "http://www.icesoft.com/" , uaIcon : "icebrowser.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=ICE browser" } } , 96 : { typeId : "0" , metadata : { uaFamily : " IceApe
uaIcon : "newsbreak.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=NewsBreak" } } , 238 : { typeId : "20" , metadata : { uaFamily : "LinkbackPlugin for Laconica" , uaUrl : "http://laconi.ca/" , uaCompany : "Laconica Developer Community" , uaCompanyUrl : "http://laconi.ca/trac/wiki/DeveloperCommunity" , uaIcon : "laconica.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=LinkbackPlugin for Laconica" } } , 239 : { typeId : "20" , metadata : { uaFamily : "Microsoft WebDAV client" , uaUrl : "" , uaCompany : "Microsoft Corporation." , uaCompanyUrl : "http://www.microsoft.com/" , uaIcon : "webdav.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Microsoft WebDAV client" } } , 240 : { typeId : "20" , metadata : { uaFamily : "GnomeVFS" , uaUrl : "http://developer.gnome.org/doc/API/2.0/gnome-vfs-2" , uaCompany : "The GNOME Project" , uaCompanyUrl : "http://www.gnome.org/" , uaIcon : "webdav.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=GnomeVFS" } } , 241 : { typeId : "0" , metadata : { uaFamily : "Uzbl" , uaUrl : "http://www.uzbl.org/" , uaCompany : "" , uaCompanyUrl : "" , uaIcon : "uzbl.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Uzbl" } } , 242 : { typeId : "10" , metadata : { uaFamily : "Cynthia" , uaUrl : "http://www.contentquality.com/" , uaCompany : "HiSoftware Inc." , uaCompanyUrl : "http://www.hisoftware.com/" , uaIcon : "cynthia.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Cynthia" } } , 243 : { typeId : "15" , metadata : { uaFamily : "Sage" , uaUrl : "http://sage.mozdev.org" , uaCompany : "Peter Andrews" , uaCompanyUrl : "http://petea.org/" , uaIcon : "sage.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Sage" } } , 244 : { typeId : "18" , metadata : { uaFamily : "Banshee" , uaUrl : "http://banshee-project.org/" , uaCompany : "Novell, Inc." , uaCompanyUrl : "http://www.novell.com/" , uaIcon : "banshee.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Banshee" } } , 245 : { typeId : "0" , metadata : { uaFamily : "Wyzo" , uaUrl : "http://www.wyzo.com/" , uaCompany : "Radical Software Ltd." , uaCompanyUrl : "http://www.radicalsoft.com/" , uaIcon : "wyzo.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Wyzo" } } , 246 : { typeId : "15" , metadata : { uaFamily : "RSSOwl" , uaUrl : "http://www.rssowl.org/" , uaCompany : "Benjamin Pasero" , uaCompanyUrl : "" , uaIcon : "rssowl.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=RSSOwl" } } , 247 : { typeId : "0" , metadata : { uaFamily : "ABrowse" , uaUrl : "http://en.wikipedia.org/wiki/ABrowse" , uaCompany : "Kurt Skauen" , uaCompanyUrl : "http://www.syllable.org/" , uaIcon : "abrowse.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=ABrowse" } } , 248 : { typeId : "20" , metadata : { uaFamily : "Funambol Outlook Sync Client" , uaUrl : "https://www.forge.funambol.org/download/" , uaCompany : "Funambol, Inc." , uaCompanyUrl : "http://funambol.com/" , uaIcon : "funambol-outlook.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Funambol Outlook Sync Client" } } , 249 : { typeId : "20" , metadata : { uaFamily : "Funambol Mozilla Sync Client" , uaUrl : "https://mozilla-plugin.forge.funambol.org/ " , uaCompany : "Carlo Codega" , uaCompanyUrl : "http://sazilla.blogspot.com" , uaIcon : "funambol-mozilla.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Funambol Mozilla Sync Client" } } , 250 : { typeId : "15" , metadata : { uaFamily : "RSS Menu" , uaUrl : "http://www.edot-studios.com/webgroups2/index.php?menu_item=212" , uaCompany : "e dot studios" , uaCompanyUrl : "http://www.edot-studios.com/" , uaIcon : "rss_menu.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=RSS Menu" } } , 251 : { typeId : "18" , metadata : { uaFamily : "foobar2000" , uaUrl : "http://www.foobar2000.org/" , uaCompany : "Peter Pawlowski" , uaCompanyUrl : "" , uaIcon : "foobar2000.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=foobar2000" } } , 252 : { typeId : "5" , metadata : { uaFamily : "GStreamer" , uaUrl : "http://gstreamer.freedesktop.org/" , uaCompany : "GStreamer community" , uaCompanyUrl : "http://gstreamer.freedesktop.org/" , uaIcon : "GStreamer.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=GStreamer" } } , 253 : { typeId : "20" , metadata : { uaFamily : "NetFront Mobile Content Viewer" , uaUrl : "http://www.access-company.com/products/mobile_solutions/netfrontmobile/contentviewer/index.html" , uaCompany : "ACCESS CO., LTD." , uaCompanyUrl : "http://www.access-company.com/" , uaIcon : "netfront.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=NetFront Mobile Content Viewer" } } , 254 : { typeId : "5" , metadata : { uaFamily : "PHP OpenID library" , uaUrl : " http : //openidenabled.
uaInfoUrl : "/list-of-ua/browser-detail?browser=Powermarks" } } , 374 : { typeId : "15" , metadata : { uaFamily : "Safari RSS reader" , uaUrl : "http://www.apple.com/safari/" , uaCompany : "Apple Inc." , uaCompanyUrl : "http://www.apple.com/" , uaIcon : "rss.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Safari RSS reader" } } , 375 : { typeId : "20" , metadata : { uaFamily : "Google Friend Connect" , uaUrl : "http://www.google.com/friendconnect/" , uaCompany : "Google Inc." , uaCompanyUrl : "http://www.google.com/" , uaIcon : "google_friend_connect.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Google Friend Connect" } } , 376 : { typeId : "15" , metadata : { uaFamily : "Feed Viewer" , uaUrl : "http://feedviewer.codeplex.com/" , uaCompany : "vasek7" , uaCompanyUrl : "http://www.codeplex.com/site/users/view/vasek7" , uaIcon : "rss.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Feed Viewer" } } , 377 : { typeId : "0" , metadata : { uaFamily : "RockMelt" , uaUrl : "http://www.rockmelt.com/" , uaCompany : "Rockmelt, Inc." , uaCompanyUrl : "http://www.rockmelt.com/" , uaIcon : "rockmelt.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=RockMelt" } } , 378 : { typeId : "0" , metadata : { uaFamily : "Epic" , uaUrl : "http://www.epicbrowser.com/" , uaCompany : "Hidden Reflex" , uaCompanyUrl : "http://www.hiddenreflex.com/" , uaIcon : "epic.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Epic" } } , 379 : { typeId : "0" , metadata : { uaFamily : "InternetSurfboard" , uaUrl : "http://inetsurfboard.sourceforge.net/" , uaCompany : "Philipp Ruppel" , uaCompanyUrl : "" , uaIcon : "internetSurfboard.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=InternetSurfboard" } } , 380 : { typeId : "0" , metadata : { uaFamily : "Vonkeror" , uaUrl : "http://zzo38computer.cjb.net/vonkeror/" , uaCompany : "zzo38" , uaCompanyUrl : "http://zzo38computer.cjb.net/" , uaIcon : "conkeror.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Vonkeror" } } , 381 : { typeId : "15" , metadata : { uaFamily : "IE RSS reader" , uaUrl : "http://en.wikipedia.org/wiki/Windows_RSS_Platform" , uaCompany : "Microsoft" , uaCompanyUrl : "http://www.microsoft.com/" , uaIcon : "rss.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=IE RSS reader" } } , 382 : { typeId : "15" , metadata : { uaFamily : "Trileet NewsRoom" , uaUrl : "http://feedmonger.blogspot.com/" , uaCompany : "Trileet Inc." , uaCompanyUrl : "http://www.trileet.com/" , uaIcon : "rss.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Trileet NewsRoom" } } , 383 : { typeId : "10" , metadata : { uaFamily : "Validator.nu" , uaUrl : "http://validator.nu/" , uaCompany : "Henri Sivonen" , uaCompanyUrl : "http://hsivonen.iki.fi/author/" , uaIcon : "validator_nu.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Validator.nu" } } , 384 : { typeId : "5" , metadata : { uaFamily : "Zend_Http_Client" , uaUrl : "http://framework.zend.com/manual/en/zend.http.html" , uaCompany : "Zend Technologies Ltd." , uaCompanyUrl : "http://www.zend.com/" , uaIcon : "zend_http_client.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Zend_Http_Client" } } , 385 : { typeId : "3" , metadata : { uaFamily : "Skyfire" , uaUrl : "http://www.skyfire.com/" , uaCompany : "Skyfire Labs, Inc." , uaCompanyUrl : "http://www.skyfire.com/about" , uaIcon : "skyfire.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Skyfire" } } , 386 : { typeId : "3" , metadata : { uaFamily : "GO Browser" , uaUrl : "http://www.gobrowser.cn/" , uaCompany : "GO Dev Team" , uaCompanyUrl : "" , uaIcon : "go_browser.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=GO Browser" } } , 387 : { typeId : "0" , metadata : { uaFamily : "Surf" , uaUrl : "http://surf.suckless.org/" , uaCompany : "suckless.org" , uaCompanyUrl : "http://suckless.org/" , uaIcon : "surf.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=Surf" } } , 388 : { typeId : "20" , metadata : { uaFamily : "iGooMap" , uaUrl : "http://www.pointworks.de/software/igoomap/index.php" , uaCompany : "PointWorks.de" , uaCompanyUrl : "http://www.pointworks.de/" , uaIcon : "igoomap.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=iGooMap" } } , 389 : { typeId : "18" , metadata : { uaFamily : "iTunes" , uaUrl : "http://www.apple.com/itunes/" , uaCompany : "Apple Inc." , uaCompanyUrl : "http://www.apple.com/" , uaIcon : "itunes.png" , uaInfoUrl : "/list-of-ua/browser-detail?browser=iTunes" } } , 390 : { typeId : "0" , metadata : { uaFamily : "BlackHawk" , uaUrl : "http://www.netgate.sk/blackhawk/help/welcome-to-blackhawk-web-browser.html" , uaCompany : "NETGATE Technologies s.r.o. " , uaCompanyUrl : "http://www.netgate.sk/" , uaIcon : " blackha
} , 58 : { regexp : /libwww\-perl\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "51" } , 59 : { regexp : /mozilla[\s\S]*Lunascape\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "52" } , 60 : { regexp : /mozilla[\s\S]*Maxthon ([0-9a-z\+\-\.]+)/i , browserId : "53" } , 61 : { regexp : /mozilla[\s\S]*MSIE [0-9a-z\+\-\.]+[\s\S]*MyIE2/i , browserId : "53" } , 62 : { regexp : /mozilla[\s\S]*(rv:[0-9\.]+)[\s\S]*gecko\/[0-9]+[\s\S]*/i , browserId : "54" } , 63 : { regexp : /mozilla[\s\S]*MultiZilla ([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "55" } , 64 : { regexp : /mozilla[\s\S]*MSIE [0-9a-z\+\-\.]+[\s\S]*NetCaptor ([0-9a-z\+\-\.]+)/i , browserId : "56" } , 65 : { regexp : /Netgem\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "57" } , 66 : { regexp : /netsurf\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "58" } , 67 : { regexp : /mozilla[\s\S]*MSIE [0-9a-z\+\-\.]+[\s\S]*Sleipnir\/([0-9a-z\+\-\.]+)/i , browserId : "59" } , 69 : { regexp : /mozilla[\s\S]*rv:[0-9\.]+[\s\S]*gecko\/[0-9]+[\s\S]*firefox\/([0-9a-z\+\-\.]+)[\s\S]*swiftfox/i , browserId : "61" } , 70 : { regexp : /Teleport Pro\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "62" } , 77 : { regexp : /sunrise[ \/]([0-9a-z\+\-\.\/]+)/i , browserId : "19" } , 78 : { regexp : /mozilla[\s\S]*galeon\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "6" } , 79 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*\(KHTML, like Gecko\)$/i , browserId : "466" } , 80 : { regexp : /Openwave/i , browserId : "32" } , 81 : { regexp : /MSIE ([0-9a-z\+\-\.]+)[\s\S]*windows ce/i , browserId : "157" } , 82 : { regexp : /mozilla[\s\S]*\/[0-9\.]+[\s\S]*gecko[\s\S]*firefox[\s\S]*/i , browserId : "3" } , 83 : { regexp : /mozilla[\s\S]*(rv:[0-9\.]+)[\s\S]*/i , browserId : "54" } , 86 : { regexp : /webcopier[\s\S]*v([0-9a-z\.]+)/i , browserId : "71" } , 89 : { regexp : /MSIE[\s\S]*PhaseOut/i , browserId : "74" } , 94 : { regexp : /^Mozilla[\s\S]*Thunderbird\/([0-9a-zA-Z\.]+)/i , browserId : "79" } , 95 : { regexp : /^DoCoMo\//i , browserId : "33" } , 97 : { regexp : /doris\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "81" } , 98 : { regexp : /^Enigma browser$/i , browserId : "82" } , 100 : { regexp : /lwp\-request\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "51" } , 102 : { regexp : /Jakarta Commons-HttpClient\/([0-9a-zA-Z\.\-]+)/i , browserId : "85" } , 103 : { regexp : /IBrowse/i , browserId : "31" } , 104 : { regexp : /^curl ([0-9a-zA-Z\.\-]+)/i , browserId : "86" } , 105 : { regexp : /Aweb[\s\S]*Amiga/i , browserId : "29" } , 106 : { regexp : /amaya\/([0-9a-zA-Z\.\-+]+)/i , browserId : "87" } , 107 : { regexp : /GetRight\/([0-9a-zA-Z\.\-\+]+)/i , browserId : "88" } , 108 : { regexp : /^Mozilla[\s\S]*OmniWeb\/([1-9a-zA-z\.\-]+)/i , browserId : "18" } , 109 : { regexp : /Mozilla[\s\S]*OffByOne/i , browserId : "89" } , 110 : { regexp : /Python\-urllib\/([0-9a-zA-Z\.\-]+)/i , browserId : "90" } , 111 : { regexp : /w3m\/([0-9a-zA-z\-\+\.]+)/i , browserId : "91" } , 113 : { regexp : /^WebZIP\/([0-9a-zA-Z\.\-]+)/i , browserId : "93" } , 114 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*Shiira\/([0-9a-zA-z\.\-]+)/i , browserId : "21" } , 115 : { regexp : /ICEbrowser\/([0-9a-z_\.\-]+)/i , browserId : "94" } , 117 : { regexp : /Blazer ([0-9\.]+)/i , browserId : "43" } , 118 : { regexp : /Iceape\/([0-9a-zA-z\.\-]+)/i , browserId : "96" } , 120 : { regexp : /Jakarta Commons\-HttpClient/i , browserId : "85" } , 122 : { regexp : /HotJava\/([0-9a-zA-Z\.\- ]+)/i , browserId : "99" } , 123 : { regexp : /JoBo\/([0-9a-z\.\-]+)/i , browserId : "100" } , 126 : { regexp : /Sleipnir Version ([0-9a-z\.]+)/i , browserId : "59" } , 130 : { regexp : /poe-component-client-http\/([0-9a-z\.\-]+)/i , browserId : "105" } , 137 : { regexp : /snoopy v([1-9\.]+)/i , browserId : "111" } , 138 : { regexp : /Lynx/i , browserId : "25" } , 139 : { regexp : /libwww\-perl/i , browserId : "51" } , 141 : { regexp : /NetFront([0-9a-z\.]+)[\s\S]*/i , browserId : "33" } , 143 : { regexp : /^opera ([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "17" } , 147 : { regexp : /NCSA_Mosaic\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "117" } , 149 : { regexp : /mozilla[\s\S]*rv:[0-9\.]+[\s\S]*gecko[\s\S]*kapiko\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "119" } , 150 : { regexp : /mozilla[\s\S]*chrome\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "120" } , 151 : { regexp : /mozilla[\s\S]*applewebkit[\s\S]*AdobeAIR\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "121" } , 152 : { regexp : /^lwp-trivial\/([0-9.]+)$/i , browserId : "122" } , 153 : { regexp : /^WWW-Mechanize\/([0-9a-z\+\-\.]+)/i , browserId : "123" } , 155 : { regexp : /^Xenu Link Sleuth ([0-9a-z\+\-\.]+)$/i , browserId : "124" } , 156 : { regexp : /^SiteSucker\/([0-9a-z\.]+)/i , browserId : "125" } , 157 : { regexp : /mozilla[\s\S]*applewebkit[\s\S]*arora\/([0-9a-z\+\-\.]+)[\s\S]*/i , browserId : "126" } , 160 : { regexp : / m o z i l l a [ \ s \ S ] * r v : [ 0 - 9 \ . ] + [ \ s \ S ] *
browserId : "433" } , 550 : { regexp : /^python-requests\/([0-9\.]+)/i , browserId : "434" } , 551 : { regexp : /^AtomicBrowser\/([0-9\.]+)[\s\S]*CFNetwork/i , browserId : "436" } , 552 : { regexp : /^Reeder\/([0-9\.]+)[\s\S]*CFNetwork/i , browserId : "437" } , 553 : { regexp : /^Mozilla[\s\S]*Mobile[\s\S]*rv[\s\S]*Gecko[\s\S]*Firefox\/([0-9\.]+)/i , browserId : "133" } , 554 : { regexp : /Mozilla[\s\S]*Mac[\s\S]*rv[\s\S]*Gecko[\s\S]*Firefox\/([0-9a-b\.]+)[\s\S]*TenFourFox/i , browserId : "439" } , 555 : { regexp : /^PEAR HTTP_Request class \( http:\/\/pear[\s\S]php[\s\S]net\/ \)/i , browserId : "440" } , 556 : { regexp : /Mozilla[\s\S]*compatible[\s\S]*DPlus ([0-9\.]+)/i , browserId : "441" } , 557 : { regexp : /^WordPress\/[0-9\.]+; http:\/\//i , browserId : "438" } , 558 : { regexp : /Mozilla[\s\S]*Windows[\s\S]*Gecko[\s\S]*Firefox[\s\S]*AvantBrowser\/Tri-Core/i , browserId : "41" } , 559 : { regexp : /Mozilla[\s\S]*AppleWebKit[\s\S]*zBrowser\/SpringSun-([0-9\.]+)/i , browserId : "442" } , 560 : { regexp : /Mozilla[\s\S]*AppleWebKit[\s\S]*zBrowser\/NigtSky-([0-9\.]+)/i , browserId : "442" } , 561 : { regexp : /Mozilla[\s\S]*AppleWebKit[\s\S]*KHTML[\s\S]*SlimBoat\/([0-9\.]+)/i , browserId : "443" } , 562 : { regexp : /Opera[\s\S]*Opera Tablet[\s\S]*Presto[\s\S]*Version\/([0-9\.]+)/i , browserId : "321" } , 563 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*Chrome\/([0-9\.]+)[\s\S]*Mobile Safari/i , browserId : "423" } , 564 : { regexp : /^Mozilla[\s\S]*iPhone[\s\S]*AppleWebKit[\s\S]*CriOS\/([0-9\.]+)[\s\S]*Mobile[\s\S]*Safari/i , browserId : "423" } , 565 : { regexp : /^Mechanize\/([0-9\.]+)[\s\S]*Ruby[\s\S]*github[\s\S]com\/tenderlove\/mechanize/i , browserId : "445" } , 566 : { regexp : /^htmlayout ([0-9\.]+)[\s\S]*Win[\s\S]*www\.terrainformatica\.com/i , browserId : "446" } , 567 : { regexp : /^The Bat! Voyager ([0-9\.]+)$/i , browserId : "330" } , 568 : { regexp : /^Mozilla[\s\S]*MSIE[\s\S]*Windows[\s\S]*SaaYaa/i , browserId : "447" } , 569 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*Qt\/[0-9\.]+[\s\S]*Ryouko\/([0-9\.]+)[\s\S]*Safari/i , browserId : "448" } , 570 : { regexp : /^Anemone\/([0-9\.]+)$/i , browserId : "449" } , 571 : { regexp : /^Mozilla[\s\S]*OS X[\s\S]*AppleWebKit[\s\S]*KHTML[\s\S]*Sparrow\/([0-9\.]+)/i , browserId : "450" } , 572 : { regexp : /^SubStream\/([0-9\.]+)[\s\S]* CFNetwork/i , browserId : "451" } , 573 : { regexp : /^Mozilla[\s\S]*iPad[\s\S]*AppleWebKit[\s\S]*CriOS\/([0-9\.]+)[\s\S]*Mobile[\s\S]*Safari/i , browserId : "423" } , 574 : { regexp : /^Barca\/([0-9\.]+)/i , browserId : "452" } , 575 : { regexp : /^BarcaPro\/([0-9\.]+)/i , browserId : "452" } , 576 : { regexp : /A1 Sitemap Generator\/([0-9\.]+)[\s\S]*microsystools[\s\S]com/i , browserId : "453" } , 577 : { regexp : /^Mozilla[\s\S]*Playstation Vita[\s\S]*AppleWebKit[\s\S]*Silk\/([0-9\.]+)/i , browserId : "454" } , 578 : { regexp : /^MQQBrowser\/([0-9\.]+)/i , browserId : "455" } , 579 : { regexp : /^MQQBrowser\/(Mini[0-9\.]+)/i , browserId : "455" } , 580 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*Chrome[\s\S]*Beamrise\/([0-9\.]+)/i , browserId : "456" } , 581 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*Beamrise\/([0-9\.]+)[\s\S]*Chrome/i , browserId : "456" } , 582 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*Chrome[\s\S]*YaBrowser\/([0-9\.]+)/i , browserId : "457" } , 583 : { regexp : /^Mozilla[\s\S]*Silk\/([0-9\.\-]+)[\s\S]*safari/i , browserId : "458" } , 584 : { regexp : /^Apache-HttpClient\/([0-9\.]+)/i , browserId : "459" } , 585 : { regexp : /^Mozilla.*Nintendo WiiU.*AppleWebKit.*NX.*NintendoBrowser\/([0-9\.]+)/ , browserId : "460" } , 586 : { regexp : /^DellWebMonitor\/([0-9\.]+)/ , browserId : "461" } , 587 : { regexp : /^FeedDemon\/([0-9\.]+)[\s\S]*(www\.feeddemon\.com|www\.newsgator\.com)/i , browserId : "462" } , 588 : { regexp : /^XMLRPC::Client \(Ruby ([0-9\.]+)\)$/i , browserId : "463" } , 589 : { regexp : /^PocomailPE\/([0-9\.]+)/i , browserId : "356" } , 590 : { regexp : /Pattern\/([0-9\.]+)[\s\S]*[\s\S]clips\.ua\.ac\.be\/pages\/pattern/i , browserId : "464" } , 592 : { regexp : /^Eudora\/?([0-9a-z\.]+)*/i , browserId : "465" } , 593 : { regexp : /^Mozilla[\s\S]*Windows[\s\S]*Gecko[\s\S]*Polarity\/([0-9\.]+)/i , browserId : "467" } , 594 : { regexp : /^Mozilla[\s\S]*AppleWebKit[\s\S]*Superbird\/([0-9\.]+)/i , browserId : "468" } , 595 : { regexp : /^Microsoft Office\/14[\s\S]*Microsoft Outlook 14/i , browserId : "326" } , 596 : { regexp : /mozilla[\s\S]*AppleWebKit[\s\S]*NetFrontLifeBrowser\/([0-9\.]+)/i , browserId : "469" } , 597 : { regexp : / m o z i l l a [ \ s \ S ] * a p p l e w e b k i t [ \ s \ S ] * \ / [ 0 - 9 a - z \ + \ - \ . ] + [ \ s \ S ] * v e r s i o n \ / ( [ 0 - 9 a - z \ + \ - \ . ] + ) [ \ s \ S ] * s a f a r i \ / [ 0 - 9 a - z \ + \
lineNumber : tb , lineStart : ub , start : e , end : sb } ) : ( b = c . substr ( 0 , 2 ) , g === b [ 1 ] && "+-<>&|" . indexOf ( g ) >= 0 || "=>" === b ? ( sb += 2 , { type : ib . Punctuator , value : b , lineNumber : tb , lineStart : ub , start : e , end : sb } ) : "<>=!+-*%&|^/" . indexOf ( g ) >= 0 ? ( ++ sb , { type : ib . Punctuator , value : g , lineNumber : tb , lineStart : ub , start : e , end : sb } ) : void S ( { } , ob . UnexpectedToken , "ILLEGAL" ) ) ) } function x ( a ) { for ( var b = "" ; sb < vb && d ( qb [ sb ] ) ; ) b += qb [ sb ++ ] ; return 0 === b . length && S ( { } , ob . UnexpectedToken , "ILLEGAL" ) , h ( qb . charCodeAt ( sb ) ) && S ( { } , ob . UnexpectedToken , "ILLEGAL" ) , { type : ib . NumericLiteral , value : parseInt ( "0x" + b , 16 ) , lineNumber : tb , lineStart : ub , start : a , end : sb } } function y ( a ) { for ( var b = "0" + qb [ sb ++ ] ; sb < vb && e ( qb [ sb ] ) ; ) b += qb [ sb ++ ] ; return ( h ( qb . charCodeAt ( sb ) ) || c ( qb . charCodeAt ( sb ) ) ) && S ( { } , ob . UnexpectedToken , "ILLEGAL" ) , { type : ib . NumericLiteral , value : parseInt ( b , 8 ) , octal : ! 0 , lineNumber : tb , lineStart : ub , start : a , end : sb } } function z ( ) { var a , d , f ; if ( f = qb [ sb ] , b ( c ( f . charCodeAt ( 0 ) ) || "." === f , "Numeric literal must start with a decimal digit or a decimal point" ) , d = sb , a = "" , "." !== f ) { if ( a = qb [ sb ++ ] , f = qb [ sb ] , "0" === a ) { if ( "x" === f || "X" === f ) return ++ sb , x ( d ) ; if ( e ( f ) ) return y ( d ) ; f && c ( f . charCodeAt ( 0 ) ) && S ( { } , ob . UnexpectedToken , "ILLEGAL" ) } for ( ; c ( qb . charCodeAt ( sb ) ) ; ) a += qb [ sb ++ ] ; f = qb [ sb ] } if ( "." === f ) { for ( a += qb [ sb ++ ] ; c ( qb . charCodeAt ( sb ) ) ; ) a += qb [ sb ++ ] ; f = qb [ sb ] } if ( "e" === f || "E" === f ) if ( a += qb [ sb ++ ] , f = qb [ sb ] , "+" !== f && "-" !== f || ( a += qb [ sb ++ ] ) , c ( qb . charCodeAt ( sb ) ) ) for ( ; c ( qb . charCodeAt ( sb ) ) ; ) a += qb [ sb ++ ] ; else S ( { } , ob . UnexpectedToken , "ILLEGAL" ) ; return h ( qb . charCodeAt ( sb ) ) && S ( { } , ob . UnexpectedToken , "ILLEGAL" ) , { type : ib . NumericLiteral , value : parseFloat ( a ) , lineNumber : tb , lineStart : ub , start : d , end : sb } } function A ( ) { var a , c , d , f , h , i , j , k , l = "" , m = ! 1 ; for ( j = tb , k = ub , a = qb [ sb ] , b ( "'" === a || '"' === a , "String literal must starts with a quote" ) , c = sb , ++ sb ; sb < vb ; ) { if ( d = qb [ sb ++ ] , d === a ) { a = "" ; break } if ( "\\" === d ) if ( d = qb [ sb ++ ] , d && g ( d . charCodeAt ( 0 ) ) ) ++ tb , "\r" === d && "\n" === qb [ sb ] && ++ sb , ub = sb ; else switch ( d ) { case "u" : case "x" : "{" === qb [ sb ] ? ( ++ sb , l += s ( ) ) : ( i = sb , h = r ( d ) , h ? l += h : ( sb = i , l += d ) ) ; break ; case "n" : l += "\n" ; break ; case "r" : l += "\r" ; break ; case "t" : l += "\t" ; break ; case "b" : l += "\b" ; break ; case "f" : l += "\f" ; break ; case "v" : l += "\v" ; break ; default : e ( d ) ? ( f = "01234567" . indexOf ( d ) , 0 !== f && ( m = ! 0 ) , sb < vb && e ( qb [ sb ] ) && ( m = ! 0 , f = 8 * f + "01234567" . indexOf ( qb [ sb ++ ] ) , "0123" . indexOf ( d ) >= 0 && sb < vb && e ( qb [ sb ] ) && ( f = 8 * f + "01234567" . indexOf ( qb [ sb ++ ] ) ) ) , l += String . fromCharCode ( f ) ) : l += d } else { if ( g ( d . charCodeAt ( 0 ) ) ) break ; l += d } } return "" !== a && S ( { } , ob . UnexpectedToken , "ILLEGAL" ) , { type : ib . StringLiteral , value : l , octal : m , startLineNumber : j , startLineStart : k , lineNumber : tb , lineStart : ub , start : c , end : sb } } function B ( a , b ) { var c ; try { c = new RegExp ( a , b ) } catch ( a ) { S ( { } , ob . InvalidRegExp ) } return c } function C ( ) { var a , c , d , e , f ; for ( a = qb [ sb ] , b ( "/" === a , "Regular expression literal must start with a slash" ) , c = qb [ sb ++ ] , d = ! 1 , e = ! 1 ; sb < vb ; ) if ( a = qb [ sb ++ ] , c += a , "\\" === a ) a = qb [ sb ++ ] , g ( a . charCodeAt ( 0 ) ) && S ( { } , ob . UnterminatedRegExp ) , c += a ; else if ( g ( a . charCodeAt ( 0 ) ) ) S ( { } , ob . UnterminatedRegExp ) ; else if ( d ) "]" === a && ( d = ! 1 ) ; else { if ( "/" === a ) { e = ! 0 ; break } "[" === a && ( d = ! 0 ) } return e || S ( { } , ob . UnterminatedRegExp ) , f = c . substr ( 1 , c . length - 2 ) , { value : f , literal : c } } function D ( ) { var a , b , c , d ; for ( b = "" , c = "" ; sb < vb && ( a = qb [ sb ] , i ( a . charCodeAt ( 0 ) ) ) ; ) if ( ++ sb , "\\" === a && sb < vb ) if ( a = qb [ sb ] , "u" === a ) { if ( ++ sb , d = sb , a = r ( "u" ) ) for ( c += a , b += "\\u" ; d < sb ; ++ d ) b += qb [ d ] ; else sb = d , c += "u" , b += "\\u" ; T ( { } , ob . UnexpectedToken , "ILLEGAL" ) } else b += "\\" , T ( { } , ob . UnexpectedToken , "ILLEGAL" ) ; else c += a , b += a ; return { value : c , literal : b } } function E ( ) { var a , b , c , d ; return wb = null , q ( ) , a = sb , b = C ( ) , c = D ( ) , d = B ( b . value , c . value ) , yb . tokenize ? { type : ib . RegularExpression , value : d , lineNumber : tb , lineStart : ub , start : a , end : sb } : { literal : b . literal + c . literal , value : d , start : a , end : sb } } function F ( ) { var a , b , c , d ; return q ( ) , a = sb , b = { start : { line : tb , column : sb - ub } } , c = E ( ) , b . end = { line : tb , column : sb - ub } , yb . tokenize || ( yb . tokens . length > 0 && ( d = yb . tokens [ yb . tokens . length - 1 ] , d . range [ 0 ] === a && "Punctuator" === d . type && ( "/" !== d . value && "/=" !== d . value || yb . tokens . pop ( ) ) ) , yb . tokens . push ( { type : "RegularExpression" , value : c . literal , range : [ a , sb ] , loc : b } ) ) , c } function G ( a ) { return a . type === ib . Identifier || a . type === ib . Keyword || a . type === ib . BooleanLiteral || a . type === ib . NullLiteral } function H ( ) { var a , b ; if ( a = yb . tokens [ yb . tokens .
NonAsciiIdentifierPart : new RegExp ( " [ \ xaa \ xb5 \ xba \ xc0 - \ xd6 \ xd8 - \ xf6 \ xf8 - \u02c1\u02c6 - \u02d1\u02e0 - \u02e4\u02ec\u02ee\u0300 - \u0374\u0376\u0377\u037a - \u037d\u037f\u0386\u0388 - \u038a\u038c\u038e - \u03a1\u03a3 - \u03f5\u03f7 - \u0481\u0483 - \u0487\u048a - \u052f\u0531 - \u0556\u0559\u0561 - \u0587\u0591 - \u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0 - \u05ea\u05f0 - \u05f2\u0610 - \u061a\u0620 - \u0669\u066e - \u06d3\u06d5 - \u06dc\u06df - \u06e8\u06ea - \u06fc\u06ff\u0710 - \u074a\u074d - \u07b1\u07c0 - \u07f5\u07fa\u0800 - \u082d\u0840 - \u085b\u08a0 - \u08b2\u08e4 - \u0963\u0966 - \u096f\u0971 - \u0983\u0985 - \u098c\u098f\u0990\u0993 - \u09a8\u09aa - \u09b0\u09b2\u09b6 - \u09b9\u09bc - \u09c4\u09c7\u09c8\u09cb - \u09ce\u09d7\u09dc\u09dd\u09df - \u09e3\u09e6 - \u09f1\u0a01 - \u0a03\u0a05 - \u0a0a\u0a0f\u0a10\u0a13 - \u0a28\u0a2a - \u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e - \u0a42\u0a47\u0a48\u0a4b - \u0a4d\u0a51\u0a59 - \u0a5c\u0a5e\u0a66 - \u0a75\u0a81 - \u0a83\u0a85 - \u0a8d\u0a8f - \u0a91\u0a93 - \u0aa8\u0aaa - \u0ab0\u0ab2\u0ab3\u0ab5 - \u0ab9\u0abc - \u0ac5\u0ac7 - \u0ac9\u0acb - \u0acd\u0ad0\u0ae0 - \u0ae3\u0ae6 - \u0aef\u0b01 - \u0b03\u0b05 - \u0b0c\u0b0f\u0b10\u0b13 - \u0b28\u0b2a - \u0b30\u0b32\u0b33\u0b35 - \u0b39\u0b3c - \u0b44\u0b47\u0b48\u0b4b - \u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f - \u0b63\u0b66 - \u0b6f\u0b71\u0b82\u0b83\u0b85 - \u0b8a\u0b8e - \u0b90\u0b92 - \u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8 - \u0baa\u0bae - \u0bb9\u0bbe - \u0bc2\u0bc6 - \u0bc8\u0bca - \u0bcd\u0bd0\u0bd7\u0be6 - \u0bef\u0c00 - \u0c03\u0c05 - \u0c0c\u0c0e - \u0c10\u0c12 - \u0c28\u0c2a - \u0c39\u0c3d - \u0c44\u0c46 - \u0c48\u0c4a - \u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60 - \u0c63\u0c66 - \u0c6f\u0c81 - \u0c83\u0c85 - \u0c8c\u0c8e - \u0c90\u0c92 - \u0ca8\u0caa - \u0cb3\u0cb5 - \u0cb9\u0cbc - \u0cc4\u0cc6 - \u0cc8\u0cca - \u0ccd\u0cd5\u0cd6\u0cde\u0ce0 - \u0ce3\u0ce6 - \u0cef\u0cf1\u0cf2\u0d01 - \u0d03\u0d05 - \u0d0c\u0d0e - \u0d10\u0d12 - \u0d3a\u0d3d - \u0d44\u0d46 - \u0d48\u0d4a - \u0d4e\u0d57\u0d60 - \u0d63\u0d66 - \u0d6f\u0d7a - \u0d7f\u0d82\u0d83\u0d85 - \u0d96\u0d9a - \u0db1\u0db3 - \u0dbb\u0dbd\u0dc0 - \u0dc6\u0dca\u0dcf - \u0dd4\u0dd6\u0dd8 - \u0ddf\u0de6 - \u0def\u0df2\u0df3\u0e01 - \u0e3a\u0e40 - \u0e4e\u0e50 - \u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94 - \u0e97\u0e99 - \u0e9f\u0ea1 - \u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead - \u0eb9\u0ebb - \u0ebd\u0ec0 - \u0ec4\u0ec6\u0ec8 - \u0ecd\u0ed0 - \u0ed9\u0edc - \u0edf\u0f00\u0f18\u0f19\u0f20 - \u0f29\u0f35\u0f37\u0f39\u0f3e - \u0f47\u0f49 - \u0f6c\u0f71 - \u0f84\u0f86 - \u0f97\u0f99 - \u0fbc\u0fc6\u1000 - \u1049\u1050 - \u109d\u10a0 - \u10c5\u10c7\u10cd\u10d0 - \u10fa\u10fc - \u1248\u124a - \u124d\u1250 - \u1256\u1258\u125a - \u125d\u1260 - \u1288\u128a - \u128d\u1290 - \u12b0\u12b2 - \u12b5\u12b8 - \u12be\u12c0\u12c2 - \u12c5\u12c8 - \u12d6\u12d8 - \u1310\u1312 - \u1315\u1318 - \u135a\u135d - \u135f\u1380 - \u138f\u13a0 - \u13f4\u1401 - \u166c\u166f - \u167f\u1681 - \u169a\u16a0 - \u16ea\u16ee - \u16f8\u1700 - \u170c\u170e - \u1714\u1720 - \u1734\u1740 - \u1753\u1760 - \u176c\u176e - \u1770\u1772\u1773\u1780 - \u17d3\u17d7\u17dc\u17dd\u17e0 - \u17e9\u180b - \u180d\u1810 - \u1819\u1820 - \u1877\u1880 - \u18aa\u18b0 - \u18f5\u1900 - \u191e\u1920 - \u192b\u1930 - \u193b\u1946 - \u196d\u1970 - \u1974\u1980 - \u19ab\u19b0 - \u19c9\u19d0 - \u19d9\u1a00 - \u1a1b\u1a20 - \u1a5e\u1a60 - \u1a7c\u1a7f - \u1a89\u1a90 - \u1a99\u1aa7\u1ab0 - \u1abd\u1b00 - \u1b4b\u1b50 - \u1b59\u1b6b - \u1b73\u1b80 - \u1bf3\u1c00 - \u1c37\u1c40 - \u1c49\u1c4d - \u1c7d\u1cd0 - \u1cd2\u1cd4 - \u1cf6\u1cf8\u1cf9\u1d00 - \u1df5\u1dfc - \u1f15\u1f18 - \u1f1d\u1f20 - \u1f45\u1f48 - \u1f4d\u1f50 - \u1f57\u1f59\u1f5b\u1f5d\u1f5f - \u1f7d\u1f80 - \u1fb4\u1fb6 - \u1fbc\u1fbe\u1fc2 - \u1fc4\u1fc6 - \u1fcc\u1fd0 - \u1fd3\u1fd6 - \u1fdb\u1fe0 - \u1fec\u1ff2 - \u1ff4\u1ff6 - \u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090 - \u209c\u20d0 - \u20dc\u20e1\u20e5 - \u20f0\u2102\u2107\u210a - \u2113\u2115\u2119 - \u211d\u2124\u2126\u2128\u212a - \u212d\u212f - \u2139\u213c - \u213f\u2145 - \u2149\u214e\u2160 - \u2188\u2c00 - \u2c2e\u2c30 - \u2c5e\u2c60 - \u2ce4\u2ceb - \u2cf3\u2d00 - \u2d25\u2d27\u2d2d\u2d30 - \u2d67\u2d6f\u2d7f - \u2d96\u2da0 - \u2da6\u2da8 - \u2dae\u2db0 - \u2db6\u2db8 - \u2dbe\u2dc0 - \u2dc6\u2dc8 - \u2dce\u2dd0 - \u2dd6\u2dd8 - \u2dde\u2de0 - \u2dff\u2e2f\u3005 - \u3007\u3021 - \u302f\u3031 - \u3035\u3038 - \u303c\u3041 - \u3096\u3099\u309a\u309d - \u309f\u30a1 - \u30fa\u30fc - \u30ff\u3105 - \u312d\u3131 - \u318e\u31a0 - \u31ba\u31f0 - \ u3
precedence : N . Sequence , allowIn : ! 0 , allowCall : ! 0 } ) , ")" ) : e . push ( ")" ) } ) , e . push ( C ( a . body , "" === l ) ) ; break ; case M . ForInStatement : e = [ "for" + aa + "(" ] , w ( function ( ) { a . left . type === M . VariableDeclaration ? w ( function ( ) { e . push ( a . left . kind + " " , H ( a . left . declarations [ 0 ] , { allowIn : ! 1 } ) ) } ) : e . push ( G ( a . left , { precedence : N . Call , allowIn : ! 0 , allowCall : ! 0 } ) ) , e = u ( e , "in" ) , e = [ u ( e , G ( a . right , { precedence : N . Sequence , allowIn : ! 0 , allowCall : ! 0 } ) ) , ")" ] } ) , e . push ( C ( a . body , "" === l ) ) ; break ; case M . LabeledStatement : e = [ a . label . name + ":" , C ( a . body , "" === l ) ] ; break ; case M . Program : for ( d = a . body . length , e = [ da && d > 0 ? "\n" : "" ] , c = 0 ; c < d ; c += 1 ) k = v ( H ( a . body [ c ] , { semicolonOptional : ! da && c === d - 1 , directiveContext : ! 0 } ) ) , e . push ( k ) , c + 1 < d && ! i ( t ( k ) . toString ( ) ) && e . push ( _ ) ; break ; case M . FunctionDeclaration : e = [ ( a . generator && ! fa . moz . starlessGenerator ? "function* " : "function " ) + a . id . name , F ( a ) ] ; break ; case M . ReturnStatement : e = a . argument ? [ u ( "return" , G ( a . argument , { precedence : N . Sequence , allowIn : ! 0 , allowCall : ! 0 } ) ) , l ] : [ "return" + l ] ; break ; case M . WhileStatement : w ( function ( ) { e = [ "while" + aa + "(" , G ( a . test , { precedence : N . Sequence , allowIn : ! 0 , allowCall : ! 0 } ) , ")" ] } ) , e . push ( C ( a . body , "" === l ) ) ; break ; case M . WithStatement : w ( function ( ) { e = [ "with" + aa + "(" , G ( a . object , { precedence : N . Sequence , allowIn : ! 0 , allowCall : ! 0 } ) , ")" ] } ) , e . push ( C ( a . body , "" === l ) ) ; break ; default : throw new Error ( "Unknown statement type: " + a . type ) } return fa . comment && ( e = A ( a , e ) ) , k = t ( e ) . toString ( ) , a . type !== M . Program || da || "" !== _ || "\n" !== k . charAt ( k . length - 1 ) || ( e = t ( e ) . replaceRight ( /\s+$/ , "" ) ) , t ( e , a ) } function I ( d , h ) { var i , j , l = b ( ) ; switch ( null != h ? ( "string" == typeof h . indent && ( l . format . indent . style = h . indent ) , "number" == typeof h . base && ( l . format . indent . base = h . base ) , h = k ( l , h ) , V = h . format . indent . style , U = "string" == typeof h . base ? h . base : e ( V , h . format . indent . base ) ) : ( h = l , V = h . format . indent . style , U = e ( V , h . format . indent . base ) ) , W = h . format . json , X = h . format . renumber , Y = ! W && h . format . hexadecimal , Z = W ? "double" : h . format . quotes , $ = h . format . escapeless , h . format . compact ? _ = aa = V = U = "" : ( _ = "\n" , aa = " " ) , ba = h . format . parentheses , ca = h . format . semicolons , da = h . format . safeConcatenation , ea = h . directive , ga = W ? null : h . parse , ha = h . sourceMap , fa = h , S = ha ? c . browser ? g . sourceMap . SourceNode : a ( "source-map" ) . SourceNode : f , d . type ) { case M . BlockStatement : case M . BreakStatement : case M . CatchClause : case M . ContinueStatement : case M . DirectiveStatement : case M . DoWhileStatement : case M . DebuggerStatement : case M . EmptyStatement : case M . ExpressionStatement : case M . ForStatement : case M . ForInStatement : case M . FunctionDeclaration : case M . IfStatement : case M . LabeledStatement : case M . Program : case M . ReturnStatement : case M . SwitchStatement : case M . SwitchCase : case M . ThrowStatement : case M . TryStatement : case M . VariableDeclaration : case M . VariableDeclarator : case M . WhileStatement : case M . WithStatement : i = H ( d ) ; break ; case M . AssignmentExpression : case M . ArrayExpression : case M . ArrayPattern : case M . BinaryExpression : case M . CallExpression : case M . ConditionalExpression : case M . FunctionExpression : case M . Identifier : case M . Literal : case M . LogicalExpression : case M . MemberExpression : case M . NewExpression : case M . ObjectExpression : case M . ObjectPattern : case M . Property : case M . SequenceExpression : case M . ThisExpression : case M . UnaryExpression : case M . UpdateExpression : case M . YieldExpression : i = G ( d , { precedence : N . Sequence , allowIn : ! 0 , allowCall : ! 0 } ) ; break ; default : throw new Error ( "Unknown node type: " + d . type ) } return ha ? ( j = i . toStringWithSourceMap ( { file : h . sourceMap , sourceRoot : h . sourceMapRoot } ) , h . sourceMapWithCode ? j : j . map . toString ( ) ) : i . toString ( ) } function J ( a , b ) { var c , d , e , f ; for ( d = a . length , e = 0 ; d ; ) c = d >>> 1 , f = e + c , b ( a [ f ] ) ? d = c : ( e = f + 1 , d -= c + 1 ) ; return e } function K ( a , b ) { var c , d ; return c = J ( b , function ( b ) { return b . range [ 0 ] > a . range [ 0 ] } ) , a . extendedRange = [ a . range [ 0 ] , a . range [ 1 ] ] , c !== b . length && ( a . extendedRange [ 1 ] = b [ c ] . range [ 0 ] ) , c -= 1 , c >= 0 && ( c < b . length ? a . extendedRange [ 0 ] = b [ c ] . range [ 1 ] : d . length && ( a . extendedRange [ 1 ] = b [ b . length - 1 ] . range [ 0 ] ) ) , a } function L ( a , b , c ) { var d , e , f , g = [ ] ; if ( ! a . range ) throw new Error ( "attachComments needs range information" ) ; if ( ! c . length ) { if ( b . length ) { for ( f = 0 , e = b . length ; f < e ; f += 1 ) d = j ( b [ f ] ) , d . extendedRange = [ 0 , a . range [ 0 ] ] , g . push ( d ) ; a . leadingComments = g } return a } for ( f = 0 , e = b . length ; f < e ; f += 1 ) g . push ( K ( j ( b [ f ] ) , c ) ) ; return ia ( a , { cursor : 0 , enter : f
NonAsciiIdentifierPart : new RegExp ( " [ \ xaa \ xb5 \ xba \ xc0 - \ xd6 \ xd8 - \ xf6 \ xf8 - \u02c1\u02c6 - \u02d1\u02e0 - \u02e4\u02ec\u02ee\u0300 - \u0374\u0376\u0377\u037a - \u037d\u0386\u0388 - \u038a\u038c\u038e - \u03a1\u03a3 - \u03f5\u03f7 - \u0481\u0483 - \u0487\u048a - \u0527\u0531 - \u0556\u0559\u0561 - \u0587\u0591 - \u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0 - \u05ea\u05f0 - \u05f2\u0610 - \u061a\u0620 - \u0669\u066e - \u06d3\u06d5 - \u06dc\u06df - \u06e8\u06ea - \u06fc\u06ff\u0710 - \u074a\u074d - \u07b1\u07c0 - \u07f5\u07fa\u0800 - \u082d\u0840 - \u085b\u08a0\u08a2 - \u08ac\u08e4 - \u08fe\u0900 - \u0963\u0966 - \u096f\u0971 - \u0977\u0979 - \u097f\u0981 - \u0983\u0985 - \u098c\u098f\u0990\u0993 - \u09a8\u09aa - \u09b0\u09b2\u09b6 - \u09b9\u09bc - \u09c4\u09c7\u09c8\u09cb - \u09ce\u09d7\u09dc\u09dd\u09df - \u09e3\u09e6 - \u09f1\u0a01 - \u0a03\u0a05 - \u0a0a\u0a0f\u0a10\u0a13 - \u0a28\u0a2a - \u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e - \u0a42\u0a47\u0a48\u0a4b - \u0a4d\u0a51\u0a59 - \u0a5c\u0a5e\u0a66 - \u0a75\u0a81 - \u0a83\u0a85 - \u0a8d\u0a8f - \u0a91\u0a93 - \u0aa8\u0aaa - \u0ab0\u0ab2\u0ab3\u0ab5 - \u0ab9\u0abc - \u0ac5\u0ac7 - \u0ac9\u0acb - \u0acd\u0ad0\u0ae0 - \u0ae3\u0ae6 - \u0aef\u0b01 - \u0b03\u0b05 - \u0b0c\u0b0f\u0b10\u0b13 - \u0b28\u0b2a - \u0b30\u0b32\u0b33\u0b35 - \u0b39\u0b3c - \u0b44\u0b47\u0b48\u0b4b - \u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f - \u0b63\u0b66 - \u0b6f\u0b71\u0b82\u0b83\u0b85 - \u0b8a\u0b8e - \u0b90\u0b92 - \u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8 - \u0baa\u0bae - \u0bb9\u0bbe - \u0bc2\u0bc6 - \u0bc8\u0bca - \u0bcd\u0bd0\u0bd7\u0be6 - \u0bef\u0c01 - \u0c03\u0c05 - \u0c0c\u0c0e - \u0c10\u0c12 - \u0c28\u0c2a - \u0c33\u0c35 - \u0c39\u0c3d - \u0c44\u0c46 - \u0c48\u0c4a - \u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60 - \u0c63\u0c66 - \u0c6f\u0c82\u0c83\u0c85 - \u0c8c\u0c8e - \u0c90\u0c92 - \u0ca8\u0caa - \u0cb3\u0cb5 - \u0cb9\u0cbc - \u0cc4\u0cc6 - \u0cc8\u0cca - \u0ccd\u0cd5\u0cd6\u0cde\u0ce0 - \u0ce3\u0ce6 - \u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05 - \u0d0c\u0d0e - \u0d10\u0d12 - \u0d3a\u0d3d - \u0d44\u0d46 - \u0d48\u0d4a - \u0d4e\u0d57\u0d60 - \u0d63\u0d66 - \u0d6f\u0d7a - \u0d7f\u0d82\u0d83\u0d85 - \u0d96\u0d9a - \u0db1\u0db3 - \u0dbb\u0dbd\u0dc0 - \u0dc6\u0dca\u0dcf - \u0dd4\u0dd6\u0dd8 - \u0ddf\u0df2\u0df3\u0e01 - \u0e3a\u0e40 - \u0e4e\u0e50 - \u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94 - \u0e97\u0e99 - \u0e9f\u0ea1 - \u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead - \u0eb9\u0ebb - \u0ebd\u0ec0 - \u0ec4\u0ec6\u0ec8 - \u0ecd\u0ed0 - \u0ed9\u0edc - \u0edf\u0f00\u0f18\u0f19\u0f20 - \u0f29\u0f35\u0f37\u0f39\u0f3e - \u0f47\u0f49 - \u0f6c\u0f71 - \u0f84\u0f86 - \u0f97\u0f99 - \u0fbc\u0fc6\u1000 - \u1049\u1050 - \u109d\u10a0 - \u10c5\u10c7\u10cd\u10d0 - \u10fa\u10fc - \u1248\u124a - \u124d\u1250 - \u1256\u1258\u125a - \u125d\u1260 - \u1288\u128a - \u128d\u1290 - \u12b0\u12b2 - \u12b5\u12b8 - \u12be\u12c0\u12c2 - \u12c5\u12c8 - \u12d6\u12d8 - \u1310\u1312 - \u1315\u1318 - \u135a\u135d - \u135f\u1380 - \u138f\u13a0 - \u13f4\u1401 - \u166c\u166f - \u167f\u1681 - \u169a\u16a0 - \u16ea\u16ee - \u16f0\u1700 - \u170c\u170e - \u1714\u1720 - \u1734\u1740 - \u1753\u1760 - \u176c\u176e - \u1770\u1772\u1773\u1780 - \u17d3\u17d7\u17dc\u17dd\u17e0 - \u17e9\u180b - \u180d\u1810 - \u1819\u1820 - \u1877\u1880 - \u18aa\u18b0 - \u18f5\u1900 - \u191c\u1920 - \u192b\u1930 - \u193b\u1946 - \u196d\u1970 - \u1974\u1980 - \u19ab\u19b0 - \u19c9\u19d0 - \u19d9\u1a00 - \u1a1b\u1a20 - \u1a5e\u1a60 - \u1a7c\u1a7f - \u1a89\u1a90 - \u1a99\u1aa7\u1b00 - \u1b4b\u1b50 - \u1b59\u1b6b - \u1b73\u1b80 - \u1bf3\u1c00 - \u1c37\u1c40 - \u1c49\u1c4d - \u1c7d\u1cd0 - \u1cd2\u1cd4 - \u1cf6\u1d00 - \u1de6\u1dfc - \u1f15\u1f18 - \u1f1d\u1f20 - \u1f45\u1f48 - \u1f4d\u1f50 - \u1f57\u1f59\u1f5b\u1f5d\u1f5f - \u1f7d\u1f80 - \u1fb4\u1fb6 - \u1fbc\u1fbe\u1fc2 - \u1fc4\u1fc6 - \u1fcc\u1fd0 - \u1fd3\u1fd6 - \u1fdb\u1fe0 - \u1fec\u1ff2 - \u1ff4\u1ff6 - \u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090 - \u209c\u20d0 - \u20dc\u20e1\u20e5 - \u20f0\u2102\u2107\u210a - \u2113\u2115\u2119 - \u211d\u2124\u2126\u2128\u212a - \u212d\u212f - \u2139\u213c - \u213f\u2145 - \u2149\u214e\u2160 - \u2188\u2c00 - \u2c2e\u2c30 - \u2c5e\u2c60 - \u2ce4\u2ceb - \u2cf3\u2d00 - \u2d25\u2d27\u2d2d\u2d30 - \u2d67\u2d6f\u2d7f - \u2d96\u2da0 - \u2da6\u2da8 - \u2dae\u2db0 - \u2db6\u2db8 - \u2dbe\u2dc0 - \u2dc6\u2dc8 - \u2dce\u2dd0 - \u2dd6\u2dd8 - \u2dde\u2de0 - \u2dff\u2e2f\u3005 - \u3007\u3021 - \u302f\u3031 - \u3035\u3038 - \u303c\u3041 - \u3096\u3099\u309a\u309d - \u309f\u30a1 - \u30fa\u30fc - \u30ff\u3105 - \u312d\u3131 - \u318e\u31a0 - \ u31
a . call ( b , this . _ _data [ c ] , d , this ) ) } , c . prototype . keys = function ( ) { var a , b ; b = [ ] ; for ( a in this . _ _data ) this . _ _data . hasOwnProperty ( a ) && b . push ( a . substring ( 1 ) ) ; return b } , c . prototype . values = function ( ) { var a , b ; b = [ ] ; for ( a in this . _ _data ) this . _ _data . hasOwnProperty ( a ) && b . push ( this . _ _data [ a ] ) ; return b } , c . prototype . items = function ( ) { var a , b ; b = [ ] ; for ( a in this . _ _data ) this . _ _data . hasOwnProperty ( a ) && b . push ( [ a . substring ( 1 ) , this . _ _data [ a ] ] ) ; return b } ) , b . exports = c } ( ) } ) , b . define ( "/lib/pass/remove-unreachable-branch.js" , function ( a , c , d , e ) { ! function ( c , d , e , f , g , h ) { function i ( a , b ) { var c , f , i ; if ( c = g . booleanCondition ( b . test ) , b . alternate ) { if ( "boolean" == typeof c ) return h = ! 0 , f = [ ] , c ? ( i = e . delegateVariableDeclarations ( b . alternate , a ) , i && f . push ( i ) , f . push ( e . moveLocation ( b . test , { type : d . ExpressionStatement , expression : b . test } ) , b . consequent ) , { type : d . BlockStatement , body : f } ) : ( i = e . delegateVariableDeclarations ( b . consequent , a ) , i && f . push ( i ) , f . push ( e . moveLocation ( b . test , { type : d . ExpressionStatement , expression : b . test } ) , b . alternate ) , { type : d . BlockStatement , body : f } ) } else if ( "boolean" == typeof c ) return h = ! 0 , f = [ ] , c ? ( f . push ( e . moveLocation ( b . test , { type : d . ExpressionStatement , expression : b . test } ) , b . consequent ) , { type : d . BlockStatement , body : f } ) : ( i = e . delegateVariableDeclarations ( b . consequent , a ) , i && f . push ( i ) , f . push ( e . moveLocation ( b . test , { type : d . ExpressionStatement , expression : b . test } ) ) , { type : d . BlockStatement , body : f } ) } function j ( a , b ) { var c ; return c = g . booleanCondition ( b . left ) , "boolean" == typeof c ? ( h = ! 0 , c ? "&&" === b . operator ? e . moveLocation ( b , { type : d . SequenceExpression , expressions : [ b . left , b . right ] } ) : b . left : "&&" === b . operator ? b . left : e . moveLocation ( b , { type : d . SequenceExpression , expressions : [ b . left , b . right ] } ) ) : void 0 } function k ( a , b ) { var c ; return c = g . booleanCondition ( b . test ) , "boolean" == typeof c ? ( h = ! 0 , c ? e . moveLocation ( b , { type : d . SequenceExpression , expressions : [ b . test , b . consequent ] } ) : e . moveLocation ( b , { type : d . SequenceExpression , expressions : [ b . test , b . alternate ] } ) ) : void 0 } function l ( a , b ) { var g , l ; return g = b . get ( "destructive" , { pathName : c } ) ? a : e . deepCopy ( a ) , h = ! 1 , l = [ ] , g = e . replace ( g , { enter : function ( a ) { var b ; if ( f . Scope . isVariableScopeRequired ( a ) ) return void l . push ( a ) ; switch ( b = e . Array . last ( l ) , a . type ) { case d . IfStatement : return i ( b , a ) ; case d . LogicalExpression : return j ( b , a ) ; case d . ConditionalExpression : return k ( b , a ) } } , leave : function ( a ) { f . Scope . isVariableScopeRequired ( a ) && l . pop ( ) } } ) , { result : g , modified : h } } c = "remove-unreachable-branch" , f = b ( "/node_modules/escope/escope.js" , a ) , e = b ( "/lib/common.js" , a ) , g = b ( "/lib/evaluator.js" , a ) , d = e . Syntax , l . passName = c , a . exports = l } ( ) } ) , b . define ( "/lib/evaluator.js" , function ( a , c , d , e ) { ! function ( d , e ) { function f ( a , b ) { return a . type === d . Literal ? "object" != typeof a . value || null === a . value || b : a . type === d . UnaryExpression ? "void" === a . operator || "delete" === a . operator || "!" === a . operator ? f ( a . argument , ! 0 ) : f ( a . argument , ! 1 ) : a . type === d . BinaryExpression ? "in" !== a . operator && "instanceof" !== a . operator && ( f ( a . left , ! 1 ) && f ( a . right , ! 1 ) ) : a . type === d . LogicalExpression && ( f ( a . left , ! 0 ) && f ( a . right , ! 0 ) ) } function g ( a ) { return a . type === d . Literal ? a . value : a . type === d . UnaryExpression ? i ( a . operator , g ( a . argument ) ) : a . type === d . BinaryExpression ? j ( a . operator , g ( a . left ) , g ( a . right ) ) : a . type === d . LogicalExpression ? h ( a . operator , g ( a . left ) , g ( a . right ) ) : void e . unreachable ( ) } function h ( a , b , c ) { return "||" === a ? b || c : "&&" === a ? b && c : void e . unreachable ( ) } function i ( a , b ) { switch ( a ) { case "+" : return + b ; case "-" : return - b ; case "~" : return ~ b ; case "!" : return ! b ; case "delete" : return ! 0 ; case "void" : return ; case "typeof" : return typeof b } e . unreachable ( ) } function j ( a , b , c ) { switch ( a ) { case "|" : return b | c ; case "^" : return b ^ c ; case "&" : return b & c ; case "==" : return b == c ; case "!=" : return b != c ; case "===" : return b === c ; case "!==" : return b !== c ; case "<" : return b < c ; case ">" : return b > c ; case "<=" : return b <= c ; case ">=" : return b >= c ; case "<<" : return b << c ; case ">>" : return b >> c ; case ">>>" : return b >>> c ; case "+" : return b + c ; case "-" : return b - c ; case "*" : return b * c ; case "/" : return b / c ; case "%" : return b % c } e . unreachable ( ) } function k ( a , b ) { function c ( a ) { var e , g , h ; switch ( a . type ) { case d . AssignmentExpression : return ! 0 ; case d . ArrayExpression : for ( e = 0 , g = a . elements . length ; e < g ; ++ e ) if ( c ( a . elements [ e ] ) ) return ! 0 ; return ! 1 ; case d . BinaryExpression : return ! f ( a
2016-12-20 20:18:16 +00:00
h . init && g . push ( h . init ) , 1 === g . length ? h . init = g [ 0 ] : h . init = { type : d . SequenceExpression , expressions : g } , g = [ ] ) , j . push ( h ) ) ; g . length && j . push ( b ( g , h ) ) , a . body = j } function h ( a , b ) { var h ; return f = ! 1 , h = b . get ( "destructive" , { pathName : c } ) ? a : e . deepCopy ( a ) , e . traverse ( h , { enter : function ( a ) { switch ( a . type ) { case d . BlockStatement : case d . Program : g ( a ) } } } ) , { result : h , modified : f } } c = "transform-to-sequence-expression" , e = b ( "/lib/common.js" , a ) , d = e . Syntax , h . passName = c , a . exports = h } ( ) } ) , b . define ( "/lib/pass/transform-to-compound-assignment.js" , function ( a , c , d , e ) { ! function ( c , d , e , f , g ) { function h ( a , b ) { return a . type === b . type && ( a . type === d . Identifier && a . name === b . name ) } function i ( a ) { switch ( a ) { case "*" : case "/" : case "%" : case "+" : case "-" : case "<<" : case ">>" : case ">>>" : case "&" : case "^" : case "|" : return a + "=" } return null } function j ( a ) { switch ( a ) { case "*=" : case "/=" : case "%=" : case "+=" : case "-=" : case "<<=" : case ">>=" : case ">>>=" : case "&=" : case "^=" : case "|=" : return a } return null } function k ( a , b ) { var k , l , m ; return k = b . get ( "destructive" , { pathName : c } ) ? a : e . deepCopy ( a ) , g = ! 1 , l = null , m = f . analyze ( k , { directive : ! 0 } ) , m . attach ( ) , e . traverse ( k , { enter : function ( a ) { var b , c , e , f ; l = m . acquire ( a ) || l , a . type === d . AssignmentExpression && "=" === a . operator && ( b = a . left , c = a . right , c . type === d . BinaryExpression && h ( c . left , b ) ? ( e = i ( c . operator ) , e && ( g = ! 0 , a . operator = e , a . right = c . right ) ) : c . type === d . AssignmentExpression && h ( c . left , b ) && j ( c . operator ) && ( f = l . resolve ( a . left ) , f . isStatic ( ) && ( g = ! 0 , a . operator = c . operator , a . right = c . right ) ) ) } , leave : function ( a ) { l = m . release ( a ) || l } } ) , m . detach ( ) , { result : k , modified : g } } c = "transform-to-compound-assignment" , f = b ( "/node_modules/escope/escope.js" , a ) , e = b ( "/lib/common.js" , a ) , d = e . Syntax , k . passName = c , a . exports = k } ( ) } ) , b . define ( "/lib/pass/remove-wasted-blocks.js" , function ( a , c , d , e ) { ! function ( c , d , e , f ) { function g ( a ) { var b , c , g , h , i , j , k , l ; for ( i = [ ] , b = 0 , c = a . length ; b < c ; ++ b ) if ( j = a [ b ] , j . type === d . BlockStatement ) { for ( l = ! 0 , g = 0 , h = j . body . length ; g < h ; ++ g ) k = j . body [ g ] , e . isScopedDeclaration ( k ) && ( l = ! 1 ) ; l ? ( f = ! 0 , i = i . concat ( j . body ) ) : i . push ( j ) } else i . push ( j ) ; return i } function h ( a , b ) { var h ; return h = b . get ( "destructive" , { pathName : c } ) ? a : e . deepCopy ( a ) , f = ! 1 , h = e . replace ( h , { leave : function ( a , b ) { var c , h , i ; if ( a . type === d . BlockStatement || a . type === d . Program ) for ( c = 0 , h = a . body . length ; c < h ; ++ c ) if ( i = a . body [ c ] , i . type === d . BlockStatement ) { a . body = g ( a . body ) ; break } if ( b . type !== d . FunctionDeclaration && b . type !== d . FunctionExpression && b . type !== d . TryStatement && b . type !== d . CatchClause ) { for ( ; a . type === d . BlockStatement && 1 === a . body . length && ! e . isScopedDeclaration ( a . body [ 0 ] ) ; ) f = ! 0 , a = a . body [ 0 ] ; return a . type === d . BlockStatement && 0 === a . body . length ? ( f = ! 0 , { type : d . EmptyStatement } ) : a } } } ) , { result : h , modified : f } } c = "remove-wasted-blocks" , e = b ( "/lib/common.js" , a ) , d = e . Syntax , h . passName = c , a . exports = h } ( ) } ) , b . define ( "/lib/pass/remove-empty-statement.js" , function ( a , c , d , e ) { ! function ( c , d , e , f ) { function g ( a ) { var b , c , e , g ; for ( g = [ ] , b = 0 , c = a . length ; b < c ; ++ b ) e = a [ b ] , e . type === d . EmptyStatement ? f = ! 0 : g . push ( e ) ; return g } function h ( a ) { a . alternate && ( a . alternate . type === d . EmptyStatement ? ( f = ! 0 , a . alternate = null ) : a . consequent . type === d . EmptyStatement && ( f = ! 0 , a . consequent = a . alternate , a . alternate = null , a . test = e . moveLocation ( a . test , { type : d . UnaryExpression , operator : "!" , argument : a . test } ) ) ) } function i ( a , b ) { var i ; return f = ! 1 , i = b . get ( "destructive" , { pathName : c } ) ? a : e . deepCopy ( a ) , e . traverse ( i , { enter : function ( a ) { var b ; switch ( a . type ) { case d . BlockStatement : case d . Program : a . body = g ( a . body ) ; break ; case d . SwitchCase : a . consequent = g ( a . consequent ) ; break ; case d . IfStatement : h ( a ) ; break ; case d . SwitchStatement : a . cases . length && ( b = e . Array . last ( a . cases ) , ! b . test && e . Array . empty ( b . consequent ) && ( f = ! 0 , a . cases . pop ( ) ) ) } } } ) , { result : i , modified : f } } c = "remove-empty-statement" , e = b ( "/lib/common.js" , a ) , d = e . Syntax , i . passName = c , a . exports = i } ( ) } ) , b . define ( "/lib/pass/remove-unused-label.js" , function ( a , c , d , e ) { ! function ( c , d , e , f , g , h ) { function i ( a ) { this . set = new e , this . unused = [ ] , this . upper = a } function j ( a , b ) { var e ; return e = b . get ( "destructive" , { pathName : c } ) ? a : f . deepCopy ( a ) , g = null , h = ! 1 , e = f . replace ( e , { enter : function ( a ) { switch ( a . type ) { case d . Program : case d . FunctionDeclaration : case d . FunctionExpression : g = new i ( g ) ; break ; case d . LabeledStatement : g . register ( a ) ; break ; case d . BreakStatement : case d . Co
a ? this . _monthsShortStrictRegex : this . _monthsShortRegex ) : this . _monthsShortStrictRegex && a ? this . _monthsShortStrictRegex : this . _monthsShortRegex } function ba ( a ) { return this . _monthsParseExact ? ( f ( this , "_monthsRegex" ) || ca . call ( this ) , a ? this . _monthsStrictRegex : this . _monthsRegex ) : this . _monthsStrictRegex && a ? this . _monthsStrictRegex : this . _monthsRegex } function ca ( ) { function a ( a , b ) { return b . length - a . length } var b , c , d = [ ] , e = [ ] , f = [ ] ; for ( b = 0 ; b < 12 ; b ++ ) c = h ( [ 2e3 , b ] ) , d . push ( this . monthsShort ( c , "" ) ) , e . push ( this . months ( c , "" ) ) , f . push ( this . months ( c , "" ) ) , f . push ( this . monthsShort ( c , "" ) ) ; for ( d . sort ( a ) , e . sort ( a ) , f . sort ( a ) , b = 0 ; b < 12 ; b ++ ) d [ b ] = R ( d [ b ] ) , e [ b ] = R ( e [ b ] ) , f [ b ] = R ( f [ b ] ) ; this . _monthsRegex = new RegExp ( "^(" + f . join ( "|" ) + ")" , "i" ) , this . _monthsShortRegex = this . _monthsRegex , this . _monthsStrictRegex = new RegExp ( "^(" + e . join ( "|" ) + ")$" , "i" ) , this . _monthsShortStrictRegex = new RegExp ( "^(" + d . join ( "|" ) + ")$" , "i" ) } function da ( a ) { var b , c = a . _a ; return c && j ( a ) . overflow === - 2 && ( b = c [ wd ] < 0 || c [ wd ] > 11 ? wd : c [ xd ] < 1 || c [ xd ] > V ( c [ vd ] , c [ wd ] ) ? xd : c [ yd ] < 0 || c [ yd ] > 24 || 24 === c [ yd ] && ( 0 !== c [ zd ] || 0 !== c [ Ad ] || 0 !== c [ Bd ] ) ? yd : c [ zd ] < 0 || c [ zd ] > 59 ? zd : c [ Ad ] < 0 || c [ Ad ] > 59 ? Ad : c [ Bd ] < 0 || c [ Bd ] > 999 ? Bd : - 1 , j ( a ) . _overflowDayOfYear && ( b < vd || b > xd ) && ( b = xd ) , j ( a ) . _overflowWeeks && b === - 1 && ( b = Cd ) , j ( a ) . _overflowWeekday && b === - 1 && ( b = Dd ) , j ( a ) . overflow = b ) , a } function ea ( b ) { a . suppressDeprecationWarnings === ! 1 && "undefined" != typeof console && console . warn && console . warn ( "Deprecation warning: " + b ) } function fa ( a , b ) { var c = ! 0 ; return g ( function ( ) { return c && ( ea ( a + "\nArguments: " + Array . prototype . slice . call ( arguments ) . join ( ", " ) + "\n" + ( new Error ) . stack ) , c = ! 1 ) , b . apply ( this , arguments ) } , b ) } function ga ( a , b ) { Jd [ a ] || ( ea ( b ) , Jd [ a ] = ! 0 ) } function ha ( a ) { var b , c , d , e , f , g , h = a . _i , i = Kd . exec ( h ) || Ld . exec ( h ) ; if ( i ) { for ( j ( a ) . iso = ! 0 , b = 0 , c = Nd . length ; b < c ; b ++ ) if ( Nd [ b ] [ 1 ] . exec ( i [ 1 ] ) ) { e = Nd [ b ] [ 0 ] , d = Nd [ b ] [ 2 ] !== ! 1 ; break } if ( null == e ) return void ( a . _isValid = ! 1 ) ; if ( i [ 3 ] ) { for ( b = 0 , c = Od . length ; b < c ; b ++ ) if ( Od [ b ] [ 1 ] . exec ( i [ 3 ] ) ) { f = ( i [ 2 ] || " " ) + Od [ b ] [ 0 ] ; break } if ( null == f ) return void ( a . _isValid = ! 1 ) } if ( ! d && null != f ) return void ( a . _isValid = ! 1 ) ; if ( i [ 4 ] ) { if ( ! Md . exec ( i [ 4 ] ) ) return void ( a . _isValid = ! 1 ) ; g = "Z" } a . _f = e + ( f || "" ) + ( g || "" ) , wa ( a ) } else a . _isValid = ! 1 } function ia ( b ) { var c = Pd . exec ( b . _i ) ; return null !== c ? void ( b . _d = new Date ( + c [ 1 ] ) ) : ( ha ( b ) , void ( b . _isValid === ! 1 && ( delete b . _isValid , a . createFromInputFallback ( b ) ) ) ) } function ja ( a , b , c , d , e , f , g ) { var h = new Date ( a , b , c , d , e , f , g ) ; return a < 100 && a >= 0 && isFinite ( h . getFullYear ( ) ) && h . setFullYear ( a ) , h } function ka ( a ) { var b = new Date ( Date . UTC . apply ( null , arguments ) ) ; return a < 100 && a >= 0 && isFinite ( b . getUTCFullYear ( ) ) && b . setUTCFullYear ( a ) , b } function la ( a ) { return ma ( a ) ? 366 : 365 } function ma ( a ) { return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0 } function na ( ) { return ma ( this . year ( ) ) } function oa ( a , b , c ) { var d = 7 + b - c , e = ( 7 + ka ( a , 0 , d ) . getUTCDay ( ) - b ) % 7 ; return - e + d - 1 } function pa ( a , b , c , d , e ) { var f , g , h = ( 7 + c - d ) % 7 , i = oa ( a , d , e ) , j = 1 + 7 * ( b - 1 ) + h + i ; return j <= 0 ? ( f = a - 1 , g = la ( f ) + j ) : j > la ( a ) ? ( f = a + 1 , g = j - la ( a ) ) : ( f = a , g = j ) , { year : f , dayOfYear : g } } function qa ( a , b , c ) { var d , e , f = oa ( a . year ( ) , b , c ) , g = Math . floor ( ( a . dayOfYear ( ) - f - 1 ) / 7 ) + 1 ; return g < 1 ? ( e = a . year ( ) - 1 , d = g + ra ( e , b , c ) ) : g > ra ( a . year ( ) , b , c ) ? ( d = g - ra ( a . year ( ) , b , c ) , e = a . year ( ) + 1 ) : ( e = a . year ( ) , d = g ) , { week : d , year : e } } function ra ( a , b , c ) { var d = oa ( a , b , c ) , e = oa ( a + 1 , b , c ) ; return ( la ( a ) - d + e ) / 7 } function sa ( a , b , c ) { return null != a ? a : null != b ? b : c } function ta ( b ) { var c = new Date ( a . now ( ) ) ; return b . _useUTC ? [ c . getUTCFullYear ( ) , c . getUTCMonth ( ) , c . getUTCDate ( ) ] : [ c . getFullYear ( ) , c . getMonth ( ) , c . getDate ( ) ] } function ua ( a ) { var b , c , d , e , f = [ ] ; if ( ! a . _d ) { for ( d = ta ( a ) , a . _w && null == a . _a [ xd ] && null == a . _a [ wd ] && va ( a ) , a . _dayOfYear && ( e = sa ( a . _a [ vd ] , d [ vd ] ) , a . _dayOfYear > la ( e ) && ( j ( a ) . _overflowDayOfYear = ! 0 ) , c = ka ( e , 0 , a . _dayOfYear ) , a . _a [ wd ] = c . getUTCMonth ( ) , a . _a [ xd ] = c . getUTCDate ( ) ) , b = 0 ; b < 3 && null == a . _a [ b ] ; ++ b ) a . _a [ b ] = f [ b ] = d [ b ] ; for ( ; b < 7 ; b ++ ) a . _a [ b ] = f [ b ] = null == a . _a [ b ] ? 2 === b ? 1 : 0 : a . _a [ b ] ; 24 === a . _a [ yd ] && 0 === a . _a [ zd ] && 0 === a . _a [ Ad ] && 0 === a . _a [ Bd ] && ( a . _nextDay = ! 0 , a . _a [ yd ] = 0 ) , a . _d = ( a . _useUTC ? ka : ja ) . apply ( null , f ) , null != a . _tzm && a . _d . setUTCMinutes ( a . _d . getUTCMinutes ( ) - a . _tzm ) , a . _nextDay && ( a . _a [ yd ] = 24 ) } } function va ( a ) { var b , c , d , e , f , g , h , i ; b = a . _w , null != b . GG || null != b . W || null != b . E ? ( f = 1 , g = 4 , c = sa ( b . GG , a . _a [ vd ] , qa ( Ea ( ) , 1 , 4 ) . year ) , d = sa ( b . W , 1 ) , e = sa ( b . E , 1 ) , ( e < 1 || e > 7 ) && ( i = ! 0 ) ) : ( f = a .
re . monthsParse = Y , re . _monthsRegex = Id , re . monthsRegex = ba , re . _monthsShortRegex = Hd , re . monthsShortRegex = aa , re . week = Qb , re . _week = $d , re . firstDayOfYear = Sb , re . firstDayOfWeek = Rb , re . weekdays = Wb , re . _weekdays = ae , re . weekdaysMin = Yb , re . _weekdaysMin = ce , re . weekdaysShort = Xb , re . _weekdaysShort = be , re . weekdaysParse = Zb , re . isPM = fc , re . _meridiemParse = de , re . meridiem = gc , x ( "en" , { ordinalParse : /\d{1,2}(th|st|nd|rd)/ , ordinal : function ( a ) { var b = a % 10 , c = 1 === r ( a % 100 / 10 ) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th" ; return a + c } } ) , a . lang = fa ( "moment.lang is deprecated. Use moment.locale instead." , x ) , a . langData = fa ( "moment.langData is deprecated. Use moment.localeData instead." , z ) ; var se = Math . abs , te = Lc ( "ms" ) , ue = Lc ( "s" ) , ve = Lc ( "m" ) , we = Lc ( "h" ) , xe = Lc ( "d" ) , ye = Lc ( "w" ) , ze = Lc ( "M" ) , Ae = Lc ( "y" ) , Be = Nc ( "milliseconds" ) , Ce = Nc ( "seconds" ) , De = Nc ( "minutes" ) , Ee = Nc ( "hours" ) , Fe = Nc ( "days" ) , Ge = Nc ( "months" ) , He = Nc ( "years" ) , Ie = Math . round , Je = { s : 45 , m : 45 , h : 22 , d : 26 , M : 11 } , Ke = Math . abs , Le = Ia . prototype ; Le . abs = Bc , Le . add = Dc , Le . subtract = Ec , Le . as = Jc , Le . asMilliseconds = te , Le . asSeconds = ue , Le . asMinutes = ve , Le . asHours = we , Le . asDays = xe , Le . asWeeks = ye , Le . asMonths = ze , Le . asYears = Ae , Le . valueOf = Kc , Le . _bubble = Gc , Le . get = Mc , Le . milliseconds = Be , Le . seconds = Ce , Le . minutes = De , Le . hours = Ee , Le . days = Fe , Le . weeks = Oc , Le . months = Ge , Le . years = He , Le . humanize = Sc , Le . toISOString = Tc , Le . toString = Tc , Le . toJSON = Tc , Le . locale = ub , Le . localeData = vb , Le . toIsoString = fa ( "toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)" , Tc ) , Le . lang = Zd , J ( "X" , 0 , 0 , "unix" ) , J ( "x" , 0 , 0 , "valueOf" ) , O ( "x" , od ) , O ( "X" , rd ) , S ( "X" , function ( a , b , c ) { c . _d = new Date ( 1e3 * parseFloat ( a , 10 ) ) } ) , S ( "x" , function ( a , b , c ) { c . _d = new Date ( r ( a ) ) } ) , a . version = "2.11.2" , b ( Ea ) , a . fn = ke , a . min = Ga , a . max = Ha , a . now = Td , a . utc = h , a . unix = kc , a . months = wc , a . isDate = d , a . locale = x , a . invalid = l , a . duration = Za , a . isMoment = p , a . weekdays = yc , a . parseZone = lc , a . localeData = z , a . isDuration = Ja , a . monthsShort = xc , a . weekdaysMin = Ac , a . defineLocale = y , a . weekdaysShort = zc , a . normalizeUnits = B , a . relativeTimeThreshold = Rc , a . prototype = ke ; var Me = a ; return Me } ) , / * * @ l i c e n s e
2016-11-28 10:42:58 +00:00
=== === === === === === === === === === === === === === === === === === === === === === === ===
moment - timezone . js
version : 0.4 . 1
authors : Tim Wood
license : MIT
github . com / moment / moment - timezone
* /
function ( a , b ) { "function" == typeof define && define . amd ? define ( [ "moment" ] , b ) : "object" == typeof exports ? module . exports = b ( require ( "moment" ) ) : b ( a . moment ) } ( this , function ( a ) { function b ( a ) { return a > 96 ? a - 87 : a > 64 ? a - 29 : a - 48 } function c ( a ) { var c , d = 0 , e = a . split ( "." ) , f = e [ 0 ] , g = e [ 1 ] || "" , h = 1 , i = 0 , j = 1 ; for ( 45 === a . charCodeAt ( 0 ) && ( d = 1 , j = - 1 ) , d ; d < f . length ; d ++ ) c = b ( f . charCodeAt ( d ) ) , i = 60 * i + c ; for ( d = 0 ; d < g . length ; d ++ ) h /= 60 , c = b ( g . charCodeAt ( d ) ) , i += c * h ; return i * j } function d ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) a [ b ] = c ( a [ b ] ) } function e ( a , b ) { for ( var c = 0 ; c < b ; c ++ ) a [ c ] = Math . round ( ( a [ c - 1 ] || 0 ) + 6e4 * a [ c ] ) ; a [ b - 1 ] = 1 / 0 } function f ( a , b ) { var c , d = [ ] ; for ( c = 0 ; c < b . length ; c ++ ) d [ c ] = a [ b [ c ] ] ; return d } function g ( a ) { var b = a . split ( "|" ) , c = b [ 2 ] . split ( " " ) , g = b [ 3 ] . split ( "" ) , h = b [ 4 ] . split ( " " ) ; return d ( c ) , d ( g ) , d ( h ) , e ( h , g . length ) , { name : b [ 0 ] , abbrs : f ( b [ 1 ] . split ( " " ) , g ) , offsets : f ( c , g ) , untils : h } } function h ( a ) { a && this . _set ( g ( a ) ) } function i ( a ) { return ( a || "" ) . toLowerCase ( ) . replace ( /\//g , "_" ) } function j ( a ) { var b , c , d ; for ( "string" == typeof a && ( a = [ a ] ) , b = 0 ; b < a . length ; b ++ ) c = a [ b ] . split ( "|" ) [ 0 ] , d = i ( c ) , v [ d ] = a [ b ] , x [ d ] = c } function k ( a , b ) { a = i ( a ) ; var c , d = v [ a ] ; return d instanceof h ? d : "string" == typeof d ? ( d = new h ( d ) , v [ a ] = d , d ) : w [ a ] && b !== k && ( c = k ( w [ a ] , k ) ) ? ( d = v [ a ] = new h , d . _set ( c ) , d . name = x [ a ] , d ) : null } function l ( ) { var a , b = [ ] ; for ( a in x ) x . hasOwnProperty ( a ) && ( v [ a ] || v [ w [ a ] ] ) && x [ a ] && b . push ( x [ a ] ) ; return b . sort ( ) } function m ( a ) { var b , c , d , e ; for ( "string" == typeof a && ( a = [ a ] ) , b = 0 ; b < a . length ; b ++ ) c = a [ b ] . split ( "|" ) , d = i ( c [ 0 ] ) , e = i ( c [ 1 ] ) , w [ d ] = e , x [ d ] = c [ 0 ] , w [ e ] = d , x [ e ] = c [ 1 ] } function n ( a ) { j ( a . zones ) , m ( a . links ) , r . dataVersion = a . version } function o ( a ) { return o . didShowError || ( o . didShowError = ! 0 , q ( "moment.tz.zoneExists('" + a + "') has been deprecated in favor of !moment.tz.zone('" + a + "')" ) ) , ! ! k ( a ) } function p ( a ) { return ! ( ! a . _a || void 0 !== a . _tzm ) } function q ( a ) { "undefined" != typeof console && "function" == typeof console . error && console . error ( a ) } function r ( b ) { var c = Array . prototype . slice . call ( arguments , 0 , - 1 ) , d = arguments [ arguments . length - 1 ] , e = k ( d ) , f = a . utc . apply ( null , c ) ; return e && ! a . isMoment ( b ) && p ( f ) && f . add ( e . parse ( f ) , "minutes" ) , f . tz ( d ) , f } function s ( a ) { return function ( ) { return this . _z ? this . _z . abbr ( this ) : a . call ( this ) } } function t ( a ) { return function ( ) { return this . _z = null , a . apply ( this , arguments ) } } if ( void 0 !== a . tz ) return q ( "Moment Timezone " + a . tz . version + " was already loaded " + ( a . tz . dataVersion ? "with data from " : "without any data" ) + a . tz . dataVersion ) , a ; var u = "0.4.1" , v = { } , w = { } , x = { } , y = a . version . split ( "." ) , z = + y [ 0 ] , A = + y [ 1 ] ; ( z < 2 || 2 === z && A < 6 ) && q ( "Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js " + a . version + ". See momentjs.com" ) , h . prototype = { _set : function ( a ) { this . name = a . name , this . abbrs = a . abbrs , this . untils = a . untils , this . offsets = a . offsets } , _index : function ( a ) { var b , c = + a , d = this . untils ; for ( b = 0 ; b < d . length ; b ++ ) if ( c < d [ b ] ) return b } , parse : function ( a ) { var b , c , d , e , f = + a , g = this . offsets , h = this . untils , i = h . length - 1 ; for ( e = 0 ; e < i ; e ++ ) if ( b = g [ e ] , c = g [ e + 1 ] , d = g [ e ? e - 1 : e ] , b < c && r . moveAmbiguousForward ? b = c : b > d && r . moveInvalidForward && ( b = d ) , f < h [ e ] - 6e4 * b ) return g [ e ] ; return g [ i ] } , abbr : function ( a ) { return this . abbrs [ this . _index ( a ) ] } , offset : function ( a ) { return this . offsets [ this . _index ( a ) ] } } , r . version = u , r . dataVersion = "" , r . _zones = v , r . _links = w , r . _names = x , r . add = j , r . link = m , r . load = n , r . zone = k , r . zoneExists = o , r . names = l , r . Zone = h , r . unpack = g , r . unpackBase60 = c , r . needsOffset = p , r . moveInvalidForward = ! 0 , r . moveAmbiguousForward = ! 1 ; var B = a . fn ; a . tz = r , a . defaultZone = null , a . updateOffset = function ( b , c ) { var d , e = a . defaultZone ; void 0 === b . _z && ( e && p ( b ) && ! b . _isUTC && ( b . _d = a . utc ( b . _a ) . _d , b . utc ( ) . add ( e . parse ( b ) , "minutes" ) ) , b . _z = e ) , b . _z && ( d = b . _z . offset ( b ) , Math . abs ( d ) < 16 && ( d /= 60 ) , void 0 !== b . utcOffset ? b . utcOffset ( - d , c ) : b . zone ( d , c ) ) } , B . tz = function ( b ) { return b ? ( this . _z = k ( b ) , this . _z ? a . updateOffset ( this ) : q ( "Moment Timezone has no data for " + b + ". See http://momentjs.com/timezone/docs/#/data-loading/." ) , this ) : this . _z ? this . _z . name : void 0 } , B . zoneName = s ( B . zoneName ) , B . zoneAbbr = s ( B . zoneAbbr ) , B . utc = t ( B . utc ) , a . tz . setDefault = function ( b ) { return ( z < 2 || 2 === z && A < 9 ) && q ( "Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + a . version + "." ) , a . defaultZone = b ? k ( b ) : null , a } ; var C = a . momentProperties ; return "[object Array]" === Object . prototype .
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
=== === === === === === === === === === === === === === === === === === === === === === === ===
Google Code Prettify
Copyright ( C ) 2006 Google Inc .
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
* /
var IN _GLOBAL _SCOPE = ! 0 ; window . PR _SHOULD _USE _CONTINUATION = ! 0 ; var prettyPrintOne , prettyPrint ; ! function ( ) { function a ( a ) { function b ( a ) { var b = a . charCodeAt ( 0 ) ; if ( 92 !== b ) return b ; var c = a . charAt ( 1 ) ; return b = l [ c ] , b ? b : "0" <= c && c <= "7" ? parseInt ( a . substring ( 1 ) , 8 ) : "u" === c || "x" === c ? parseInt ( a . substring ( 2 ) , 16 ) : a . charCodeAt ( 1 ) } function c ( a ) { if ( a < 32 ) return ( a < 16 ? "\\x0" : "\\x" ) + a . toString ( 16 ) ; var b = String . fromCharCode ( a ) ; return "\\" === b || "-" === b || "]" === b || "^" === b ? "\\" + b : b } function d ( a ) { var d = a . substring ( 1 , a . length - 1 ) . match ( new RegExp ( "\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]" , "g" ) ) , e = [ ] , f = "^" === d [ 0 ] , g = [ "[" ] ; f && g . push ( "^" ) ; for ( var h = f ? 1 : 0 , i = d . length ; h < i ; ++ h ) { var j = d [ h ] ; if ( /\\[bdsw]/i . test ( j ) ) g . push ( j ) ; else { var k , l = b ( j ) ; h + 2 < i && "-" === d [ h + 1 ] ? ( k = b ( d [ h + 2 ] ) , h += 2 ) : k = l , e . push ( [ l , k ] ) , k < 65 || l > 122 || ( k < 65 || l > 90 || e . push ( [ 32 | Math . max ( 65 , l ) , 32 | Math . min ( k , 90 ) ] ) , k < 97 || l > 122 || e . push ( [ Math . max ( 97 , l ) & - 33 , Math . min ( k , 122 ) & - 33 ] ) ) } } e . sort ( function ( a , b ) { return a [ 0 ] - b [ 0 ] || b [ 1 ] - a [ 1 ] } ) ; for ( var m = [ ] , n = [ ] , h = 0 ; h < e . length ; ++ h ) { var o = e [ h ] ; o [ 0 ] <= n [ 1 ] + 1 ? n [ 1 ] = Math . max ( n [ 1 ] , o [ 1 ] ) : m . push ( n = o ) } for ( var h = 0 ; h < m . length ; ++ h ) { var o = m [ h ] ; g . push ( c ( o [ 0 ] ) ) , o [ 1 ] > o [ 0 ] && ( o [ 1 ] + 1 > o [ 0 ] && g . push ( "-" ) , g . push ( c ( o [ 1 ] ) ) ) } return g . push ( "]" ) , g . join ( "" ) } function e ( a ) { for ( var b = a . source . match ( new RegExp ( "(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)" , "g" ) ) , e = b . length , h = [ ] , i = 0 , j = 0 ; i < e ; ++ i ) { var k = b [ i ] ; if ( "(" === k ) ++ j ; else if ( "\\" === k . charAt ( 0 ) ) { var l = + k . substring ( 1 ) ; l && ( l <= j ? h [ l ] = - 1 : b [ i ] = c ( l ) ) } } for ( var i = 1 ; i < h . length ; ++ i ) - 1 === h [ i ] && ( h [ i ] = ++ f ) ; for ( var i = 0 , j = 0 ; i < e ; ++ i ) { var k = b [ i ] ; if ( "(" === k ) ++ j , h [ j ] || ( b [ i ] = "(?:" ) ; else if ( "\\" === k . charAt ( 0 ) ) { var l = + k . substring ( 1 ) ; l && l <= j && ( b [ i ] = "\\" + h [ l ] ) } } for ( var i = 0 ; i < e ; ++ i ) "^" === b [ i ] && "^" !== b [ i + 1 ] && ( b [ i ] = "" ) ; if ( a . ignoreCase && g ) for ( var i = 0 ; i < e ; ++ i ) { var k = b [ i ] , m = k . charAt ( 0 ) ; k . length >= 2 && "[" === m ? b [ i ] = d ( k ) : "\\" !== m && ( b [ i ] = k . replace ( /[a-zA-Z]/g , function ( a ) { var b = a . charCodeAt ( 0 ) ; return "[" + String . fromCharCode ( b & - 33 , 32 | b ) + "]" } ) ) } return b . join ( "" ) } for ( var f = 0 , g = ! 1 , h = ! 1 , i = 0 , j = a . length ; i < j ; ++ i ) { var k = a [ i ] ; if ( k . ignoreCase ) h = ! 0 ; else if ( /[a-z]/i . test ( k . source . replace ( /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi , "" ) ) ) { g = ! 0 , h = ! 1 ; break } } for ( var l = { b : 8 , t : 9 , n : 10 , v : 11 , f : 12 , r : 13 } , m = [ ] , i = 0 , j = a . length ; i < j ; ++ i ) { var k = a [ i ] ; if ( k . global || k . multiline ) throw new Error ( "" + k ) ; m . push ( "(?:" + e ( k ) + ")" ) } return new RegExp ( m . join ( "|" ) , h ? "gi" : "g" ) } function b ( a , b ) { function c ( a ) { var i = a . nodeType ; if ( 1 == i ) { if ( d . test ( a . className ) ) return ; for ( var j = a . firstChild ; j ; j = j . nextSibling ) c ( j ) ; var k = a . nodeName . toLowerCase ( ) ; "br" !== k && "li" !== k || ( e [ h ] = "\n" , g [ h << 1 ] = f ++ , g [ h ++ << 1 | 1 ] = a ) } else if ( 3 == i || 4 == i ) { var l = a . nodeValue ; l . length && ( l = b ? l . replace ( /\r\n?/g , "\n" ) : l . replace ( /[ \t\r\n]+/g , " " ) , e [ h ] = l , g [ h << 1 ] = f , f += l . length , g [ h ++ << 1 | 1 ] = a ) } } var d = /(?:^|\s)nocode(?:\s|$)/ , e = [ ] , f = 0 , g = [ ] , h = 0 ; return c ( a ) , { sourceCode : e . join ( "" ) . replace ( /\n$/ , "" ) , spans : g } } function c ( a , b , c , d ) { if ( b ) { var e = { sourceCode : b , basePos : a } ; c ( e ) , d . push . apply ( d , e . decorations ) } } function d ( a ) { for ( var b = void 0 , c = a . firstChild ; c ; c = c . nextSibling ) { var d = c . nodeType ; b = 1 === d ? b ? a : c : 3 === d && R . test ( c . nodeValue ) ? a : b } return b === a ? void 0 : b } function e ( b , d ) { var e , f = { } ; ! function ( ) { for ( var c = b . concat ( d ) , g = [ ] , h = { } , i = 0 , j = c . length ; i < j ; ++ i ) { var k = c [ i ] , l = k [ 3 ] ; if ( l ) for ( var m = l . length ; -- m >= 0 ; ) f [ l . charAt ( m ) ] = k ; var n = k [ 1 ] , o = "" + n ; h . hasOwnProperty ( o ) || ( g . push ( n ) , h [ o ] = null ) } g . push ( /[\0-\uffff]/ ) , e = a ( g ) } ( ) ; var g = d . length , h = function ( a ) { for ( var b = a . sourceCode , i = a . basePos , k = [ i , J ] , l = 0 , m = b . match ( e ) || [ ] , n = { } , o = 0 , p = m . length ; o < p ; ++ o ) { var q , r = m [ o ] , s = n [ r ] , t = void 0 ; if ( "string" == typeof s ) q = ! 1 ; else { var u = f [ r . charAt ( 0 ) ] ; if ( u ) t = r . match ( u [ 1 ] ) , s = u [ 0 ] ; else { for ( var v = 0 ; v < g ; ++ v ) if ( u = d [ v ] , t = r . match ( u [ 1 ] ) ) { s = u [ 0 ] ; break } t || ( s = J ) } q = s . length >= 5 && "lang-" === s . substring ( 0 , 5 ) , ! q || t && "string" == typeof t [ 1 ] || ( q = ! 1 , s = M ) , q || ( n [ r ] = s ) } var w = l ; if ( l += r . length , q ) { var x = t [ 1 ] , y = r . indexOf ( x ) , z = y + x . length ; t [ 2 ] && ( z = r . length - t [ 2 ] . length , y = z - x . length ) ; var A = s . substring ( 5 ) ; c ( i + w , r . substring ( 0 , y ) , h , k ) , c ( i + w + y , x , j ( A , x ) , k ) , c ( i + w + z , r . substring ( z ) , h , k ) } else k . push ( i + w , s ) } a . decorations = k } ; return h } functi
=== === === === === === === === === === === === === === === === === === === === === === === ===
vkBeautify - javascript plugin to pretty - print or minify text in XML , JSON , CSS and SQL formats .
Version - 0.99 . 00. beta
Copyright ( c ) 2012 Vadim Kiryukhin
vkiryukhin @ gmail . com
http : //www.eslinstructor.net/vkbeautify/
Dual licensed under the MIT and GPL licenses :
http : //www.opensource.org/licenses/mit-license.php
http : //www.gnu.org/licenses/gpl.html
* /
function ( ) { function a ( a ) { var b = " " ; if ( isNaN ( parseInt ( a ) ) ) b = a ; else switch ( a ) { case 1 : b = " " ; break ; case 2 : b = " " ; break ; case 3 : b = " " ; break ; case 4 : b = " " ; break ; case 5 : b = " " ; break ; case 6 : b = " " ; break ; case 7 : b = " " ; break ; case 8 : b = " " ; break ; case 9 : b = " " ; break ; case 10 : b = " " ; break ; case 11 : b = " " ; break ; case 12 : b = " " } for ( var c = [ "\n" ] , d = 0 ; d < 100 ; d ++ ) c . push ( c [ d ] + b ) ; return c } function b ( ) { this . step = " " , this . shift = a ( this . step ) } function c ( a , b ) { return b - ( a . replace ( /\(/g , "" ) . length - a . replace ( /\)/g , "" ) . length ) } function d ( a , b ) { return a . replace ( /\s{1,}/g , " " ) . replace ( / AND /gi , "~::~" + b + b + "AND " ) . replace ( / BETWEEN /gi , "~::~" + b + "BETWEEN " ) . replace ( / CASE /gi , "~::~" + b + "CASE " ) . replace ( / ELSE /gi , "~::~" + b + "ELSE " ) . replace ( / END /gi , "~::~" + b + "END " ) . replace ( / FROM /gi , "~::~FROM " ) . replace ( / GROUP\s{1,}BY/gi , "~::~GROUP BY " ) . replace ( / HAVING /gi , "~::~HAVING " ) . replace ( / IN /gi , " IN " ) . replace ( / JOIN /gi , "~::~JOIN " ) . replace ( / CROSS~::~{1,}JOIN /gi , "~::~CROSS JOIN " ) . replace ( / INNER~::~{1,}JOIN /gi , "~::~INNER JOIN " ) . replace ( / LEFT~::~{1,}JOIN /gi , "~::~LEFT JOIN " ) . replace ( / RIGHT~::~{1,}JOIN /gi , "~::~RIGHT JOIN " ) . replace ( / ON /gi , "~::~" + b + "ON " ) . replace ( / OR /gi , "~::~" + b + b + "OR " ) . replace ( / ORDER\s{1,}BY/gi , "~::~ORDER BY " ) . replace ( / OVER /gi , "~::~" + b + "OVER " ) . replace ( /\(\s{0,}SELECT /gi , "~::~(SELECT " ) . replace ( /\)\s{0,}SELECT /gi , ")~::~SELECT " ) . replace ( / THEN /gi , " THEN~::~" + b ) . replace ( / UNION /gi , "~::~UNION~::~" ) . replace ( / USING /gi , "~::~USING " ) . replace ( / WHEN /gi , "~::~" + b + "WHEN " ) . replace ( / WHERE /gi , "~::~WHERE " ) . replace ( / WITH /gi , "~::~WITH " ) . replace ( / ALL /gi , " ALL " ) . replace ( / AS /gi , " AS " ) . replace ( / ASC /gi , " ASC " ) . replace ( / DESC /gi , " DESC " ) . replace ( / DISTINCT /gi , " DISTINCT " ) . replace ( / EXISTS /gi , " EXISTS " ) . replace ( / NOT /gi , " NOT " ) . replace ( / NULL /gi , " NULL " ) . replace ( / LIKE /gi , " LIKE " ) . replace ( /\s{0,}SELECT /gi , "SELECT " ) . replace ( /\s{0,}UPDATE /gi , "UPDATE " ) . replace ( / SET /gi , " SET " ) . replace ( /~::~{1,}/g , "~::~" ) . split ( "~::~" ) } b . prototype . xml = function ( b , c ) { var d = b . replace ( />\s{0,}</g , "><" ) . replace ( /</g , "~::~<" ) . replace ( /\s*xmlns\:/g , "~::~xmlns:" ) . replace ( /\s*xmlns\=/g , "~::~xmlns=" ) . split ( "~::~" ) , e = d . length , f = ! 1 , g = 0 , h = "" , i = 0 , j = c ? a ( c ) : this . shift ; for ( i = 0 ; i < e ; i ++ ) d [ i ] . search ( /<!/ ) > - 1 ? ( h += j [ g ] + d [ i ] , f = ! 0 , ( d [ i ] . search ( /-->/ ) > - 1 || d [ i ] . search ( /\]>/ ) > - 1 || d [ i ] . search ( /!DOCTYPE/ ) > - 1 ) && ( f = ! 1 ) ) : d [ i ] . search ( /-->/ ) > - 1 || d [ i ] . search ( /\]>/ ) > - 1 ? ( h += d [ i ] , f = ! 1 ) : /^<\w/ . exec ( d [ i - 1 ] ) && /^<\/\w/ . exec ( d [ i ] ) && /^<[\w:\-\.\,]+/ . exec ( d [ i - 1 ] ) == /^<\/[\w:\-\.\,]+/ . exec ( d [ i ] ) [ 0 ] . replace ( "/" , "" ) ? ( h += d [ i ] , f || g -- ) : d [ i ] . search ( /<\w/ ) > - 1 && d [ i ] . search ( /<\// ) == - 1 && d [ i ] . search ( /\/>/ ) == - 1 ? h = h += f ? d [ i ] : j [ g ++ ] + d [ i ] : d [ i ] . search ( /<\w/ ) > - 1 && d [ i ] . search ( /<\// ) > - 1 ? h = h += f ? d [ i ] : j [ g ] + d [ i ] : d [ i ] . search ( /<\// ) > - 1 ? h = h += f ? d [ i ] : j [ -- g ] + d [ i ] : d [ i ] . search ( /\/>/ ) > - 1 ? h = h += f ? d [ i ] : j [ g ] + d [ i ] : h += d [ i ] . search ( /<\?/ ) > - 1 ? j [ g ] + d [ i ] : d [ i ] . search ( /xmlns\:/ ) > - 1 || d [ i ] . search ( /xmlns\=/ ) > - 1 ? j [ g ] + d [ i ] : d [ i ] ; return "\n" == h [ 0 ] ? h . slice ( 1 ) : h } , b . prototype . json = function ( a , b ) { var b = b ? b : this . step ; return "undefined" == typeof JSON ? a : "string" == typeof a ? JSON . stringify ( JSON . parse ( a ) , null , b ) : "object" == typeof a ? JSON . stringify ( a , null , b ) : a } , b . prototype . css = function ( b , c ) { var d = b . replace ( /\s{1,}/g , " " ) . replace ( /\{/g , "{~::~" ) . replace ( /\}/g , "~::~}~::~" ) . replace ( /\;/g , ";~::~" ) . replace ( /\/\*/g , "~::~/*" ) . replace ( /\*\//g , "*/~::~" ) . replace ( /~::~\s{0,}~::~/g , "~::~" ) . split ( "~::~" ) , e = d . length , f = 0 , g = "" , h = 0 , i = c ? a ( c ) : this . shift ; for ( h = 0 ; h < e ; h ++ ) g += /\{/ . exec ( d [ h ] ) ? i [ f ++ ] + d [ h ] : /\}/ . exec ( d [ h ] ) ? i [ -- f ] + d [ h ] : /\*\\/ . exec ( d [ h ] ) ? i [ f ] + d [ h ] : i [ f ] + d [ h ] ; return g . replace ( /^\n{1,}/ , "" ) } , b . prototype . sql = function ( b , e ) { var f = b . replace ( /\s{1,}/g , " " ) . replace ( /\'/gi , "~::~'" ) . split ( "~::~" ) , g = f . length , h = [ ] , i = 0 , j = this . step , k = 0 , l = "" , m = 0 , n = e ? a ( e ) : this . shift ; for ( m = 0 ; m < g ; m ++ ) h = m % 2 ? h . concat ( f [ m ] ) : h . concat ( d ( f [ m ] , j ) ) ; for ( g = h . length , m = 0 ; m < g ; m ++ ) { k = c ( h [ m ] , k ) , /\s{0,}\s{0,}SELECT\s{0,}/ . exec ( h [ m ] ) && ( h [ m ] = h [ m ] . replace ( /\,/g , ",\n" + j + j ) ) , /\s{0,}\s{0,}SET\s{0,}/ . exec ( h [ m ] ) && ( h [ m ] = h [ m ] . replace ( /\,/g , ",\n" + j + j ) ) , /\s{0,}\(\s{0,}SELECT\s{0,}/ . exec ( h [ m ] ) ? ( i ++ , l += n [ i ] + h [ m ] ) : /\'/ . exec ( h [ m ] ) ? ( k < 1 && i && i -- , l += h [ m ] ) : ( l += n [ i ] + h [ m ] ,
=== === === === === === === === === === === === === === === === === === === === === === === ===
Sortable
@ author RubaXa < trash @ rubaxa . org >
@ license MIT
* /
2016-12-20 18:49:25 +00:00
function ( a ) { "function" == typeof define && define . amd ? define ( a ) : "undefined" != typeof module && "undefined" != typeof module . exports ? module . exports = a ( ) : "undefined" != typeof Package ? Sortable = a ( ) : window . Sortable = a ( ) } ( function ( ) { function a ( a , b ) { if ( ! a || ! a . nodeType || 1 !== a . nodeType ) throw "Sortable: `el` must be HTMLElement, and not " + { } . toString . call ( a ) ; this . el = a , this . options = b = s ( { } , b ) , a [ M ] = this ; var c = { group : Math . random ( ) , sort : ! 0 , disabled : ! 1 , store : null , handle : null , scroll : ! 0 , scrollSensitivity : 30 , scrollSpeed : 10 , draggable : /[uo]l/i . test ( a . nodeName ) ? "li" : ">*" , ghostClass : "sortable-ghost" , chosenClass : "sortable-chosen" , ignore : "a, img" , filter : null , animation : 0 , setData : function ( a , b ) { a . setData ( "Text" , b . textContent ) } , dropBubble : ! 1 , dragoverBubble : ! 1 , dataIdAttr : "data-id" , delay : 0 , forceFallback : ! 1 , fallbackClass : "sortable-fallback" , fallbackOnBody : ! 1 } ; for ( var d in c ) ! ( d in b ) && ( b [ d ] = c [ d ] ) ; W ( b ) ; for ( var f in this ) "_" === f . charAt ( 0 ) && ( this [ f ] = this [ f ] . bind ( this ) ) ; this . nativeDraggable = ! b . forceFallback && Q , e ( a , "mousedown" , this . _onTapStart ) , e ( a , "touchstart" , this . _onTapStart ) , this . nativeDraggable && ( e ( a , "dragover" , this ) , e ( a , "dragenter" , this ) ) , U . push ( this . _onDragOver ) , b . store && this . sort ( b . store . get ( this ) ) } function b ( a ) { w && w . state !== a && ( h ( w , "display" , a ? "none" : "" ) , ! a && w . state && x . insertBefore ( w , t ) , w . state = a ) } function c ( a , b , c ) { if ( a ) { c = c || O ; do if ( ">*" === b && a . parentNode === c || q ( a , b ) ) return a ; while ( a !== c && ( a = a . parentNode ) ) } return null } function d ( a ) { a . dataTransfer && ( a . dataTransfer . dropEffect = "move" ) , a . preventDefault ( ) } function e ( a , b , c ) { a . addEventListener ( b , c , ! 1 ) } function f ( a , b , c ) { a . removeEventListener ( b , c , ! 1 ) } function g ( a , b , c ) { if ( a ) if ( a . classList ) a . classList [ c ? "add" : "remove" ] ( b ) ; else { var d = ( " " + a . className + " " ) . replace ( L , " " ) . replace ( " " + b + " " , " " ) ; a . className = ( d + ( c ? " " + b : "" ) ) . replace ( L , " " ) } } function h ( a , b , c ) { var d = a && a . style ; if ( d ) { if ( void 0 === c ) return O . defaultView && O . defaultView . getComputedStyle ? c = O . defaultView . getComputedStyle ( a , "" ) : a . currentStyle && ( c = a . currentStyle ) , void 0 === b ? c : c [ b ] ; b in d || ( b = "-webkit-" + b ) , d [ b ] = c + ( "string" == typeof c ? "" : "px" ) } } function i ( a , b , c ) { if ( a ) { var d = a . getElementsByTagName ( b ) , e = 0 , f = d . length ; if ( c ) for ( ; e < f ; e ++ ) c ( d [ e ] , e ) ; return d } return [ ] } function j ( a , b , c , d , e , f , g ) { var h = O . createEvent ( "Event" ) , i = ( a || b [ M ] ) . options , j = "on" + c . charAt ( 0 ) . toUpperCase ( ) + c . substr ( 1 ) ; h . initEvent ( c , ! 0 , ! 0 ) , h . to = b , h . from = e || b , h . item = d || b , h . clone = w , h . oldIndex = f , h . newIndex = g , b . dispatchEvent ( h ) , i [ j ] && i [ j ] . call ( a , h ) } function k ( a , b , c , d , e , f ) { var g , h , i = a [ M ] , j = i . options . onMove ; return g = O . createEvent ( "Event" ) , g . initEvent ( "move" , ! 0 , ! 0 ) , g . to = b , g . from = a , g . dragged = c , g . draggedRect = d , g . related = e || b , g . relatedRect = f || b . getBoundingClientRect ( ) , a . dispatchEvent ( g ) , j && ( h = j . call ( i , g ) ) , h } function l ( a ) { a . draggable = ! 1 } function m ( ) { S = ! 1 } function n ( a , b ) { var c = a . lastElementChild , d = c . getBoundingClientRect ( ) ; return ( b . clientY - ( d . top + d . height ) > 5 || b . clientX - ( d . right + d . width ) > 5 ) && c } function o ( a ) { for ( var b = a . tagName + a . className + a . src + a . href + a . textContent , c = b . length , d = 0 ; c -- ; ) d += b . charCodeAt ( c ) ; return d . toString ( 36 ) } function p ( a , b ) { var c = 0 ; if ( ! a || ! a . parentNode ) return - 1 ; for ( ; a && ( a = a . previousElementSibling ) ; ) "TEMPLATE" !== a . nodeName . toUpperCase ( ) && q ( a , b ) && c ++ ; return c } function q ( a , b ) { if ( a ) { b = b . split ( "." ) ; var c = b . shift ( ) . toUpperCase ( ) , d = new RegExp ( "\\s(" + b . join ( "|" ) + ")(?=\\s)" , "g" ) ; return ! ( "" !== c && a . nodeName . toUpperCase ( ) != c || b . length && ( ( " " + a . className + " " ) . match ( d ) || [ ] ) . length != b . length ) } return ! 1 } function r ( a , b ) { var c , d ; return function ( ) { void 0 === c && ( c = arguments , d = this , setTimeout ( function ( ) { 1 === c . length ? a . call ( d , c [ 0 ] ) : a . apply ( d , c ) , c = void 0 } , b ) ) } } function s ( a , b ) { if ( a && b ) for ( var c in b ) b . hasOwnProperty ( c ) && ( a [ c ] = b [ c ] ) ; return a } if ( "undefined" == typeof window || "undefined" == typeof window . document ) return function ( ) { throw new Error ( "Sortable.js requires a window with a document" ) } ; var t , u , v , w , x , y , z , A , B , C , D , E , F , G , H , I , J , K = { } , L = /\s+/g , M = "Sortable" + ( new Date ) . getTime ( ) , N = window , O = N . document , P = N . parseInt , Q = ! ! ( "draggable" in O . createElement ( "div" ) ) , R = function ( a ) { return a = O . createElement ( "x" ) , a . style . cssText = "pointer-events:auto" , "auto" === a . style . pointerEvents } ( ) , S = ! 1 , T = Math . abs , U = ( [ ] . slice , [ ] ) , V = r ( function ( a , b , c ) { if ( c && b . scroll ) { var d
=== === === === === === === === === === === === === === === === === === === === === === === ===
XPath . js - Pure JavaScript implementation of XPath 2.0 parser and evaluator
Copyright ( c ) 2012 Sergey Ilinsky
Dual licensed under the MIT and GPL licenses .
* /
2016-12-20 20:18:16 +00:00
function ( ) { function a ( a ) { this . code = a , this . message = Vc [ a ] } function b ( b ) { var c = b . match ( /\$?(?:(?![0-9-])(?:\w[\w.-]*|\*):)?(?![0-9-])(?:\w[\w.-]*|\*)|\(:|:\)|\/\/|\.\.|::|\d+(?:\.\d*)?(?:[eE][+-]?\d+)?|\.\d+(?:[eE][+-]?\d+)?|"[^"]*(?:""[^"]*)*"|'[^']*(?:''[^']*)*'|<<|>>|[!<>]=|(?![0-9-])[\w-]+:\*|\s+|./g ) ; if ( c ) { for ( var d = 0 , e = 0 , f = c . length ; e < f ; e ++ ) "(:" == c [ e ] ? d ++ : ":)" == c [ e ] && d ? d -- : d || /^\s/ . test ( c [ e ] ) || ( this [ this . length ++ ] = c [ e ] ) ; if ( d ) throw new a ( "XPST0003" ) } } function c ( ) { } function d ( a , b , d , e ) { this . staticContext = a , this . item = b , this . scope = d || { } , this . stack = { } , this . DOMAdapter = e || new c ; var f = new Ec , g = f . getTimezoneOffset ( ) ; this . dateTime = new _a ( f . getFullYear ( ) , f . getMonth ( ) + 1 , f . getDate ( ) , f . getHours ( ) , f . getMinutes ( ) , f . getSeconds ( ) + f . getMilliseconds ( ) / 1e3 , - g ) , this . timezone = new Ab ( 0 , Gc . abs ( ~ ~ ( g / 60 ) ) , Gc . abs ( g % 60 ) , 0 , g > 0 ) } function e ( ) { this . dataTypes = { } , this . documents = { } , this . functions = { } , this . collations = { } , this . collections = { } } function f ( a , b , c ) { Xc [ a ] = c , Yc [ a ] = b } function g ( a , b ) { Zc [ a ] = b } function h ( c , d ) { var e = new b ( c ) , f = l ( e , d ) ; if ( ! e . eof ( ) ) throw new a ( "XPST0003" ) ; if ( ! f ) throw new a ( "XPST0003" ) ; this . internalExpression = f } function i ( ) { } function j ( ) { } function k ( ) { this . items = [ ] } function l ( b , c ) { var d ; if ( ! b . eof ( ) && ( d = m ( b , c ) ) ) { var e = new k ; for ( e . items . push ( d ) ; "," == b . peek ( ) ; ) { if ( b . next ( ) , b . eof ( ) || ! ( d = m ( b , c ) ) ) throw new a ( "XPST0003" ) ; e . items . push ( d ) } return e } } function m ( a , b ) { if ( ! a . eof ( ) ) return s ( a , b ) || o ( a , b ) || u ( a , b ) || K ( a , b ) } function n ( ) { this . bindings = [ ] , this . returnExpr = null } function o ( b , c ) { if ( "for" == b . peek ( ) && "$" == b . peek ( 1 ) . substr ( 0 , 1 ) ) { b . next ( ) ; var d , e = new n ; do e . bindings . push ( q ( b , c ) ) ; while ( "," == b . peek ( ) && b . next ( ) ) ; if ( "return" != b . peek ( ) ) throw new a ( "XPST0003" ) ; if ( b . next ( ) , b . eof ( ) || ! ( d = m ( b , c ) ) ) throw new a ( "XPST0003" ) ; return e . returnExpr = d , e } } function p ( a , b , c , d ) { this . prefix = a , this . localName = b , this . namespaceURI = c , this . inExpr = d } function q ( b , c ) { var d = b . peek ( ) . substr ( 1 ) . match ( id ) ; if ( ! d ) throw new a ( "XPST0003" ) ; if ( "*" == d [ 1 ] || "*" == d [ 2 ] ) throw new a ( "XPST0003" ) ; if ( b . next ( ) , "in" != b . peek ( ) ) throw new a ( "XPST0003" ) ; b . next ( ) ; var e ; if ( b . eof ( ) || ! ( e = m ( b , c ) ) ) throw new a ( "XPST0003" ) ; return new p ( d [ 1 ] || null , d [ 2 ] , d [ 1 ] ? c . getURIForPrefix ( d [ 1 ] ) : null , e ) } function r ( a , b , c ) { this . condExpr = a , this . thenExpr = b , this . elseExpr = c } function s ( b , c ) { var d , e , f ; if ( "if" == b . peek ( ) && "(" == b . peek ( 1 ) ) { if ( b . next ( 2 ) , b . eof ( ) || ! ( d = l ( b , c ) ) ) throw new a ( "XPST0003" ) ; if ( ")" != b . peek ( ) ) throw new a ( "XPST0003" ) ; if ( b . next ( ) , "then" != b . peek ( ) ) throw new a ( "XPST0003" ) ; if ( b . next ( ) , b . eof ( ) || ! ( e = m ( b , c ) ) ) throw new a ( "XPST0003" ) ; if ( "else" != b . peek ( ) ) throw new a ( "XPST0003" ) ; if ( b . next ( ) , b . eof ( ) || ! ( f = m ( b , c ) ) ) throw new a ( "XPST0003" ) ; return new r ( d , e , f ) } } function t ( a ) { this . quantifier = a , this . bindings = [ ] , this . satisfiesExpr = null } function u ( b , c ) { var d = b . peek ( ) ; if ( ( "some" == d || "every" == d ) && "$" == b . peek ( 1 ) . substr ( 0 , 1 ) ) { b . next ( ) ; var e , f = new t ( d ) ; do f . bindings . push ( w ( b , c ) ) ; while ( "," == b . peek ( ) && b . next ( ) ) ; if ( "satisfies" != b . peek ( ) ) throw new a ( "XPST0003" ) ; if ( b . next ( ) , b . eof ( ) || ! ( e = m ( b , c ) ) ) throw new a ( "XPST0003" ) ; return f . satisfiesExpr = e , f } } function v ( a , b , c , d ) { this . prefix = a , this . localName = b , this . namespaceURI = c , this . inExpr = d } function w ( b , c ) { var d = b . peek ( ) . substr ( 1 ) . match ( id ) ; if ( ! d ) throw new a ( "XPST0003" ) ; if ( "*" == d [ 1 ] || "*" == d [ 2 ] ) throw new a ( "XPST0003" ) ; if ( b . next ( ) , "in" != b . peek ( ) ) throw new a ( "XPST0003" ) ; b . next ( ) ; var e ; if ( b . eof ( ) || ! ( e = m ( b , c ) ) ) throw new a ( "XPST0003" ) ; return new v ( d [ 1 ] || null , d [ 2 ] , d [ 1 ] ? c . getURIForPrefix ( d [ 1 ] ) : null , e ) } function x ( a , b , c ) { this . left = a , this . right = b , this . operator = c } function y ( b , c ) { var d , e ; if ( ! b . eof ( ) && ( d = ya ( b , c ) ) ) { if ( ! ( b . peek ( ) in cd ) ) return d ; var f = b . peek ( ) ; if ( b . next ( ) , b . eof ( ) || ! ( e = ya ( b , c ) ) ) throw new a ( "XPST0003" ) ; return new x ( d , e , f ) } } function z ( a , b ) { var c = vc ( a . left . evaluate ( b ) , b ) ; if ( ! c . length ) return new Xa ( ! 1 ) ; var d = vc ( a . right . evaluate ( b ) , b ) ; if ( ! d . length ) return new Xa ( ! 1 ) ; for ( var e , f , g = ! 1 , h = 0 , i = c . length ; h < i && ! g ; h ++ ) for ( var j , k , l = 0 , m = d . length ; l < m && ! g ; l ++ ) f = c [ h ] , k = d [ l ] , e = f instanceof xb , j = k instanceof xb , e && j ? ( f = ub . cast ( f ) , k = ub . cast ( k ) ) : ( e ? k instanceof Ab ? f = Ab . cast ( f ) : k instanceof yb ? f = yb . cast ( f ) : k . primitiveKind && ( f = Zc [ k . primitiveKind ] . cast ( f ) ) : j && ( f instanceof Ab ? k = Ab . cast ( k ) : f instanceof yb ? k = yb . cast ( k ) : f . primitiveKind && ( k = Zc [ f . primi
if ( e ) return $c [ e ] . call ( d , b , c ) ; throw new a ( "XPTY0004" ) } , ad . lt = function ( b , c , d ) { var e = "" ; if ( Ua ( b ) ) Ua ( c ) && ( e = "numeric-less-than" ) ; else if ( b instanceof Xa ) c instanceof Xa && ( e = "boolean-less-than" ) ; else if ( b instanceof ub ) { if ( c instanceof ub ) return $c [ "numeric-less-than" ] . call ( d , Xc . compare . call ( d , b , c ) , new Cb ( 0 ) ) } else b instanceof Ya ? c instanceof Ya && ( e = "date-less-than" ) : b instanceof vb ? c instanceof vb && ( e = "time-less-than" ) : b instanceof _a ? c instanceof _a && ( e = "dateTime-less-than" ) : b instanceof yb ? c instanceof yb && ( e = "yearMonthDuration-less-than" ) : b instanceof Ab && c instanceof Ab && ( e = "dayTimeDuration-less-than" ) ; if ( e ) return $c [ e ] . call ( d , b , c ) ; throw new a ( "XPTY0004" ) } , ad . ge = function ( b , c , d ) { var e = "" ; if ( Ua ( b ) ) Ua ( c ) && ( e = "numeric-less-than" ) ; else if ( b instanceof Xa ) c instanceof Xa && ( e = "boolean-less-than" ) ; else if ( b instanceof ub ) { if ( c instanceof ub ) return $c [ "numeric-greater-than" ] . call ( d , Xc . compare . call ( d , b , c ) , new Cb ( - 1 ) ) } else b instanceof Ya ? c instanceof Ya && ( e = "date-less-than" ) : b instanceof vb ? c instanceof vb && ( e = "time-less-than" ) : b instanceof _a ? c instanceof _a && ( e = "dateTime-less-than" ) : b instanceof yb ? c instanceof yb && ( e = "yearMonthDuration-less-than" ) : b instanceof Ab && c instanceof Ab && ( e = "dayTimeDuration-less-than" ) ; if ( e ) return new Xa ( ! $c [ e ] . call ( d , b , c ) . valueOf ( ) ) ; throw new a ( "XPTY0004" ) } , ad . le = function ( b , c , d ) { var e = "" ; if ( Ua ( b ) ) Ua ( c ) && ( e = "numeric-greater-than" ) ; else if ( b instanceof Xa ) c instanceof Xa && ( e = "boolean-greater-than" ) ; else if ( b instanceof ub ) { if ( c instanceof ub ) return $c [ "numeric-less-than" ] . call ( d , Xc . compare . call ( d , b , c ) , new Cb ( 1 ) ) } else b instanceof Ya ? c instanceof Ya && ( e = "date-greater-than" ) : b instanceof vb ? c instanceof vb && ( e = "time-greater-than" ) : b instanceof _a ? c instanceof _a && ( e = "dateTime-greater-than" ) : b instanceof yb ? c instanceof yb && ( e = "yearMonthDuration-greater-than" ) : b instanceof Ab && c instanceof Ab && ( e = "dayTimeDuration-greater-than" ) ; if ( e ) return new Xa ( ! $c [ e ] . call ( d , b , c ) . valueOf ( ) ) ; throw new a ( "XPTY0004" ) } ; var bd = { } ; bd . is = function ( a , b , c ) { return $c [ "is-same-node" ] . call ( c , a , b ) } , bd [ ">>" ] = function ( a , b , c ) { return $c [ "node-after" ] . call ( c , a , b ) } , bd [ "<<" ] = function ( a , b , c ) { return $c [ "node-before" ] . call ( c , a , b ) } ; var cd = { "=" : z , "!=" : z , "<" : z , "<=" : z , ">" : z , ">=" : z , eq : A , ne : A , lt : A , le : A , gt : A , ge : A , is : B , ">>" : B , "<<" : B } ; C . prototype . left = null , C . prototype . items = null ; var dd = { } ; dd [ "+" ] = function ( b , c , d ) { var e = "" , f = ! 1 ; if ( Ua ( b ) ? Ua ( c ) && ( e = "numeric-add" ) : b instanceof Ya ? c instanceof yb ? e = "add-yearMonthDuration-to-date" : c instanceof Ab && ( e = "add-dayTimeDuration-to-date" ) : b instanceof yb ? c instanceof Ya ? ( e = "add-yearMonthDuration-to-date" , f = ! 0 ) : c instanceof _a ? ( e = "add-yearMonthDuration-to-dateTime" , f = ! 0 ) : c instanceof yb && ( e = "add-yearMonthDurations" ) : b instanceof Ab ? c instanceof Ya ? ( e = "add-dayTimeDuration-to-date" , f = ! 0 ) : c instanceof vb ? ( e = "add-dayTimeDuration-to-time" , f = ! 0 ) : c instanceof _a ? ( e = "add-dayTimeDuration-to-dateTime" , f = ! 0 ) : c instanceof Ab && ( e = "add-dayTimeDurations" ) : b instanceof vb ? c instanceof Ab && ( e = "add-dayTimeDuration-to-time" ) : b instanceof _a && ( c instanceof yb ? e = "add-yearMonthDuration-to-dateTime" : c instanceof Ab && ( e = "add-dayTimeDuration-to-dateTime" ) ) , e ) return $c [ e ] . call ( d , f ? c : b , f ? b : c ) ; throw new a ( "XPTY0004" ) } , dd [ "-" ] = function ( b , c , d ) { var e = "" ; if ( Ua ( b ) ? Ua ( c ) && ( e = "numeric-subtract" ) : b instanceof Ya ? c instanceof Ya ? e = "subtract-dates" : c instanceof yb ? e = "subtract-yearMonthDuration-from-date" : c instanceof Ab && ( e = "subtract-dayTimeDuration-from-date" ) : b instanceof vb ? c instanceof vb ? e = "subtract-times" : c instanceof Ab && ( e = "subtract-dayTimeDuration-from-time" ) : b instanceof _a ? c instanceof _a ? e = "subtract-dateTimes" : c instanceof yb ? e = "subtract-yearMonthDuration-from-dateTime" : c instanceof Ab && ( e = "subtract-dayTimeDuration-from-dateTime" ) : b instanceof yb ? c instanceof yb && ( e = "subtract-yearMonthDurations" ) : b instanceof Ab && c instanceof Ab && ( e = "subtract-dayTimeDurations" ) , e ) return $c [ e ] . call ( d , b , c ) ; throw new a ( "XPTY0004" ) } , C . prototype . evaluate = function ( a ) { var b = vc ( this . left . evaluate ( a ) , a ) ; if ( ! b . length ) return [ ] ; ua ( a , b , "?" ) ; var c = b [ 0 ] ; c instanceof xb && ( c = gb . cast ( c ) ) ; for ( var d , e , f = 0 , g = this . items . length ; f < g ; f ++ ) { if ( d = vc ( this . items [ f ] [ 1 ] . evaluate ( a ) , a ) , ! d . l
2017-01-31 18:24:56 +00:00
Ob . cast = function ( b ) { var c ; try { c = Cb . cast ( b ) } catch ( a ) { throw a } if ( c . value >= 1 && c . value <= 255 ) return new Ob ( c . value ) ; throw new a ( "FORG0001" ) } , g ( "unsignedByte" , Ob ) , Pb . prototype = new ub , Pb . prototype . builtInKind = j . NORMALIZEDSTRING _DT , Pb . cast = function ( a ) { return new Pb ( Ac ( a ) ) } , g ( "normalizedString" , Pb ) , Qb . prototype = new Pb , Qb . prototype . builtInKind = j . TOKEN _DT , Qb . cast = function ( a ) { return new Qb ( Ac ( a ) ) } , g ( "token" , Qb ) , Rb . prototype = new Qb , Rb . prototype . builtInKind = j . NAME _DT , Rb . cast = function ( a ) { return new Rb ( Ac ( a ) ) } , g ( "Name" , Rb ) , Sb . prototype = new Rb , Sb . prototype . builtInKind = j . NCNAME _DT , Sb . cast = function ( a ) { return new Sb ( Ac ( a ) ) } , g ( "NCName" , Sb ) , Tb . prototype = new Sb , Tb . prototype . builtInKind = j . ENTITY _DT , Tb . cast = function ( a ) { return new Tb ( Ac ( a ) ) } , g ( "ENTITY" , Tb ) , Ub . prototype = new Sb , Ub . prototype . builtInKind = j . ID _DT , Ub . cast = function ( a ) { return new Ub ( Ac ( a ) ) } , g ( "ID" , Ub ) , Vb . prototype = new Sb , Vb . prototype . builtInKind = j . IDREF _DT , Vb . cast = function ( a ) { return new Vb ( Ac ( a ) ) } , g ( "IDREF" , Vb ) , Wb . prototype = new Qb , Wb . prototype . builtInKind = j . LANGUAGE _DT , Wb . cast = function ( a ) { return new Wb ( Ac ( a ) ) } , g ( "language" , Wb ) , Xb . prototype = new Qb , Xb . prototype . builtInKind = j . NMTOKEN _DT , Xb . cast = function ( a ) { return new Xb ( Ac ( a ) ) } , g ( "NMTOKEN" , Xb ) , Zb . prototype = new Yb , $b . prototype = new Zb , _b . prototype = new Zb , ac . prototype = new Zb , bc . prototype = new Zb , cc . prototype = new Zb , dc . prototype = new Zb , $c [ "hexBinary-equal" ] = function ( a , b ) { return new Xa ( a . valueOf ( ) == b . valueOf ( ) ) } , $c [ "base64Binary-equal" ] = function ( a , b ) { return new Xa ( a . valueOf ( ) == b . valueOf ( ) ) } , $c [ "boolean-equal" ] = function ( a , b ) { return new Xa ( a . valueOf ( ) == b . valueOf ( ) ) } , $c [ "boolean-less-than" ] = function ( a , b ) { return new Xa ( a . valueOf ( ) < b . valueOf ( ) ) } , $c [ "boolean-greater-than" ] = function ( a , b ) { return new Xa ( a . valueOf ( ) > b . valueOf ( ) ) } , $c [ "yearMonthDuration-less-than" ] = function ( a , b ) { return new Xa ( lc ( a ) < lc ( b ) ) } , $c [ "yearMonthDuration-greater-than" ] = function ( a , b ) { return new Xa ( lc ( a ) > lc ( b ) ) } , $c [ "dayTimeDuration-less-than" ] = function ( a , b ) { return new Xa ( jc ( a ) < jc ( b ) ) } , $c [ "dayTimeDuration-greater-than" ] = function ( a , b ) { return new Xa ( jc ( a ) > jc ( b ) ) } , $c [ "duration-equal" ] = function ( a , b ) { return new Xa ( a . negative == b . negative && lc ( a ) == lc ( b ) && jc ( a ) == jc ( b ) ) } , $c [ "dateTime-equal" ] = function ( a , b ) { return gc ( a , b , "eq" ) } , $c [ "dateTime-less-than" ] = function ( a , b ) { return gc ( a , b , "lt" ) } , $c [ "dateTime-greater-than" ] = function ( a , b ) { return gc ( a , b , "gt" ) } , $c [ "date-equal" ] = function ( a , b ) { return fc ( a , b , "eq" ) } , $c [ "date-less-than" ] = function ( a , b ) { return fc ( a , b , "lt" ) } , $c [ "date-greater-than" ] = function ( a , b ) { return fc ( a , b , "gt" ) } , $c [ "time-equal" ] = function ( a , b ) { return ec ( a , b , "eq" ) } , $c [ "time-less-than" ] = function ( a , b ) { return ec ( a , b , "lt" ) } , $c [ "time-greater-than" ] = function ( a , b ) { return ec ( a , b , "gt" ) } , $c [ "gYearMonth-equal" ] = function ( a , b ) { return gc ( new _a ( a . year , a . month , Za ( a . year , a . month ) , 0 , 0 , 0 , null == a . timezone ? this . timezone : a . timezone ) , new _a ( b . year , b . month , Za ( b . year , b . month ) , 0 , 0 , 0 , null == b . timezone ? this . timezone : b . timezone ) , "eq" ) } , $c [ "gYear-equal" ] = function ( a , b ) { return gc ( new _a ( a . year , 1 , 1 , 0 , 0 , 0 , null == a . timezone ? this . timezone : a . timezone ) , new _a ( b . year , 1 , 1 , 0 , 0 , 0 , null == b . timezone ? this . timezone : b . timezone ) , "eq" ) } , $c [ "gMonthDay-equal" ] = function ( a , b ) { return gc ( new _a ( 1972 , a . month , a . day , 0 , 0 , 0 , null == a . timezone ? this . timezone : a . timezone ) , new _a ( 1972 , b . month , b . day , 0 , 0 , 0 , null == b . timezone ? this . timezone : b . timezone ) , "eq" ) } , $c [ "gMonth-equal" ] = function ( a , b ) { return gc ( new _a ( 1972 , a . month , Za ( 1972 , b . month ) , 0 , 0 , 0 , null == a . timezone ? this . timezone : a . timezone ) , new _a ( 1972 , b . month , Za ( 1972 , b . month ) , 0 , 0 , 0 , null == b . timezone ? this . timezone : b . timezone ) , "eq" ) } , $c [ "gDay-equal" ] = function ( a , b ) { return gc ( new _a ( 1972 , 12 , a . day , 0 , 0 , 0 , null == a . timezone ? this . timezone : a . timezone ) , new _a ( 1972 , 12 , b . day , 0 , 0 , 0 , null == b . timezone ? this . timezone : b . timezone ) , "eq" ) } , $c [ "add-yearMonthDurations" ] = function ( a , b ) { return mc ( lc ( a ) + lc ( b ) ) } , $c [ "subtract-yearMonthDurations" ] = function ( a , b ) { return mc ( lc ( a ) - lc ( b ) ) } , $c [ "multiply-yearMonthDuration" ] = function ( a , b ) { return mc ( lc ( a ) * b ) } , $c [ "divide-yearMonthDuration" ] = function ( a , b ) { return mc ( lc ( a ) / b ) } , $c [ "divide-yearMonthDuration-by-yearMonthDuration" ] = function ( a , b ) { return new fb ( lc ( a ) / lc ( b ) ) } , $c [ "add-dayTimeDurations" ] = function ( a , b ) { return kc ( jc ( a
2017-02-10 16:39:32 +00:00
} , padRight : function ( a , b , c ) { return c = c || " " , a . length < b ? Utils . padRight ( a + c . slice ( 0 , b - a . length ) , b , c ) : a } , padBytesRight : function ( a , b , c ) { c = c || 0 ; var d = new Array ( b ) ; return d . fill ( c ) , Array . prototype . map . call ( a , function ( a , b ) { d [ b ] = a } ) , d } , pad : function ( a , b , c ) { return Utils . padLeft ( a , b , c ) } , truncate : function ( a , b , c ) { return c = c || "..." , a . length > b && ( a = a . slice ( 0 , b - c . length ) + c ) , a } , hex : function ( a , b ) { return a = "string" == typeof a ? Utils . ord ( a ) : a , b = b || 2 , Utils . pad ( a . toString ( 16 ) , b ) } , bin : function ( a , b ) { return a = "string" == typeof a ? Utils . ord ( a ) : a , b = b || 8 , Utils . pad ( a . toString ( 2 ) , b ) } , printable : function ( a , b ) { window && window . app && ! window . app . options . treatAsUtf8 && ( a = Utils . byteArrayToChars ( Utils . strToByteArray ( a ) ) ) ; var c = / [ \ 0 - \ x 0 8 \ x 0 B - \ x 0 C \ x 0 E - \ x 1 F \ x 7 F - \ x 9 F \ x A D \ u 0 3 7 8 \ u 0 3 7 9 \ u 0 3 7 F - \ u 0 3 8 3 \ u 0 3 8 B \ u 0 3 8 D \ u 0 3 A 2 \ u 0 5 2 8 - \ u 0 5 3 0 \ u 0 5 5 7 \ u 0 5 5 8 \ u 0 5 6 0 \ u 0 5 8 8 \ u 0 5 8 B - \ u 0 5 8 E \ u 0 5 9 0 \ u 0 5 C 8 - \ u 0 5 C F \ u 0 5 E B - \ u 0 5 E F \ u 0 5 F 5 - \ u 0 6 0 5 \ u 0 6 1 C \ u 0 6 1 D \ u 0 6 D D \ u 0 7 0 E \ u 0 7 0 F \ u 0 7 4 B \ u 0 7 4 C \ u 0 7 B 2 - \ u 0 7 B F \ u 0 7 F B - \ u 0 7 F F \ u 0 8 2 E \ u 0 8 2 F \ u 0 8 3 F \ u 0 8 5 C \ u 0 8 5 D \ u 0 8 5 F - \ u 0 8 9 F \ u 0 8 A 1 \ u 0 8 A D - \ u 0 8 E 3 \ u 0 8 F F \ u 0 9 7 8 \ u 0 9 8 0 \ u 0 9 8 4 \ u 0 9 8 D \ u 0 9 8 E \ u 0 9 9 1 \ u 0 9 9 2 \ u 0 9 A 9 \ u 0 9 B 1 \ u 0 9 B 3 - \ u 0 9 B 5 \ u 0 9 B A \ u 0 9 B B \ u 0 9 C 5 \ u 0 9 C 6 \ u 0 9 C 9 \ u 0 9 C A \ u 0 9 C F - \ u 0 9 D 6 \ u 0 9 D 8 - \ u 0 9 D B \ u 0 9 D E \ u 0 9 E 4 \ u 0 9 E 5 \ u 0 9 F C - \ u 0 A 0 0 \ u 0 A 0 4 \ u 0 A 0 B - \ u 0 A 0 E \ u 0 A 1 1 \ u 0 A 1 2 \ u 0 A 2 9 \ u 0 A 3 1 \ u 0 A 3 4 \ u 0 A 3 7 \ u 0 A 3 A \ u 0 A 3 B \ u 0 A 3 D \ u 0 A 4 3 - \ u 0 A 4 6 \ u 0 A 4 9 \ u 0 A 4 A \ u 0 A 4 E - \ u 0 A 5 0 \ u 0 A 5 2 - \ u 0 A 5 8 \ u 0 A 5 D \ u 0 A 5 F - \ u 0 A 6 5 \ u 0 A 7 6 - \ u 0 A 8 0 \ u 0 A 8 4 \ u 0 A 8 E \ u 0 A 9 2 \ u 0 A A 9 \ u 0 A B 1 \ u 0 A B 4 \ u 0 A B A \ u 0 A B B \ u 0 A C 6 \ u 0 A C A \ u 0 A C E \ u 0 A C F \ u 0 A D 1 - \ u 0 A D F \ u 0 A E 4 \ u 0 A E 5 \ u 0 A F 2 - \ u 0 B 0 0 \ u 0 B 0 4 \ u 0 B 0 D \ u 0 B 0 E \ u 0 B 1 1 \ u 0 B 1 2 \ u 0 B 2 9 \ u 0 B 3 1 \ u 0 B 3 4 \ u 0 B 3 A \ u 0 B 3 B \ u 0 B 4 5 \ u 0 B 4 6 \ u 0 B 4 9 \ u 0 B 4 A \ u 0 B 4 E - \ u 0 B 5 5 \ u 0 B 5 8 - \ u 0 B 5 B \ u 0 B 5 E \ u 0 B 6 4 \ u 0 B 6 5 \ u 0 B 7 8 - \ u 0 B 8 1 \ u 0 B 8 4 \ u 0 B 8 B - \ u 0 B 8 D \ u 0 B 9 1 \ u 0 B 9 6 - \ u 0 B 9 8 \ u 0 B 9 B \ u 0 B 9 D \ u 0 B A 0 - \ u 0 B A 2 \ u 0 B A 5 - \ u 0 B A 7 \ u 0 B A B - \ u 0 B A D \ u 0 B B A - \ u 0 B B D \ u 0 B C 3 - \ u 0 B C 5 \ u 0 B C 9 \ u 0 B C E \ u 0 B C F \ u 0 B D 1 - \ u 0 B D 6 \ u 0 B D 8 - \ u 0 B E 5 \ u 0 B F B - \ u 0 C 0 0 \ u 0 C 0 4 \ u 0 C 0 D \ u 0 C 1 1 \ u 0 C 2 9 \ u 0 C 3 4 \ u 0 C 3 A - \ u 0 C 3 C \ u 0 C 4 5 \ u 0 C 4 9 \ u 0 C 4 E - \ u 0 C 5 4 \ u 0 C 5 7 \ u 0 C 5 A - \ u 0 C 5 F \ u 0 C 6 4 \ u 0 C 6 5 \ u 0 C 7 0 - \ u 0 C 7 7 \ u 0 C 8 0 \ u 0 C 8 1 \ u 0 C 8 4 \ u 0 C 8 D \ u 0 C 9 1 \ u 0 C A 9 \ u 0 C B 4 \ u 0 C B A \ u 0 C B B \ u 0 C C 5 \ u 0 C C 9 \ u 0 C C E - \ u 0 C D 4 \ u 0 C D 7 - \ u 0 C D D \ u 0 C D F \ u 0 C E 4 \ u 0 C E 5 \ u 0 C F 0 \ u 0 C F 3 - \ u 0 D 0 1 \ u 0 D 0 4 \ u 0 D 0 D \ u 0 D 1 1 \ u 0 D 3 B \ u 0 D 3 C \ u 0 D 4 5 \ u 0 D 4 9 \ u 0 D 4 F - \ u 0 D 5 6 \ u 0 D 5 8 - \ u 0 D 5 F \ u 0 D 6 4 \ u 0 D 6 5 \ u 0 D 7 6 - \ u 0 D 7 8 \ u 0 D 8 0 \ u 0 D 8 1 \ u 0 D 8 4 \ u 0 D 9 7 - \ u 0 D 9 9 \ u 0 D B 2 \ u 0 D B C \ u 0 D B E \ u 0 D B F \ u 0 D C 7 - \ u 0 D C 9 \ u 0 D C B - \ u 0 D C E \ u 0 D D 5 \ u 0 D D 7 \ u 0 D E 0 - \ u 0 D F 1 \ u 0 D F 5 - \ u 0 E 0 0 \ u 0 E 3 B - \ u 0 E 3 E \ u 0 E 5 C - \ u 0 E 8 0 \ u 0 E 8 3 \ u 0 E 8 5 \ u 0 E 8 6 \ u 0 E 8 9 \ u 0 E 8 B \ u 0 E 8 C \ u 0 E 8 E - \ u 0 E 9 3 \ u 0 E 9 8 \ u 0 E A 0 \ u 0 E A 4 \ u 0 E A 6 \ u 0 E A 8 \ u 0 E A 9 \ u 0 E A C \ u 0 E B A \ u 0 E B E \ u 0 E B F \ u 0 E C 5 \ u 0 E C 7 \ u 0 E C E \ u 0 E C F \ u 0 E D A \ u 0 E D B \ u 0 E E 0 - \ u 0 E F F \ u 0 F 4 8 \ u 0 F 6 D - \ u 0 F 7 0 \ u 0 F 9 8 \ u 0 F B D \ u 0 F C D \ u 0 F D B - \ u 0 F F F \ u 1 0 C 6 \ u 1 0 C 8 - \ u 1 0 C C \ u 1 0 C E \ u 1 0 C F \ u 1 2 4 9 \ u 1 2 4 E \ u 1 2 4 F \ u 1 2 5 7 \ u 1 2 5 9 \ u 1 2 5 E \ u 1 2 5 F \ u 1 2 8 9 \ u 1 2 8 E \ u 1 2 8 F \ u 1 2 B 1 \ u 1 2 B 6 \ u 1 2 B 7 \ u 1 2 B F \ u 1 2 C 1 \ u 1 2 C 6 \ u 1 2 C 7 \ u 1 2 D 7 \ u 1 3 1 1 \ u 1 3 1 6 \ u 1 3 1 7 \ u 1 3 5 B \ u 1 3 5 C \ u 1 3 7 D - \ u 1 3 7 F \ u 1 3 9 A - \ u 1 3 9 F \ u 1 3 F 5 - \ u 1 3 F F \ u 1 6 9 D - \ u 1 6 9 F \ u 1 6 F 1 - \ u 1 6 F F \ u 1 7 0 D \ u 1 7 1 5 - \ u 1 7 1 F \ u 1 7 3 7 - \ u 1 7 3 F \ u 1 7 5 4 - \ u 1 7 5 F \ u 1 7 6 D \ u 1 7 7 1 \ u 1 7 7 4 - \ u 1 7 7 F \ u 1 7 D E \ u 1 7 D F \ u 1 7 E A - \ u 1 7 E F \ u 1 7 F A - \ u 1 7 F F \ u 1 8 0 F \ u 1 8 1 A - \ u 1 8 1 F \ u 1 8 7 8 - \ u 1 8 7 F \ u 1 8 A B - \ u 1 8 A F \ u 1 8 F 6 - \ u 1 8 F F \ u 1 9 1 D - \ u 1 9 1 F \ u 1 9 2 C - \ u 1 9 2 F \ u 1 9 3 C - \ u 1 9 3 F \ u 1 9 4 1 - \ u 1 9 4 3 \ u 1 9 6 E \ u 1 9 6 F \ u 1 9 7 5 - \ u 1 9 7 F \ u 1 9 A C - \ u 1 9 A F \ u 1 9 C A - \ u 1 9 C F \ u 1 9 D B - \ u 1 9 D D \ u 1 A 1 C \ u 1 A 1 D \ u 1 A 5 F \ u 1 A 7 D \ u 1 A 7 E \ u 1 A 8 A - \ u 1 A 8 F \ u 1 A 9 A - \ u 1 A 9 F \ u 1 A A E - \ u 1 A F F \ u 1 B 4 C - \ u 1 B 4 F \ u 1 B 7 D - \ u 1 B 7 F \ u 1 B F 4 - \ u 1 B F B \ u 1 C 3 8 - \ u 1 C 3 A \ u 1 C 4 A - \ u 1 C 4 C \ u 1 C 8 0 - \ u 1 C B F \ u 1 C C 8 - \ u 1 C C F \ u 1 C F 7 - \ u 1 C F F \ u 1 D E 7 - \ u 1 D F B \ u 1 F 1 6 \ u 1 F 1 7 \ u 1 F 1 E \ u 1 F 1 F \ u 1 F 4 6 \ u 1 F 4 7 \ u 1 F 4 E \ u 1 F 4 F \ u 1 F 5 8 \ u 1 F 5 A \ u 1 F 5 C \ u 1 F 5 E \ u 1 F 7 E \ u 1 F 7 F \ u 1 F B 5 \ u 1 F C 5 \ u 1 F D 4 \ u 1 F D 5 \ u 1 F D C \ u 1 F F 0 \ u 1 F F 1 \ u 1 F F 5 \ u 1 F F F \ u 2 0 0 B - \ u 2 0 0 F \ u 2 0 2 A - \ u 2 0 2 E \ u 2 0 6 0 - \ u 2 0 6 F \ u 2 0 7 2 \ u 2 0 7 3 \ u 2 0 8 F \ u 2 0 9 D - \ u 2 0 9 F \ u 2 0 B B - \ u 2 0 C F \ u 2 0 F 1 - \ u 2 0 F F \ u 2 1 8 A - \ u 2 1 8 F \ u 2 3 F 4 - \ u 2 3 F F \ u 2 4 2 7 - \ u 2 4 3 F \ u 2 4 4 B - \ u 2 4 5 F \ u 2 7 0 0 \ u 2 B 4 D - \ u 2 B 4 F \ u 2 B 5 A - \ u 2 B F F \ u 2 C 2 F \ u 2 C 5 F \ u 2 C F 4 - \ u 2 C F 8 \ u 2 D 2 6 \ u 2 D 2 8 - \ u 2 D 2 C \ u 2 D 2 E \ u 2 D 2 F \ u 2 D 6 8 - \ u 2 D 6 E \ u 2 D 7 1 - \ u 2 D 7 E \ u 2 D 9 7 - \ u 2 D 9 F \ u 2 D A 7 \ u 2 D A F \ u 2 D B 7 \ u 2 D B F \ u 2 D C 7 \ u 2 D C F \ u 2 D D 7 \ u 2 D D F \ u 2 E 3 C - \ u 2 E 7 F \ u 2 E 9 A \ u 2 E F 4 - \ u 2 E F F \ u 2 F D 6 - \ u 2 F E F \ u 2 F F C - \ u 2 F F F \ u 3 0 4 0 \ u 3 0 9 7 \ u 3 0 9 8 \ u 3 1 0 0 - \ u 3 1 0 4 \ u 3 1 2 E - \ u 3 1 3 0 \ u 3 1 8 F \ u 3 1 B B - \ u 3 1 B F \ u 3 1 E 4 - \ u 3 1 E F \ u 3 2 1 F \ u 3 2 F F \ u 4 D B 6 - \ u 4 D B F \ u 9 F C D - \ u 9 F F F \ u A 4 8 D - \ u A 4 8 F \ u A 4 C 7 - \ u A 4 C F \ u A 6 2 C - \ u A 6 3 F \ u A 6 9 8 - \ u A 6 9 E \ u A 6 F 8 - \ u A 6 F F \ u A 7 8 F \ u A 7 9 4 - \ u A 7 9 F \ u A 7 A B - \ u A 7 F 7 \ u A 8 2 C - \ u A 8 2 F \ u A 8 3 A - \ u A 8 3 F \ u A 8 7 8 - \ u A 8 7 F \ u A 8 C 5 - \ u A 8 C D \ u A 8 D A - \ u A 8 D F \ u A 8 F C - \ u A 8 F F \ u A 9 5 4 - \ u A 9 5 E \ u A 9 7 D - \ u A 9 7 F \ u A 9 C E \ u A 9 D A - \ u A 9 D D \ u A 9 E 0 - \ u A 9 F F \ u A A 3 7 - \ u A A 3 F \ u A A 4 E \ u A A 4 F \ u A A 5 A \ u A A 5 B \ u A A 7 C - \ u A A 7 F \ u A A C 3 - \ u A A D A \ u A A F 7 - \ u A B 0 0 \ u A B 0 7 \ u A B 0 8 \ u A B 0 F \ u A
2017-02-10 12:21:51 +00:00
keySize : c , iterations : d } ) ; return i . toString ( Utils . format [ g ] ) } , runRc4 : function ( a , b ) { var c = Utils . format [ b [ 1 ] ] . parse ( a ) , d = Utils . format [ b [ 0 ] . option ] . parse ( b [ 0 ] . string ) , e = CryptoJS . RC4 . encrypt ( c , d ) ; return e . ciphertext . toString ( Utils . format [ b [ 2 ] ] ) } , RC4DROP _BYTES : 768 , runRc4drop : function ( a , b ) { var c = Utils . format [ b [ 1 ] ] . parse ( a ) , d = Utils . format [ b [ 0 ] . option ] . parse ( b [ 0 ] . string ) , e = b [ 3 ] , f = CryptoJS . RC4Drop . encrypt ( c , d , { drop : e } ) ; return f . ciphertext . toString ( Utils . format [ b [ 2 ] ] ) } , runVigenereEnc : function ( a , b ) { var c , d , e , f = "abcdefghijklmnopqrstuvwxyz" , g = b [ 0 ] . toLowerCase ( ) , h = "" , i = 0 ; if ( ! g ) return "No key entered" ; if ( ! /^[a-zA-Z]+$/ . test ( g ) ) return "The key must consist only of letters" ; for ( var j = 0 ; j < a . length ; j ++ ) f . indexOf ( a [ j ] ) >= 0 ? ( e = g [ ( j - i ) % g . length ] , c = f . indexOf ( e ) , d = f . indexOf ( a [ j ] ) , h += f [ ( c + d ) % 26 ] ) : f . indexOf ( a [ j ] . toLowerCase ( ) ) >= 0 ? ( e = g [ ( j - i ) % g . length ] . toLowerCase ( ) , c = f . indexOf ( e ) , d = f . indexOf ( a [ j ] . toLowerCase ( ) ) , h += f [ ( c + d ) % 26 ] . toUpperCase ( ) ) : ( h += a [ j ] , i ++ ) ; return h } , runVigenereDec : function ( a , b ) { var c , d , e , f = "abcdefghijklmnopqrstuvwxyz" , g = b [ 0 ] . toLowerCase ( ) , h = "" , i = 0 ; if ( ! g ) return "No key entered" ; if ( ! /^[a-zA-Z]+$/ . test ( g ) ) return "The key must consist only of letters" ; for ( var j = 0 ; j < a . length ; j ++ ) f . indexOf ( a [ j ] ) >= 0 ? ( e = g [ ( j - i ) % g . length ] , c = f . indexOf ( e ) , d = f . indexOf ( a [ j ] ) , h += f [ ( d - c + f . length ) % 26 ] ) : f . indexOf ( a [ j ] . toLowerCase ( ) ) >= 0 ? ( e = g [ ( j - i ) % g . length ] . toLowerCase ( ) , c = f . indexOf ( e ) , d = f . indexOf ( a [ j ] . toLowerCase ( ) ) , h += f [ ( d + f . length - c ) % 26 ] . toUpperCase ( ) ) : ( h += a [ j ] , i ++ ) ; return h } , AFFINE _A : 1 , AFFINE _B : 0 , runAffineEnc : function ( a , b ) { var c = "abcdefghijklmnopqrstuvwxyz" , d = b [ 0 ] , e = b [ 1 ] , f = "" ; if ( ! /^\+?(0|[1-9]\d*)$/ . test ( d ) || ! /^\+?(0|[1-9]\d*)$/ . test ( e ) ) return "The values of a and b can only be integers." ; for ( var g = 0 ; g < a . length ; g ++ ) f += c . indexOf ( a [ g ] ) >= 0 ? c [ ( d * c . indexOf ( a [ g ] ) + e ) % 26 ] : c . indexOf ( a [ g ] . toLowerCase ( ) ) >= 0 ? c [ ( d * c . indexOf ( a [ g ] . toLowerCase ( ) ) + e ) % 26 ] . toUpperCase ( ) : a [ g ] ; return f } , runAffineDec : function ( a , b ) { var c , d = "abcdefghijklmnopqrstuvwxyz" , e = b [ 0 ] , f = b [ 1 ] , g = "" ; if ( ! /^\+?(0|[1-9]\d*)$/ . test ( e ) || ! /^\+?(0|[1-9]\d*)$/ . test ( f ) ) return "The values of a and b can only be integers." ; if ( 1 !== Utils . gcd ( e , 26 ) ) return "The value of a must be coprime to 26." ; c = Utils . modInv ( e , 26 ) ; for ( var h = 0 ; h < a . length ; h ++ ) g += d . indexOf ( a [ h ] ) >= 0 ? d [ Utils . mod ( ( d . indexOf ( a [ h ] ) - f ) * c , 26 ) ] : d . indexOf ( a [ h ] . toLowerCase ( ) ) >= 0 ? d [ Utils . mod ( ( d . indexOf ( a [ h ] . toLowerCase ( ) ) - f ) * c , 26 ) ] . toUpperCase ( ) : a [ h ] ; return g } , runAtbash : function ( a , b ) { return Cipher . runAffineEnc ( a , [ 25 , 25 ] ) } , SUBS _PLAINTEXT : "ABCDEFGHIJKLMNOPQRSTUVWXYZ" , SUBS _CIPHERTEXT : "XYZABCDEFGHIJKLMNOPQRSTUVW" , runSubstitute : function ( a , b ) { var c = Utils . strToByteArray ( Utils . expandAlphRange ( b [ 0 ] ) . join ( ) ) , d = Utils . strToByteArray ( Utils . expandAlphRange ( b [ 1 ] ) . join ( ) ) , e = [ ] , f = - 1 ; c . length !== d . length && ( e = Utils . strToByteArray ( "Warning: Plaintext and Ciphertext lengths differ\n\n" ) ) ; for ( var g = 0 ; g < a . length ; g ++ ) f = c . indexOf ( a [ g ] ) , e . push ( f > - 1 && f < d . length ? d [ f ] : a [ g ] ) ; return e } } ; CryptoJS . kdf . OpenSSL . execute = function ( a , b , c , d ) { void 0 !== d && null !== d || ( d = CryptoJS . lib . WordArray . random ( 8 ) ) ; var e = CryptoJS . algo . EvpKDF . create ( { keySize : b + c } ) . compute ( a , d ) , f = CryptoJS . lib . WordArray . create ( e . words . slice ( b ) , 4 * c ) ; return e . sigBytes = 4 * b , CryptoJS . lib . CipherParams . create ( { key : e , iv : f , salt : d } ) } ; var Code = { LANGUAGES : [ "default-code" , "default-markup" , "bash" , "bsh" , "c" , "cc" , "coffee" , "cpp" , "cs" , "csh" , "cv" , "cxx" , "cyc" , "htm" , "html" , "in.tag" , "java" , "javascript" , "js" , "json" , "m" , "mxml" , "perl" , "pl" , "pm" , "py" , "python" , "rb" , "rc" , "rs" , "ruby" , "rust" , "sh" , "uq.val" , "xhtml" , "xml" , "xsl" ] , LINE _NUMS : ! 1 , runSyntaxHighlight : function ( a , b ) { var c = b [ 0 ] , d = b [ 1 ] ; return "<code class='prettyprint'>" + prettyPrintOne ( Utils . escapeHtml ( a ) , c , d ) + "</code>" } , BEAUTIFY _INDENT : "\\t" , runXmlBeautify : function ( a , b ) { var c = b [ 0 ] ; return vkbeautify . xml ( a , c ) } , runJsonBeautify : function ( a , b ) { var c = b [ 0 ] ; return a ? vkbeautify . json ( a , c ) : "" } , runCssBeautify : function ( a , b ) { var c = b [ 0 ] ; return vkbeautify . css ( a , c ) } , runSqlBeautify : function ( a , b ) { var c = b [ 0 ] ; return vkbeautify . sql ( a , c ) } , PRESERVE _COMMENTS : ! 1 , runXmlMinify : function ( a , b ) { var c = b [ 0 ] ; return vkbeautify . xmlmin ( a , c ) } , runJsonMinify : function ( a , b ) { return a ? vkbeautify . jsonmin ( a ) : "" } , runCssMinify : function ( a , b ) { var c = b [ 0 ] ; return vkbeautify . cssmin ( a , c ) } , r
var f = 0 ; if ( 0 !== c ) for ( var g = 0 ; g < a . length ; g += c ) f = Entropy . _calcEntropy ( a . slice ( g , g + c ) ) , d += "Bytes " + g + " to " + ( g + c ) + ": " + f + "\n" ; else d += "Chunk size cannot be 0." ; return d } , FREQ _ZEROS : ! 1 , runFreqDistrib : function ( a , b ) { if ( ! a . length ) return "No data" ; for ( var c = new Array ( 256 ) , d = new Array ( 256 ) , e = a . length , f = b [ 0 ] , g = 0 ; g < 256 ; g ++ ) c [ g ] = 0 ; for ( g = 0 ; g < e ; g ++ ) c [ a [ g ] ] ++ ; var h = 0 ; for ( g = 0 ; g < 256 ; g ++ ) c [ g ] > 0 && h ++ , d [ g ] = c [ g ] / e * 100 ; var i = "<canvas id='chart-area'></canvas><br>Total data length: " + e + "\nNumber of bytes represented: " + h + "\nNumber of bytes not represented: " + ( 256 - h ) + "\n\nByte Percentage\n<script> var canvas = document.getElementById('chart-area'), parentRect = canvas.parentNode.getBoundingClientRect(), scores = " + JSON . stringify ( d ) + "; canvas.width = parentRect.width * 0.95; canvas.height = parentRect.height * 0.9; CanvasComponents.drawBarChart(canvas, scores, 'Byte', 'Frequency %', 16, 6); <\/script>" ; for ( g = 0 ; g < 256 ; g ++ ) ( c [ g ] || f ) && ( i += " " + Utils . hex ( g , 2 ) + " (" + Utils . padRight ( d [ g ] . toFixed ( 2 ) . replace ( ".00" , "" ) + "%)" , 8 ) + Array ( Math . ceil ( d [ g ] ) + 1 ) . join ( "|" ) + "\n" ) ; return i } , _calcEntropy : function ( a ) { for ( var b = [ ] , c = a . unique ( ) , d = Utils . byteArrayToChars ( a ) , e = 0 ; e < c . length ; e ++ ) b . push ( d . count ( Utils . chr ( c [ e ] ) ) / a . length ) ; var f , g = 0 ; for ( e = 0 ; e < b . length ; e ++ ) f = b [ e ] , g += f * Math . log ( f ) / Math . log ( 2 ) ; return - g } } , Extract = { _search : function ( a , b , c , d ) { for ( var e , f = "" , g = 0 ; e = b . exec ( a ) ; ) c && c . test ( e [ 0 ] ) || ( g ++ , f += e [ 0 ] + "\n" ) ; return d && ( f = "Total found: " + g + "\n\n" + f ) , f } , MIN _STRING _LEN : 3 , DISPLAY _TOTAL : ! 1 , runStrings : function ( a , b ) { var c = b [ 0 ] || Extract . MIN _STRING _LEN , d = b [ 1 ] , e = "[A-Z\\d/\\-:.,_$%'\"()<>= !\\[\\]{}@]" , f = new RegExp ( e + "{" + c + ",}" , "ig" ) ; return Extract . _search ( a , f , null , d ) } , INCLUDE _IPV4 : ! 0 , INCLUDE _IPV6 : ! 1 , REMOVE _LOCAL : ! 1 , runIp : function ( a , b ) { var c = b [ 0 ] , d = b [ 1 ] , e = b [ 2 ] , f = b [ 3 ] , g = "(?:(?:\\d|[01]?\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d|\\d)(?:\\/\\d{1,2})?" , h = "((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|(?![\\dA-F])))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})" , i = "" ; if ( c && d ? i = g + "|" + h : c ? i = g : d && ( i = h ) , i ) { var j = new RegExp ( i , "ig" ) ; if ( e ) { var k = "10\\..+" , l = "192\\.168\\..+" , m = "172\\.(?:1[6-9]|2\\d|3[01])\\..+" , n = "127\\..+" , o = new RegExp ( "^(?:" + k + "|" + l + "|" + m + "|" + n + ")" ) ; return Extract . _search ( a , j , o , f ) } return Extract . _search ( a , j , null , f ) } return "" } , runEmail : function ( a , b ) { var c = b [ 0 ] , d = /\w[-.\w]*@[-\w]+(?:\.[-\w]+)*\.[A-Z]{2,4}/gi ; return Extract . _search ( a , d , null , c ) } , runMac : function ( a , b ) { var c = b [ 0 ] , d = /[A-F\d]{2}(?:[:-][A-F\d]{2}){5}/gi ; return Extract . _search ( a , d , null , c ) } , runUrls : function ( a , b ) { var c = b [ 0 ] , d = "[A-Z]+://" , e = "[-\\w]+(?:\\.\\w[-\\w]*)+" , f = ":\\d+" , g = "/[^.!,?;\"'<>()\\[\\]{}\\s\\x7F-\\xFF]*" ; g += "(?:[.!,?]+[^.!,?;\"'<>()\\[\\]{}\\s\\x7F-\\xFF]+)*" ; var h = new RegExp ( d + e + "(?:" + f + ")?(?:" + g + ")?" , "ig" ) ; return Extract . _search ( a , h , null , c ) } , runDomains : function ( a , b ) { var c = b [ 0 ] , d = "https?://" , e = "[-\\w\\.]+" , f = "\\.(?:com|net|org|biz|info|co|uk|onion|int|mobi|name|edu|gov|mil|eu|ac|ae|af|de|ca|ch|cn|cy|es|gb|hk|il|in|io|tv|me|nl|no|nz|ro|ru|tr|us|az|ir|kz|uz|pk)+" , g = new RegExp ( "(?:" + d + ")?" + e + f , "ig" ) ; return Extract . _search ( a , g , null , c ) } , INCLUDE _WIN _PATH : ! 0 , INCLUDE _UNIX _PATH : ! 0 , runFilePaths : function ( a , b ) { var c = b [ 0 ] , d = b [ 1 ] , e = b [ 2 ] , f = "[A-Z]:\\\\" , g = "[A-Z\\d][A-Z\\d\\- '_\\(\\)]{0,61}" , h = "[A-Z\\d]{1,6}" , i = f + "(?:" + g + "\\\\?)*" + g + "(?:\\." + h + ")?" , j = "(?:/[A-Z\\d.][A-Z\\d\\-.]{0,61})+" , k = "" ; if ( c && d ? k = i + "|" + j : c ? k = i : d && ( k = j ) , k ) { var l = new RegExp ( k , "ig" ) ; return Extract . _search ( a , l , null , e ) } return "" } , runDates : function ( a , b ) { var c = b [ 0 ] , d = "(?:19|20)\\d\\d[- /.](?:0[1-9]|1[012])[- /.](?:0[1-9]|[12][0-9]|3[01])" , e = "(?:0[1-9]|[12][0-9]|3[01])[- /.](?:0[1-9]|1[012])[- /.](?:19|20)\\d\\d" , f = "(?:0[1-9]|1[012])[- /.](?:0[1-9]|[12][0-9]|3[01])[- /.](?:19|20)\\d\\d" , g = new RegExp ( d + "|" + e + "|" + f , "ig" ) ; return Extract . _search ( a , g , null , c ) } , runAllIdents : function ( a , b ) { var c = "" ; return c += "IP addresses\n" , c += Extract . runIp ( a , [ ! 0 , ! 0 , ! 1 ] ) , c += "\nEmail addresses\n" , c += Extract . runEmail ( a , [ ] ) , c += "\nMAC addresses\n" , c +=
var h = ( e [ 2 ] << 16 ) + e [ 3 ] , i = 65535 & ~ e [ 5 ] , j = ~ ( ( e [ 6 ] << 16 ) + e [ 7 ] ) , k = e [ 4 ] >>> 15 & 1 , l = e [ 4 ] >>> 14 & 1 , m = e [ 4 ] >>> 10 & 15 , n = e [ 4 ] >>> 8 & 3 , o = 255 & e [ 4 ] ; d += "\nServer IPv4 address: " + IP . _ipv4ToStr ( h ) + "\nClient IPv4 address: " + IP . _ipv4ToStr ( j ) + "\nClient UDP port: " + i + "\nFlags:\n\tCone: " + k , d += k ? " (Client is behind a cone NAT)" : " (Client is not behind a cone NAT)" , d += "\n\tR: " + l , l && ( d += " Error: This flag should be set to 0. See RFC 5991 and RFC 4380." ) , d += "\n\tRandom1: " + Utils . bin ( m , 4 ) + "\n\tUG: " + Utils . bin ( n , 2 ) , n && ( d += " Error: This flag should be set to 00. See RFC 4380." ) , d += "\n\tRandom2: " + Utils . bin ( o , 8 ) , d += ! l && ! n && m && o ? "\n\nThis is a valid Teredo address which complies with RFC 4380 and RFC 5991." : l || n ? "\n\nThis is an invalid Teredo address." : "\n\nThis is a valid Teredo address which complies with RFC 4380, however it does not comply with RFC 5991 (Teredo Security Updates) as there are no randomised bits in the flag field." , d += "\n\nTeredo prefix range: 2001::/32" } else if ( 8193 === e [ 0 ] && 2 === e [ 1 ] && 0 === e [ 2 ] ) d += "\nAssigned to the Benchmarking Methodology Working Group (BMWG) for benchmarking IPv6. Corresponds to 198.18.0.0/15 for benchmarking IPv4. See RFC 5180 for more details." , d += "\nBMWG range: 2001:2::/48" ; else if ( 8193 === e [ 0 ] && e [ 1 ] >= 16 && e [ 1 ] <= 31 ) d += "\nDeprecated, previously ORCHIDv1 (Overlay Routable Cryptographic Hash Identifiers).\nORCHIDv1 range: 2001:10::/28\nORCHIDv2 now uses 2001:20::/28." ; else if ( 8193 === e [ 0 ] && e [ 1 ] >= 32 && e [ 1 ] <= 47 ) d += "\nORCHIDv2 (Overlay Routable Cryptographic Hash Identifiers).\nThese are non-routed IPv6 addresses used for Cryptographic Hash Identifiers." , d += "\nORCHIDv2 range: 2001:20::/28" ; else if ( 8193 === e [ 0 ] && 3512 === e [ 1 ] ) d += "\nThis is a documentation IPv6 address. This range should be used whenever an example IPv6 address is given or to model networking scenarios. Corresponds to 192.0.2.0/24, 198.51.100.0/24, and 203.0.113.0/24 in IPv4." , d += "\nDocumentation range: 2001:db8::/32" ; else if ( 8194 === e [ 0 ] ) { d += "\n6to4 transition IPv6 address detected. See RFC 3056 for more details.\n6to4 prefix range: 2002::/16" ; var p = IP . _ipv4ToStr ( ( e [ 1 ] << 16 ) + e [ 2 ] ) , q = e [ 3 ] , r = e [ 4 ] . toString ( 16 ) + e [ 5 ] . toString ( 16 ) + e [ 6 ] . toString ( 16 ) + e [ 7 ] . toString ( 16 ) , s = new BigInteger ( r , 16 ) ; d += "\n\nEncapsulated IPv4 address: " + p + "\nSLA ID: " + q + "\nInterface ID (base 16): " + r + "\nInterface ID (base 10): " + s . toString ( ) } else e [ 0 ] >= 64512 && e [ 0 ] <= 65023 ? ( d += "\nThis is a unique local address comparable to the IPv4 private addresses 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16. See RFC 4193 for more details." , d += "\nUnique local addresses range: fc00::/7" ) : e [ 0 ] >= 65152 && e [ 0 ] <= 65215 ? ( d += "\nThis is a link-local address comparable to the auto-configuration addresses 169.254.0.0/16 in IPv4." , d += "\nLink-local addresses range: fe80::/10" ) : e [ 0 ] >= 65280 && ( d += "\nThis is a reserved multicast address." , d += "\nMulticast addresses range: ff00::/8" ) ; return d } , IP _FORMAT _LIST : [ "Dotted Decimal" , "Decimal" , "Hex" ] , runChangeIpFormat : function ( a , b ) { for ( var c = b [ 0 ] , d = b [ 1 ] , e = a . split ( "\n" ) , f = "" , g = 0 , h = 0 ; h < e . length ; h ++ ) if ( "" !== e [ h ] ) { var i = [ ] ; if ( c !== d ) { switch ( c ) { case "Dotted Decimal" : var j = e [ h ] . split ( "." ) ; for ( g = 0 ; g < j . length ; g ++ ) i . push ( parseInt ( j [ g ] , 10 ) ) ; break ; case "Decimal" : var k = e [ h ] . toString ( ) ; i . push ( k >> 24 & 255 ) , i . push ( k >> 16 & 255 ) , i . push ( k >> 8 & 255 ) , i . push ( 255 & k ) ; break ; case "Hex" : i = Utils . hexToByteArray ( e [ h ] ) ; break ; default : throw "Unsupported input IP format" } switch ( d ) { case "Dotted Decimal" : var l = "" ; for ( g = 0 ; g < i . length ; g ++ ) l += i [ g ] + "." ; f += l . slice ( 0 , l . length - 1 ) + "\n" ; break ; case "Decimal" : var m = ( i [ 0 ] << 24 | i [ 1 ] << 16 | i [ 2 ] << 8 | i [ 3 ] ) >>> 0 ; f += m . toString ( ) + "\n" ; break ; case "Hex" : var n = "" ; for ( g = 0 ; g < i . length ; g ++ ) n += Utils . hex ( i [ g ] ) ; f += n + "\n" ; break ; default : throw "Unsupported output IP format" } } else f += e [ h ] + "\n" } return f . slice ( 0 , f . length - 1 ) } , DELIM _OPTIONS : [ "Line feed" , "CRLF" , "Space" , "Comma" , "Semi-colon" ] , GROUP _CIDR : 24 , GROUP _ONLY _SUBNET : ! 1 , runGroupIps : function ( a , b ) { var c = Utils . charRep [ b [ 0 ] ] , d = b [ 1 ] , e = b [ 2 ] , f = d < 32 ? ~ ( 4294967295 >>> d ) : 4294967295 , g = IP . _genIpv6Mask ( d ) , h = a . split ( c ) , i = { } , j = { } , k = null , l = "" , m = null , n = null , o = "" ; if ( d < 0 || d > 127 ) return "CIDR must be less than 32 for IPv4 or 128 for IPv6" ; for ( var p = 0 ; p < h . length ; p ++ ) if ( k = IP . IPV4 _REGEX . exec
"06032b240301020101" : "ideaECBPad" , "06032b24030102010101" : "ideaECBPadISO" , "06032b2403010202" : "ideaCBC" , "06032b240301020201" : "ideaCBCPad" , "06032b24030102020101" : "ideaCBCPadISO" , "06032b2403010203" : "ideaOFB" , "06032b2403010204" : "ideaCFB" , "06032b24030103" : "des-3" , "06032b240301030101" : "des-3ECBPad" , "06032b24030103010101" : "des-3ECBPadISO" , "06032b240301030201" : "des-3CBCPad" , "06032b24030103020101" : "des-3CBCPadISO" , "06032b240302" : "hashAlgorithm" , "06032b24030201" : "ripemd160" , "06032b24030202" : "ripemd128" , "06032b24030203" : "ripemd256" , "06032b24030204" : "mdc2singleLength" , "06032b24030205" : "mdc2doubleLength" , "06032b240303" : "signatureAlgorithm" , "06032b24030301" : "rsa" , "06032b2403030101" : "rsaMitSHA-1" , "06032b2403030102" : "rsaMitRIPEMD160" , "06032b24030302" : "ellipticCurve" , "06032b240304" : "signatureScheme" , "06032b24030401" : "iso9796-1" , "06032b2403040201" : "iso9796-2" , "06032b2403040202" : "iso9796-2rsa" , "06032b2404" : "attribute" , "06032b2405" : "policy" , "06032b2406" : "api" , "06032b240601" : "manufacturerSpecific" , "06032b240602" : "functionalitySpecific" , "06032b2407" : "api" , "06032b240701" : "keyAgreement" , "06032b240702" : "keyTransport" , "06032b06010401927c0a0101" : "UNINETT policyIdentifier" , "06032b0601040195180a" : "ICE-TEL policyIdentifier" , "06032b0601040197552001" : "cryptlibEnvelope" , "06032b0601040197552002" : "cryptlibPrivateKey" , "060a2b060104018237" : "Microsoft OID" , "060a2b0601040182370a" : "Crypto 2.0" , "060a2b0601040182370a01" : "certTrustList" , "060a2b0601040182370a0101" : "szOID_SORTED_CTL" , "060a2b0601040182370a0a" : "Microsoft CMC OIDs" , "060a2b0601040182370a0a01" : "szOID_CMC_ADD_ATTRIBUTES" , "060a2b0601040182370a0b" : "Microsoft certificate property OIDs" , "060a2b0601040182370a0b01" : "szOID_CERT_PROP_ID_PREFIX" , "060a2b0601040182370a0c" : "CryptUI" , "060a2b0601040182370a0c01" : "szOID_ANY_APPLICATION_POLICY" , "060a2b0601040182370a02" : "nextUpdateLocation" , "060a2b0601040182370a0301" : "certTrustListSigning" , "060a2b0601040182370a030a" : "szOID_KP_QUALIFIED_SUBORDINATION" , "060a2b0601040182370a030b" : "szOID_KP_KEY_RECOVERY" , "060a2b0601040182370a030c" : "szOID_KP_DOCUMENT_SIGNING" , "060a2b0601040182370a0302" : "timeStampSigning" , "060a2b0601040182370a0303" : "serverGatedCrypto" , "060a2b0601040182370a030301" : "szOID_SERIALIZED" , "060a2b0601040182370a0304" : "encryptedFileSystem" , "060a2b0601040182370a030401" : "szOID_EFS_RECOVERY" , "060a2b0601040182370a0305" : "szOID_WHQL_CRYPTO" , "060a2b0601040182370a0306" : "szOID_NT5_CRYPTO" , "060a2b0601040182370a0307" : "szOID_OEM_WHQL_CRYPTO" , "060a2b0601040182370a0308" : "szOID_EMBEDDED_NT_CRYPTO" , "060a2b0601040182370a0309" : "szOID_ROOT_LIST_SIGNER" , "060a2b0601040182370a0401" : "yesnoTrustAttr" , "060a2b0601040182370a0501" : "szOID_DRM" , "060a2b0601040182370a0502" : "szOID_DRM_INDIVIDUALIZATION" , "060a2b0601040182370a0601" : "szOID_LICENSES" , "060a2b0601040182370a0602" : "szOID_LICENSE_SERVER" , "060a2b0601040182370a07" : "szOID_MICROSOFT_RDN_PREFIX" , "060a2b0601040182370a0701" : "szOID_KEYID_RDN" , "060a2b0601040182370a0801" : "szOID_REMOVE_CERTIFICATE" , "060a2b0601040182370a0901" : "szOID_CROSS_CERT_DIST_POINTS" , "060a2b0601040182370c" : "Catalog" , "060a2b0601040182370c0101" : "szOID_CATALOG_LIST" , "060a2b0601040182370c0102" : "szOID_CATALOG_LIST_MEMBER" , "060a2b0601040182370c0201" : "CAT_NAMEVALUE_OBJID" , "060a2b0601040182370c0202" : "CAT_MEMBERINFO_OBJID" , "060a2b0601040182370d" : "Microsoft PKCS10 OIDs" , "060a2b0601040182370d01" : "szOID_RENEWAL_CERTIFICATE" , "060a2b0601040182370d0201" : "szOID_ENROLLMENT_NAME_VALUE_PAIR" , "060a2b0601040182370d0202" : "szOID_ENROLLMENT_CSP_PROVIDER" , "060a2b0601040182370d0203" : "OS Version" , "060a2b0601040182370f" : "Microsoft Java" , "060a2b06010401823710" : "Microsoft Outlook/Exchange" , "060a2b0601040182371004" : "Outlook Express" , "060a2b06010401823711" : "Microsoft PKCS12 attributes" , "060a2b0601040182371101" : "szOID_LOCAL_MACHINE_KEYSET" , "060a2b06010401823712" : "Microsoft Hydra" , "060a2b06010401823713" : "Microsoft ISPU Test" , "060a2b06010401823702" : "Authenticode" , "060a2b06010401823702010a" : "spcAgencyInfo" , "060a2b06010401823702010b" : "spcStatementType" , "060a2b06010401823702010c" : "spcSpOpusInfo" , "060a2b06010401823702010e" : "certExtensions" , "060a2b06010401823702010f" : "spcPelmageData" , "060a2b060104018237020112" : " SPC _RAW _FILE
e && ( k = e . split ( g ) ) ; for ( var l = a . progress + 1 ; l < b . length && ( "Merge" !== b [ l ] . name || b [ l ] . isDisabled ( ) ) ; l ++ ) j . push ( b [ l ] ) ; var m = new Recipe , n = "" , o = 0 ; for ( m . addOperations ( j ) , l = 0 ; l < k . length ; l ++ ) { var p = new Dish ( k [ l ] , c ) ; try { o = m . execute ( p , 0 ) } catch ( a ) { if ( ! i ) throw a ; o = a . progress + 1 } n += p . get ( d ) + h } return a . dish . set ( n , d ) , a . progress += o , a } , runMerge : function ( a ) { return a } , JUMP _NUM : 0 , MAX _JUMPS : 10 , runJump : function ( a ) { var b = a . opList [ a . progress ] . getIngValues ( ) , c = b [ 0 ] , d = b [ 1 ] ; return a . numJumps >= d ? ( a . progress ++ , a ) : ( a . progress += c , a . numJumps ++ , a ) } , runCondJump : function ( a ) { var b = a . opList [ a . progress ] . getIngValues ( ) , c = a . dish , d = b [ 0 ] , e = b [ 1 ] , f = b [ 2 ] ; return a . numJumps >= f ? ( a . progress ++ , a ) : ( "" !== d && c . get ( Dish . STRING ) . search ( d ) > - 1 && ( a . progress += e , a . numJumps ++ ) , a ) } , runReturn : function ( a ) { return a . progress = a . opList . length , a } } , Ingredient = function ( a ) { this . name = "" , this . type = "" , this . value = null , a && this . _parseConfig ( a ) } ; Ingredient . prototype . _parseConfig = function ( a ) { this . name = a . name , this . type = a . type } , Ingredient . prototype . getConfig = function ( ) { return this . value } , Ingredient . prototype . setValue = function ( a ) { this . value = Ingredient . prepare ( a , this . type ) } , Ingredient . prepare = function ( a , b ) { switch ( b ) { case "binaryString" : case "binaryShortString" : case "editableOption" : return Utils . parseEscapedChars ( a ) ; case "byteArray" : return "string" == typeof a ? ( a = a . replace ( /\s+/g , "" ) , Utils . hexToByteArray ( a ) ) : a ; case "number" : var c = parseFloat ( a ) ; if ( isNaN ( c ) ) { var d = Utils . truncate ( a . toString ( ) , 10 ) ; throw "Invalid ingredient value. Not a number: " + d } return c ; default : return a } } ; var Operation = function ( a , b ) { this . name = a , this . description = "" , this . inputType = - 1 , this . outputType = - 1 , this . run = null , this . highlight = null , this . highlightReverse = null , this . breakpoint = ! 1 , this . disabled = ! 1 , this . ingList = [ ] , b && this . _parseConfig ( b ) } ; Operation . prototype . _parseConfig = function ( a ) { this . description = a . description , this . inputType = Dish . typeEnum ( a . inputType ) , this . outputType = Dish . typeEnum ( a . outputType ) , this . run = a . run , this . highlight = a . highlight , this . highlightReverse = a . highlightReverse , this . flowControl = a . flowControl ; for ( var b = 0 ; b < a . args . length ; b ++ ) { var c = a . args [ b ] , d = new Ingredient ( c ) ; this . addIngredient ( d ) } } , Operation . prototype . getConfig = function ( ) { for ( var a = [ ] , b = 0 ; b < this . ingList . length ; b ++ ) a . push ( this . ingList [ b ] . getConfig ( ) ) ; var c = { op : this . name , args : a } ; return c } , Operation . prototype . addIngredient = function ( a ) { this . ingList . push ( a ) } , Operation . prototype . setIngValues = function ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) this . ingList [ b ] . setValue ( a [ b ] ) } , Operation . prototype . getIngValues = function ( ) { for ( var a = [ ] , b = 0 ; b < this . ingList . length ; b ++ ) a . push ( this . ingList [ b ] . value ) ; return a } , Operation . prototype . setBreakpoint = function ( a ) { this . breakpoint = ! ! a } , Operation . prototype . isBreakpoint = function ( ) { return this . breakpoint } , Operation . prototype . setDisabled = function ( a ) { this . disabled = ! ! a } , Operation . prototype . isDisabled = function ( ) { return this . disabled } , Operation . prototype . isFlowControl = function ( ) { return this . flowControl } ; var Recipe = function ( a ) { this . opList = [ ] , a && this . _parseConfig ( a ) } ; Recipe . prototype . _parseConfig = function ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] . op , d = OperationConfig [ c ] , e = new Operation ( c , d ) ; e . setIngValues ( a [ b ] . args ) , e . setBreakpoint ( a [ b ] . breakpoint ) , e . setDisabled ( a [ b ] . disabled ) , this . addOperation ( e ) } } , Recipe . prototype . getConfig = function ( ) { for ( var a = [ ] , b = 0 ; b < this . opList . length ; b ++ ) a . push ( this . opList [ b ] . getConfig ( ) ) ; return a } , Recipe . prototype . addOperation = function ( a ) { this . opList . push ( a ) } , Recipe . prototype . addOperations = function ( a ) { this . opList = this . opList . concat ( a ) } , Recipe . prototype . setBreakpoint = function ( a , b ) { try { this . opList [ a ] . setBreakpoint ( b ) } catch ( a ) { } } , Recipe . prototype . removeBreaksUpTo = function ( a ) { for ( var b = 0 ; b < a ; b ++ ) this . opList [ b ] . setBreakpoint ( ! 1 ) } , Recipe . prototype . containsFlowControl = function ( ) { for ( var a = 0 ; a < this . opList . length ; a ++ ) if ( this . opList [ a ] . isFlowControl ( ) ) return ! 0 ; return ! 1 } , Recipe . prototype . lastOpIndex = function ( a ) { for ( var b , c = a + 1 || 0 ; c < this . opList . length ; c ++ ) { if ( b = this . opList [ c ] , b . isDisabled ( ) ) return c - 1 ; if ( b . isBreakpoint ( ) ) return c - 1 } return c - 1 } , Recipe . prototype . execute = function ( a , b ) { b = b || 0 ; for ( var c , d , e , f = 0 , g = b ; g < this . opList . length ; g ++ ) if ( c = this . opList [ g ] , ! c . isDisabled ( ) ) { i
} , { name : "Output format" , type : "option" , value : Cipher . IO _FORMAT3 } ] } , "Rabbit Decrypt" : { description : "To successfully decrypt Rabbit, you need either:<ul><li>The passphrase</li><li>Or the key and IV (This is currently broken. You need the key and salt at the moment.)</li></ul>The IV should be the first 8 bytes of encrypted material." , run : Cipher . runRabbitDec , inputType : "string" , outputType : "string" , args : [ { name : "Passphrase/Key" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT2 } , { name : "IV" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT1 } , { name : "Salt" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT1 } , { name : "Mode" , type : "option" , value : Cipher . MODES } , { name : "Padding" , type : "option" , value : Cipher . PADDING } , { name : "Input format" , type : "option" , value : Cipher . IO _FORMAT1 } , { name : "Output format" , type : "option" , value : Cipher . IO _FORMAT2 } ] } , "Rabbit Encrypt" : { description : "Input: Either enter a passphrase (which will be used to derive a key using the OpenSSL KDF) or both the key and IV.<br><br>Rabbit is a high-performance stream cipher and a finalist in the eSTREAM Portfolio. It is one of the four designs selected after a 3 1/2 year process where 22 designs were evaluated." , run : Cipher . runRabbitEnc , inputType : "string" , outputType : "string" , args : [ { name : "Passphrase/Key" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT2 } , { name : "IV" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT1 } , { name : "Salt" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT1 } , { name : "Mode" , type : "option" , value : Cipher . MODES } , { name : "Padding" , type : "option" , value : Cipher . PADDING } , { name : "Output result" , type : "option" , value : Cipher . RESULT _TYPE } , { name : "Output format" , type : "option" , value : Cipher . IO _FORMAT1 } ] } , RC4 : { description : "RC4 is a widely-used stream cipher. It is used in popular protocols such as SSL and WEP. Although remarkable for its simplicity and speed, the algorithm's history doesn't inspire confidence in its security." , run : Cipher . runRc4 , highlight : ! 0 , highlightReverse : ! 0 , inputType : "string" , outputType : "string" , args : [ { name : "Passphrase" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT2 } , { name : "Input format" , type : "option" , value : Cipher . IO _FORMAT4 } , { name : "Output format" , type : "option" , value : Cipher . IO _FORMAT4 } ] } , "RC4 Drop" : { description : "It was discovered that the first few bytes of the RC4 keystream are strongly non-random and leak information about the key. We can defend against this attack by discarding the initial portion of the keystream. This modified algorithm is traditionally called RC4-drop." , run : Cipher . runRc4drop , highlight : ! 0 , highlightReverse : ! 0 , inputType : "string" , outputType : "string" , args : [ { name : "Passphrase" , type : "toggleString" , value : "" , toggleValues : Cipher . IO _FORMAT2 } , { name : "Input format" , type : "option" , value : Cipher . IO _FORMAT4 } , { name : "Output format" , type : "option" , value : Cipher . IO _FORMAT4 } , { name : "Number of bytes to drop" , type : "number" , value : Cipher . RC4DROP _BYTES } ] } , "Derive PBKDF2 key" : { description : "PBKDF2 is a password-based key derivation function. In many applications of cryptography, user security is ultimately dependent on a password, and because a password usually can't be used directly as a cryptographic key, some processing is required.<br><br>A salt provides a large set of keys for any given password, and an iteration count increases the cost of producing keys from a password, thereby also increasing the difficulty of attack.<br><br>Enter your passphrase as the input and then set the relevant options to generate a key." , run : Cipher . runPbkdf2 , inputType : "string" , outputType : "string" , args : [ { name : "Key size" , type : "number" , value : Cipher . KDF _KEY _SIZE } , { name : "Iterations" , type : "number" , value : Cipher . KDF _ITERATIONS } , { name : "Salt (hex)" , type : "string" , value : "" } , { name : "Input format" , type : "option" , value : Cipher . IO _FORMAT2 } , { name : "Output format" , type : "option" , value : Cipher . IO _FORMAT3 } ] } , "Derive EVP key" : { description : " EVP is a password - based key derivation function used extensively in OpenSSL . In many applications of cryptography , user security is ultimately dependent on a password , and because a password usually can ' t be used directly as a cr
2017-02-10 16:39:32 +00:00
run : Hash . runRIPEMD160 , inputType : "string" , outputType : "string" , args : [ ] } , HMAC : { description : "Keyed-Hash Message Authentication Codes (HMAC) are a mechanism for message authentication using cryptographic hash functions." , run : Hash . runHMAC , inputType : "string" , outputType : "string" , args : [ { name : "Password" , type : "binaryString" , value : "" } , { name : "Hashing function" , type : "option" , value : Hash . HMAC _FUNCTIONS } ] } , "Fletcher-8 Checksum" : { description : "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques." , run : Checksum . runFletcher8 , inputType : "byteArray" , outputType : "string" , args : [ ] } , "Fletcher-16 Checksum" : { description : "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques." , run : Checksum . runFletcher16 , inputType : "byteArray" , outputType : "string" , args : [ ] } , "Fletcher-32 Checksum" : { description : "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques." , run : Checksum . runFletcher32 , inputType : "byteArray" , outputType : "string" , args : [ ] } , "Fletcher-64 Checksum" : { description : "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques." , run : Checksum . runFletcher64 , inputType : "byteArray" , outputType : "string" , args : [ ] } , "Adler-32 Checksum" : { description : "Adler-32 is a checksum algorithm which was invented by Mark Adler in 1995, and is a modification of the Fletcher checksum. Compared to a cyclic redundancy check of the same length, it trades reliability for speed (preferring the latter).<br><br>Adler-32 is more reliable than Fletcher-16, and slightly less reliable than Fletcher-32." , run : Checksum . runAdler32 , inputType : "byteArray" , outputType : "string" , args : [ ] } , "CRC-32 Checksum" : { description : "A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data.<br><br>The CRC was invented by W. Wesley Peterson in 1961; the 32-bit CRC function of Ethernet and many other standards is the work of several researchers and was published in 1975." , run : Checksum . runCRC32 , inputType : "byteArray" , outputType : "string" , args : [ ] } , "Generate all hashes" : { description : "Generates all available hashes and checksums for the input." , run : Hash . runAll , inputType : "string" , outputType : "string" , args : [ ] } , Entropy : { description : "Calculates the Shannon entropy of the input data which gives an idea of its randomness. 8 is the maximum." , run : Entropy . runEntropy , inputType : "byteArray" , outputType : "html" , args : [ { name : "Chunk size" , type : "number" , value : Entropy . CHUNK _SIZE } ] } , "Frequency distribution" : { description : "Displays the distribution of bytes in the data as a graph." , run : Entropy . runFreqDistrib , inputType : "byteArray" , outputType : "html" , args : [ { name : "Show 0%'s" , type : "boolean" , value : Entropy . FREQ _ZEROS } ] } , Numberwang : { description : "Based on the popular gameshow by Mitchell and Webb." , run : Numberwang . run , inputType : "string" , outputType : "string" , args : [ ] } , "Parse X.509 certificate" : { description : " X . 509 is an ITU - T standard
2017-02-10 12:21:51 +00:00
this . options . updateUrl && ( this . lastStateUrl = this . manager . controls . generateStateUrl ( ! 0 , ! 0 ) , window . history . replaceState ( { } , "CyberChef" , this . lastStateUrl ) ) } , HTMLApp . prototype . popState = function ( a ) { window . location . href . split ( "#" ) [ 0 ] !== this . lastStateUrl && this . loadURIParams ( ) } , HTMLApp . prototype . callApi = function ( a , b , c , d , e ) { b = b || "POST" , c = c || { } , d = d || void 0 , e = e || "application/json" ; var f = null , g = ! 1 ; return $ . ajax ( { url : a , async : ! 1 , type : b , data : c , dataType : d , contentType : e , success : function ( a ) { g = ! 0 , f = a } , error : function ( a ) { g = ! 1 , f = a } } ) , { success : g , response : f } } ; var HTMLCategory = function ( a , b ) { this . name = a , this . selected = b , this . opList = [ ] } ; HTMLCategory . prototype . addOperation = function ( a ) { this . opList . push ( a ) } , HTMLCategory . prototype . toHtml = function ( ) { for ( var a = "cat" + this . name . replace ( /[\s\/-:_]/g , "" ) , b = "<div class='panel category'> <a class='category-title' data-toggle='collapse' data-parent='#categories' href='#" + a + "'> " + this . name + " </a> <div id='" + a + "' class='panel-collapse collapse " + ( this . selected ? " in" : "" ) + "'><ul class='op-list'>" , c = 0 ; c < this . opList . length ; c ++ ) b += this . opList [ c ] . toStubHtml ( ) ; return b += "</ul></div></div>" } ; var HTMLIngredient = function ( a , b , c ) { this . app = b , this . manager = c , this . name = a . name , this . type = a . type , this . value = a . value , this . disabled = a . disabled || ! 1 , this . disableArgs = a . disableArgs || ! 1 , this . placeholder = a . placeholder || ! 1 , this . target = a . target , this . toggleValues = a . toggleValues , this . id = "ing-" + this . app . nextIngId ( ) } ; HTMLIngredient . prototype . toHtml = function ( ) { var a , b , c = "boolean" === this . type || "number" === this . type || "option" === this . type || "shortString" === this . type || "binaryShortString" === this . type , d = c ? "" : "<div class='clearfix'> </div>" ; switch ( d += "<div class='arg-group" + ( c ? " inline-args" : "" ) + ( "text" === this . type ? " arg-group-text" : "" ) + "'><label class='arg-label' for='" + this . id + "'>" + this . name + "</label>" , this . type ) { case "string" : case "binaryString" : case "byteArray" : d += "<input type='text' id='" + this . id + "' class='arg arg-input' arg-name='" + this . name + "' value='" + this . value + "'" + ( this . disabled ? " disabled='disabled'" : "" ) + ( this . placeholder ? " placeholder='" + this . placeholder + "'" : "" ) + ">" ; break ; case "shortString" : case "binaryShortString" : d += "<input type='text' id='" + this . id + "'class='arg arg-input short-string' arg-name='" + this . name + "'value='" + this . value + "'" + ( this . disabled ? " disabled='disabled'" : "" ) + ( this . placeholder ? " placeholder='" + this . placeholder + "'" : "" ) + ">" ; break ; case "toggleString" : for ( d += "<div class='input-group'><div class='input-group-btn'> <button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'" + ( this . disabled ? " disabled='disabled'" : "" ) + ">" + this . toggleValues [ 0 ] + " <span class='caret'></span></button><ul class='dropdown-menu'>" , a = 0 ; a < this . toggleValues . length ; a ++ ) d += "<li><a href='#'>" + this . toggleValues [ a ] + "</a></li>" ; d += "</ul></div><input type='text' class='arg arg-input toggle-string'" + ( this . disabled ? " disabled='disabled'" : "" ) + ( this . placeholder ? " placeholder='" + this . placeholder + "'" : "" ) + "></div>" ; break ; case "number" : d += "<input type='number' id='" + this . id + "'class='arg arg-input' arg-name='" + this . name + "'value='" + this . value + "'" + ( this . disabled ? " disabled='disabled'" : "" ) + ( this . placeholder ? " placeholder='" + this . placeholder + "'" : "" ) + ">" ; break ; case "boolean" : d += "<input type='checkbox' id='" + this . id + "'class='arg' arg-name='" + this . name + "'" + ( this . value ? " checked='checked' " : "" ) + ( this . disabled ? " disabled='disabled'" : "" ) + ">" , this . disableArgs && this . manager . addDynamicListener ( "#" + this . id , "click" , this . toggleDisableArgs , this ) ; break ; case "option" : for ( d += "<select class='arg' id='" + this . id + "'arg-name='" + this . name + "'" + ( this . disabled ? " disabled='disabled'" : "" ) + ">" , a = 0 ; a < this . value . length ; a ++ ) d += ( b = this . value [ a ] . match ( /\[([a-z0-9 -()^]+)\]/i ) ) ? "<optgroup label='" + b [ 1 ] + "'>" : ( b = this . value [ a ] . match ( /\[\/([a-z0-9 -()^]+)\]/i ) ) ? "</optgroup>" : "<option>" + this . value [ a ] + "</option>" ; d += "</select>" ; break ; case "populateOption" : for ( d += "<select class='arg' id='" + this . id + "'arg-name='" + this . name + "'" + ( this . disabled ? " disabled='disabled'" : "" ) + ">" , a = 0 ; a < this . va
2017-02-10 16:39:32 +00:00
} , onEnd : this . opSortEnd . bind ( this ) } ) } , RecipeWaiter . prototype . opSortEnd = function ( a ) { return this . removeIntent ? void ( "rec-list" === a . item . parentNode . id && a . item . remove ( ) ) : ( $ ( a . clone ) . popover ( ) , $ ( a . clone ) . children ( "[data-toggle=popover]" ) . popover ( ) , void ( "rec-list" === a . item . parentNode . id && ( this . buildRecipeOperation ( a . item ) , a . item . dispatchEvent ( this . manager . operationadd ) ) ) ) } , RecipeWaiter . prototype . favDragover = function ( a ) { return "move" === a . dataTransfer . effectAllowed && ( a . stopPropagation ( ) , a . preventDefault ( ) , void ( a . target . className && a . target . className . indexOf ( "category-title" ) > - 1 ? a . target . classList . add ( "favourites-hover" ) : a . target . parentNode . className && a . target . parentNode . className . indexOf ( "category-title" ) > - 1 ? a . target . parentNode . classList . add ( "favourites-hover" ) : a . target . parentNode . parentNode . className && a . target . parentNode . parentNode . className . indexOf ( "category-title" ) > - 1 && a . target . parentNode . parentNode . classList . add ( "favourites-hover" ) ) ) } , RecipeWaiter . prototype . favDragleave = function ( a ) { a . stopPropagation ( ) , a . preventDefault ( ) , document . querySelector ( "#categories a" ) . classList . remove ( "favourites-hover" ) } , RecipeWaiter . prototype . favDrop = function ( a ) { a . stopPropagation ( ) , a . preventDefault ( ) , a . target . classList . remove ( "favourites-hover" ) ; var b = a . dataTransfer . getData ( "Text" ) ; this . app . addFavourite ( b ) } , RecipeWaiter . prototype . ingChange = function ( ) { window . dispatchEvent ( this . manager . statechange ) } , RecipeWaiter . prototype . disableClick = function ( a ) { var b = a . target ; "false" === b . getAttribute ( "disabled" ) ? ( b . setAttribute ( "disabled" , "true" ) , b . classList . add ( "disable-icon-selected" ) , b . parentNode . parentNode . classList . add ( "disabled" ) ) : ( b . setAttribute ( "disabled" , "false" ) , b . classList . remove ( "disable-icon-selected" ) , b . parentNode . parentNode . classList . remove ( "disabled" ) ) , this . app . progress = 0 , window . dispatchEvent ( this . manager . statechange ) } , RecipeWaiter . prototype . breakpointClick = function ( a ) { var b = a . target ; "false" === b . getAttribute ( "break" ) ? ( b . setAttribute ( "break" , "true" ) , b . classList . add ( "breakpoint-selected" ) ) : ( b . setAttribute ( "break" , "false" ) , b . classList . remove ( "breakpoint-selected" ) ) , window . dispatchEvent ( this . manager . statechange ) } , RecipeWaiter . prototype . operationDblclick = function ( a ) { a . target . remove ( ) , window . dispatchEvent ( this . manager . statechange ) } , RecipeWaiter . prototype . operationChildDblclick = function ( a ) { a . target . parentNode . remove ( ) , window . dispatchEvent ( this . manager . statechange ) } , RecipeWaiter . prototype . getConfig = function ( ) { for ( var a , b , c , d , e , f = [ ] , g = document . querySelectorAll ( "#rec-list li.operation" ) , h = 0 ; h < g . length ; h ++ ) { a = [ ] , c = g [ h ] . querySelector ( ".disable-icon" ) , d = g [ h ] . querySelector ( ".breakpoint" ) , b = g [ h ] . querySelectorAll ( ".arg" ) ; for ( var i = 0 ; i < b . length ; i ++ ) "checkbox" === b [ i ] . getAttribute ( "type" ) ? a [ i ] = b [ i ] . checked : b [ i ] . classList . contains ( "toggle-string" ) ? a [ i ] = { option : b [ i ] . previousSibling . children [ 0 ] . textContent . slice ( 0 , - 1 ) , string : b [ i ] . value } : a [ i ] = b [ i ] . value ; e = { op : g [ h ] . querySelector ( ".arg-title" ) . textContent , args : a } , c && "true" === c . getAttribute ( "disabled" ) && ( e . disabled = ! 0 ) , d && "true" === d . getAttribute ( "break" ) && ( e . breakpoint = ! 0 ) , f . push ( e ) } return f } , RecipeWaiter . prototype . updateBreakpointIndicator = function ( a ) { for ( var b = document . querySelectorAll ( "#rec-list li.operation" ) , c = 0 ; c < b . length ; c ++ ) c === a ? b [ c ] . classList . add ( "break" ) : b [ c ] . classList . remove ( "break" ) } , RecipeWaiter . prototype . buildRecipeOperation = function ( a ) { var b = a . textContent , c = new HTMLOperation ( b , this . app . operations [ b ] , this . app , this . manager ) ; a . innerHTML = c . toFullHtml ( ) , this . app . operations [ b ] . flowControl && a . classList . add ( "flow-control-op" ) , c . manualBake && this . app . autoBake _ && ( this . manager . controls . setAutoBake ( ! 1 ) , this . app . alert ( "Auto-Bake is disabled by default when using this operation." , "info" , 5e3 ) ) } , RecipeWaiter . prototype . addOperation = function ( a ) { var b = document . createElement ( "li" ) ; return b . classList . add ( "operation" ) , b . innerHTML = a , this . buildRecipeOperation ( b ) , document . getElementById ( "rec-list" ) . appendChild ( b ) , b . dispatchEvent ( this . manager . operationadd ) , b } , RecipeWaiter . prototype . clearRecipe = function ( ) { for ( var a = document . getElementById ( "rec-list" ) ; a . firstChild ; ) a . removeChild ( a . firstChild ) ; a . dispatchEvent ( this . manager . operationremove ) } , R