From 734626f9c499ef6731e8d50cde4d7d1720203432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E7=AC=99=E6=AD=8C?= <2277317060@qq.com> Date: Tue, 10 Dec 2024 15:46:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/public/demo/AES.js | 621 + ruoyi-ui/public/demo/cryptico.min.js | 106 + ruoyi-ui/public/demo/crypto-3.1.2.min.js | 35 + ruoyi-ui/public/demo/demo.css | 405 + ruoyi-ui/public/demo/demo.html | 32 + ruoyi-ui/public/demo/demo.js | 2107 +++ ruoyi-ui/public/demo/jquery-1.7.1.min.js | 4 + ruoyi-ui/public/demo/jsPlugin-1.2.0.min.js | 14648 ++++++++++++++++ .../public/demo/playctrl/AudioRenderer.js | 223 + ruoyi-ui/public/demo/playctrl/DecodeWorker.js | 521 + ruoyi-ui/public/demo/playctrl/Decoder.js | 4 + ruoyi-ui/public/demo/playctrl/Decoder.js.mem | Bin 0 -> 180708 bytes ruoyi-ui/public/demo/playctrl/Decoder.wasm | Bin 0 -> 894817 bytes ruoyi-ui/public/demo/playctrl/SuperRender.js | 1 + .../public/demo/playctrl/SuperRender_10.js | 337 + .../public/demo/playctrl/SuperRender_20.js | 1 + ruoyi-ui/public/demo/test.js | 188 + ruoyi-ui/public/demo/webVideoCtrl.js | 4 + ruoyi-ui/public/index.html | 6 + ruoyi-ui/src/views/board/index.vue | 55 +- ruoyi-ui/src/views/board/monitor.vue | 213 + 21 files changed, 19491 insertions(+), 20 deletions(-) create mode 100644 ruoyi-ui/public/demo/AES.js create mode 100644 ruoyi-ui/public/demo/cryptico.min.js create mode 100644 ruoyi-ui/public/demo/crypto-3.1.2.min.js create mode 100644 ruoyi-ui/public/demo/demo.css create mode 100644 ruoyi-ui/public/demo/demo.html create mode 100644 ruoyi-ui/public/demo/demo.js create mode 100644 ruoyi-ui/public/demo/jquery-1.7.1.min.js create mode 100644 ruoyi-ui/public/demo/jsPlugin-1.2.0.min.js create mode 100644 ruoyi-ui/public/demo/playctrl/AudioRenderer.js create mode 100644 ruoyi-ui/public/demo/playctrl/DecodeWorker.js create mode 100644 ruoyi-ui/public/demo/playctrl/Decoder.js create mode 100644 ruoyi-ui/public/demo/playctrl/Decoder.js.mem create mode 100644 ruoyi-ui/public/demo/playctrl/Decoder.wasm create mode 100644 ruoyi-ui/public/demo/playctrl/SuperRender.js create mode 100644 ruoyi-ui/public/demo/playctrl/SuperRender_10.js create mode 100644 ruoyi-ui/public/demo/playctrl/SuperRender_20.js create mode 100644 ruoyi-ui/public/demo/test.js create mode 100644 ruoyi-ui/public/demo/webVideoCtrl.js create mode 100644 ruoyi-ui/src/views/board/monitor.vue diff --git a/ruoyi-ui/public/demo/AES.js b/ruoyi-ui/public/demo/AES.js new file mode 100644 index 0000000..f257d7c --- /dev/null +++ b/ruoyi-ui/public/demo/AES.js @@ -0,0 +1,621 @@ +(function() { + var Nr = 10; + // convert two-dimensional indicies to one-dim array indices + var I00 = 0; + var I01 = 1; + var I02 = 2; + var I03 = 3; + var I10 = 4; + var I11 = 5; + var I12 = 6; + var I13 = 7; + var I20 = 8; + var I21 = 9; + var I22 = 10; + var I23 = 11; + var I30 = 12; + var I31 = 13; + var I32 = 14; + var I33 = 15; + + // S-Box substitution table + var S_enc = new Array( + 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, + 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, + 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, + 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, + 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, + 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, + 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, + 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, + 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, + 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, + 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, + 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, + 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, + 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, + 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, + 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, + 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, + 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, + 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, + 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, + 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, + 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, + 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, + 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, + 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, + 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, + 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, + 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, + 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, + 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, + 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, + 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16); + + // inverse S-Box for decryptions + var S_dec = new Array( + 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, + 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, + 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, + 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, + 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, + 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, + 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, + 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, + 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, + 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, + 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, + 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, + 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, + 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, + 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, + 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, + 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, + 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, + 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, + 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, + 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, + 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, + 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, + 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, + 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, + 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, + 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, + 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, + 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, + 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, + 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, + 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d); + + function cvt_hex8 (val) { + var vh = (val>>>4)&0x0f; + return vh.toString(16) + (val&0x0f).toString(16); + } + function cvt_byte (str) { + // get the first hex digit + var val1 = str.charCodeAt(0); + // do some error checking + if (val1 >= 48 && val1 <= 57) { + // have a valid digit 0-9 + val1 -= 48; + } else if (val1 >= 65 && val1 <= 70) { + // have a valid digit A-F + val1 -= 55; + } else if (val1 >= 97 && val1 <= 102) { + // have a valid digit A-F + val1 -= 87; + } else { + // not 0-9 or A-F, complain + console.log( str.charAt(1)+" is not a valid hex digit" ); + return -1; + } + // get the second hex digit + var val2 = str.charCodeAt(1); + // do some error checking + if ( val2 >= 48 && val2 <= 57 ) { + // have a valid digit 0-9 + val2 -= 48; + } else if ( val2 >= 65 && val2 <= 70 ) { + // have a valid digit A-F + val2 -= 55; + } else if ( val2 >= 97 && val2 <= 102 ) { + // have a valid digit A-F + val2 -= 87; + } else { + // not 0-9 or A-F, complain + console.log( str.charAt(2)+" is not a valid hex digit" ); + return -1; + } + // all is ok, return the value + return val1*16 + val2; + } + + // conversion function for non-constant subscripts + // assume subscript range 0..3 + function I(x,y) { + return (x*4) + y; + } + + // remove spaces from input + function remove_spaces(instr) { + var i; + var outstr = ""; + for(i=0; i 16) { + console.log("is too long, using the first 16 ASCII characters" ); + } + // have ASCII data + // 16 characters? + if (str.length >= 16) { + // 16 or more characters + for(i=0; i<16; i++) { + dbyte[i] = str.charCodeAt(i); + } + } else { + // less than 16 characters - fill with NULLs + for(i=0; i 0) { + if((a&1) != 0) + res = res ^ b; // "add" to the result + a >>>= 1; // shift a to get next higher-order bit + b <<= 1; // shift multiplier also + } + // now reduce it modulo x**8 + x**4 + x**3 + x + 1 + var hbit = 0x10000; // bit to test if we need to take action + var modulus = 0x11b00; // modulus - XOR by this to change value + while(hbit >= 0x100) { + if ((res & hbit) != 0) { + res ^= modulus; // XOR with the modulus + } + // prepare for the next loop + hbit >>= 1; + modulus >>= 1; + } + return res; + } + + // apply the S-box substitution to the key expansion + function SubWord(word_ary) { + var i; + for(i=0; i<16; i++) { + word_ary[i] = S_enc[word_ary[i]]; + } + return word_ary; + } + + // rotate the bytes in a word + function RotWord(word_ary) { + return new Array(word_ary[1], word_ary[2], word_ary[3], word_ary[0]); + } + + // calculate the first item Rcon[i] = { x^(i-1), 0, 0, 0 } + // note we only return the first item + function Rcon(exp) { + var val = 2; + var result = 1; + + // remember to calculate x^(exp-1) + exp--; + + // process the exponent using normal shift and multiply + while ( exp > 0 ) + { + if ( (exp & 1) != 0 ) + result = aes_mul( result, val ); + + // square the value + val = aes_mul( val, val ); + + // move to the next bit + exp >>= 1; + } + + return result; + } + // round key generation + // return a byte array with the expanded key information + function key_expand( key ) + { + var temp = new Array(4); + var i, j; + var w = new Array(4*(Nr+1)); + + // copy initial key stuff + for( i=0; i<16; i++ ) + { + w[i] = key[i]; + } + + // generate rest of key schedule using 32-bit words + i = 4; + while ( i < 4*(Nr+1)) // blocksize * ( rounds + 1 ) + { + // copy word W[i-1] to temp + for( j=0; j<4; j++ ) + temp[j] = w[(i-1)*4+j]; + + if ( i % 4 == 0) + { + // temp = SubWord(RotWord(temp)) ^ Rcon[i/4]; + temp = RotWord( temp ); + temp = SubWord( temp ); + temp[0] ^= Rcon( i>>>2 ); + } + + // word = word ^ temp + for( j=0; j<4; j++ ) + w[i*4+j] = w[(i-4)*4+j] ^ temp[j]; + + i++; + } + + return w; + } + + // do S-Box substitution + function SubBytes(state, Sbox) + { + var i; + + for( i=0; i<16; i++ ) + state[i] = Sbox[ state[i] ]; + + return state; + } + + // shift each row as appropriate + function ShiftRows(state) + { + var t0, t1, t2, t3; + + // top row (row 0) isn't shifted + + // next row (row 1) rotated left 1 place + t0 = state[I10]; + t1 = state[I11]; + t2 = state[I12]; + t3 = state[I13]; + state[I10] = t1; + state[I11] = t2; + state[I12] = t3; + state[I13] = t0; + + // next row (row 2) rotated left 2 places + t0 = state[I20]; + t1 = state[I21]; + t2 = state[I22]; + t3 = state[I23]; + state[I20] = t2; + state[I21] = t3; + state[I22] = t0; + state[I23] = t1; + + // bottom row (row 3) rotated left 3 places + t0 = state[I30]; + t1 = state[I31]; + t2 = state[I32]; + t3 = state[I33]; + state[I30] = t3; + state[I31] = t0; + state[I32] = t1; + state[I33] = t2; + + return state; + } + + // inverset shift each row as appropriate + function InvShiftRows(state) + { + var t0, t1, t2, t3; + + // top row (row 0) isn't shifted + + // next row (row 1) rotated left 1 place + t0 = state[I10]; + t1 = state[I11]; + t2 = state[I12]; + t3 = state[I13]; + state[I10] = t3; + state[I11] = t0; + state[I12] = t1; + state[I13] = t2; + + // next row (row 2) rotated left 2 places + t0 = state[I20]; + t1 = state[I21]; + t2 = state[I22]; + t3 = state[I23]; + state[I20] = t2; + state[I21] = t3; + state[I22] = t0; + state[I23] = t1; + + // bottom row (row 3) rotated left 3 places + t0 = state[I30]; + t1 = state[I31]; + t2 = state[I32]; + t3 = state[I33]; + state[I30] = t1; + state[I31] = t2; + state[I32] = t3; + state[I33] = t0; + + return state; + } + + // process column info + function MixColumns(state) + { + var col; + var c0, c1, c2, c3; + + for( col=0; col<4; col++ ) + { + c0 = state[I(0,col)]; + c1 = state[I(1,col)]; + c2 = state[I(2,col)]; + c3 = state[I(3,col)]; + + // do mixing, and put back into array + state[I(0,col)] = aes_mul(2,c0) ^ aes_mul(3,c1) ^ c2 ^ c3; + state[I(1,col)] = c0 ^ aes_mul(2,c1) ^ aes_mul(3,c2) ^ c3; + state[I(2,col)] = c0 ^ c1 ^ aes_mul(2,c2) ^ aes_mul(3,c3); + state[I(3,col)] = aes_mul(3,c0) ^ c1 ^ c2 ^ aes_mul(2,c3); + } + + return state; + } + + // inverse process column info + function InvMixColumns(state) + { + var col; + var c0, c1, c2, c3; + + for( col=0; col<4; col++ ) + { + c0 = state[I(0,col)]; + c1 = state[I(1,col)]; + c2 = state[I(2,col)]; + c3 = state[I(3,col)]; + + // do inverse mixing, and put back into array + state[I(0,col)] = aes_mul(0x0e,c0) ^ aes_mul(0x0b,c1) + ^ aes_mul(0x0d,c2) ^ aes_mul(0x09,c3); + state[I(1,col)] = aes_mul(0x09,c0) ^ aes_mul(0x0e,c1) + ^ aes_mul(0x0b,c2) ^ aes_mul(0x0d,c3); + state[I(2,col)] = aes_mul(0x0d,c0) ^ aes_mul(0x09,c1) + ^ aes_mul(0x0e,c2) ^ aes_mul(0x0b,c3); + state[I(3,col)] = aes_mul(0x0b,c0) ^ aes_mul(0x0d,c1) + ^ aes_mul(0x09,c2) ^ aes_mul(0x0e,c3); + } + + return state; + } + + // insert subkey information + function AddRoundKey( state, w, base ) + { + var col; + + for( col=0; col<4; col++ ) + { + state[I(0,col)] ^= w[base+col*4]; + state[I(1,col)] ^= w[base+col*4+1]; + state[I(2,col)] ^= w[base+col*4+2]; + state[I(3,col)] ^= w[base+col*4+3]; + } + + return state; + } + + // return a transposed array + function transpose( msg ) + { + var row, col; + var state = new Array( 16 ); + + for( row=0; row<4; row++ ) + for( col=0; col<4; col++ ) + state[I(row,col)] = msg[I(col,row)]; + + return state; + } + + // final AES state + var AES_output = new Array(16); + + // format AES output + // -- uses the global array DES_output + function format_AES_output(bASCII) + { + var i; + var bits; + var str=""; + + // what type of data do we have to work with? + if (bASCII) + { + // convert each set of bits back to ASCII + for( i=0; i<16; i++ ) + str += String.fromCharCode( AES_output[i] ); + } + else + { + // output hexdecimal data (insert spaces) + str = cvt_hex8( AES_output[0] ); + for( i=1; i<16; i++ ) + { + str += "" + cvt_hex8( AES_output[i] ); + } + } + return str; + } + + // do encrytion + function aes_encrypt(str, key, bASCII) + { + //console.log(" aes_encrypt:\tstr = " + str + "\tkey = " + key + "\t bASCII = " + bASCII); + var w = new Array( 4*(Nr+1) ); // subkey information + var state = new Array( 16 ); // working state + var round; + + //accumulated_output_info = ""; + + // get the message from the user + // also check if it is ASCII or hex + var msg = get_value(str, bASCII); + + // problems?? + if ( msg[0] < 0 ) + { + return; + } + + // get the key from the user + var key = get_value(key, false); + // problems?? + if ( key[0] < 0 ) + { + return; + } + + // expand the key + w = key_expand( key ); + + // initial state = message in columns (transposed from what we input) + state = transpose( msg ); + + // display the round key - Transpose due to the way it is stored/used + state = AddRoundKey(state, w, 0); + + for( round=1; round=1; round-- ) + { + state = InvShiftRows(state); + state = SubBytes(state, S_dec); + // display the round key - Transpose due to the way it is stored/used + // note here the spec uses 32-bit words, we are using bytes, so an extra *4 + state = AddRoundKey(state, w, round*4*4); + state = InvMixColumns(state); + } + + InvShiftRows(state); + SubBytes(state, S_dec); + AddRoundKey(state, w, 0); + + // process output + AES_output = transpose( state ); + var szOutput = format_AES_output(!bASCII); + return szOutput; + } + window.aes_encrypt = aes_encrypt; + window.aes_decrypt = aes_decrypt; + window.console = window.console || { + log: function() {} + }; +}()); \ No newline at end of file diff --git a/ruoyi-ui/public/demo/cryptico.min.js b/ruoyi-ui/public/demo/cryptico.min.js new file mode 100644 index 0000000..a1d93ee --- /dev/null +++ b/ruoyi-ui/public/demo/cryptico.min.js @@ -0,0 +1,106 @@ +var dbits,canary=244837814094590,j_lm=(canary&16777215)==15715070;function BigInteger(a,b,c){a!=null&&("number"==typeof a?this.fromNumber(a,b,c):b==null&&"string"!=typeof a?this.fromString(a,256):this.fromString(a,b))}function nbi(){return new BigInteger(null)}function am1(a,b,c,d,e,g){for(;--g>=0;){var h=b*this[a++]+c[d]+e,e=Math.floor(h/67108864);c[d++]=h&67108863}return e} +function am2(a,b,c,d,e,g){var h=b&32767;for(b>>=15;--g>=0;){var f=this[a]&32767,o=this[a++]>>15,p=b*f+o*h,f=h*f+((p&32767)<<15)+c[d]+(e&1073741823),e=(f>>>30)+(p>>>15)+b*o+(e>>>30);c[d++]=f&1073741823}return e}function am3(a,b,c,d,e,g){var h=b&16383;for(b>>=14;--g>=0;){var f=this[a]&16383,o=this[a++]>>14,p=b*f+o*h,f=h*f+((p&16383)<<14)+c[d]+e,e=(f>>28)+(p>>14)+b*o;c[d++]=f&268435455}return e} +j_lm&&navigator.appName=="Microsoft Internet Explorer"?(BigInteger.prototype.am=am2,dbits=30):j_lm&&navigator.appName!="Netscape"?(BigInteger.prototype.am=am1,dbits=26):(BigInteger.prototype.am=am3,dbits=28);BigInteger.prototype.DB=dbits;BigInteger.prototype.DM=(1<=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+DV:this.t=0} +function nbv(a){var b=nbi();b.fromInt(a);return b} +function bnpFromString(a,b){var c;if(b==16)c=4;else if(b==8)c=3;else if(b==256)c=8;else if(b==2)c=1;else if(b==32)c=5;else if(b==4)c=2;else{this.fromRadix(a,b);return}this.s=this.t=0;for(var d=a.length,e=!1,g=0;--d>=0;){var h=c==8?a[d]&255:intAt(a,d);h<0?a.charAt(d)=="-"&&(e=!0):(e=!1,g==0?this[this.t++]=h:g+c>this.DB?(this[this.t-1]|=(h&(1<>this.DB-g):this[this.t-1]|=h<=this.DB&&(g-=this.DB))}if(c==8&&(a[0]&128)!=0)this.s=-1,g>0&&(this[this.t-1]|=(1<< +this.DB-g)-1<0&&this[this.t-1]==a;)--this.t} +function bnToString(a){if(this.s<0)return"-"+this.negate().toString(a);if(a==16)a=4;else if(a==8)a=3;else if(a==2)a=1;else if(a==32)a=5;else if(a==64)a=6;else if(a==4)a=2;else return this.toRadix(a);var b=(1<0){if(h>h)>0)d=!0,e=int2char(c);for(;g>=0;)h>(h+=this.DB-a)):(c=this[g]>>(h-=a)&b,h<=0&&(h+=this.DB,--g)),c>0&&(d=!0),d&&(e+=int2char(c))}return d?e:"0"} +function bnNegate(){var a=nbi();BigInteger.ZERO.subTo(this,a);return a}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(a){var b=this.s-a.s;if(b!=0)return b;var c=this.t,b=c-a.t;if(b!=0)return b;for(;--c>=0;)if((b=this[c]-a[c])!=0)return b;return 0}function nbits(a){var b=1,c;if((c=a>>>16)!=0)a=c,b+=16;if((c=a>>8)!=0)a=c,b+=8;if((c=a>>4)!=0)a=c,b+=4;if((c=a>>2)!=0)a=c,b+=2;a>>1!=0&&(b+=1);return b} +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=0;--f)b[f+g+1]=this[f]>>d|h,h=(this[f]&e)<=0;--f)b[f]=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)b.t=0;else{var d=a%this.DB,e=this.DB-d,g=(1<>d;for(var h=c+1;h>d;d>0&&(b[this.t-c-1]|=(this.s&g)<>=this.DB;if(a.t>=this.DB;d+=this.s}else{for(d+=this.s;c>=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=0;)a[c]=0;for(c=0;c=b.DV)a[c+b.t]-=b.DV,a[c+b.t+1]=1}a.t>0&&(a[a.t-1]+=b.am(c,b[c],a,2*c,0,1));a.s=0;a.clamp()} +function bnpDivRemTo(a,b,c){var d=a.abs();if(!(d.t<=0)){var e=this.abs();if(e.t0?(d.lShiftTo(f,g),e.lShiftTo(f,c)):(d.copyTo(g),e.copyTo(c));d=g.t;e=g[d-1];if(e!=0){var o=e*(1<1?g[d-2]>>this.F2:0),p=this.FV/o,o=(1<=0&&(c[c.t++]=1,c.subTo(j,c));BigInteger.ONE.dlShiftTo(d, +j);for(j.subTo(g,g);g.t=0;){var l=c[--n]==e?this.DM:Math.floor(c[n]*p+(c[n-1]+q)*o);if((c[n]+=g.am(0,l,c,k,0,d))0&&c.rShiftTo(f,c);h<0&&BigInteger.ZERO.subTo(c,c)}}}}function bnMod(a){var b=nbi();this.abs().divRemTo(a,null,b);this.s<0&&b.compareTo(BigInteger.ZERO)>0&&a.subTo(b,b);return b}function Classic(a){this.m=a} +function cConvert(a){return a.s<0||a.compareTo(this.m)>=0?a.mod(this.m):a}function cRevert(a){return a}function cReduce(a){a.divRemTo(this.m,null,a)}function cMulTo(a,b,c){a.multiplyTo(b,c);this.reduce(c)}function cSqrTo(a,b){a.squareTo(b);this.reduce(b)}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo; +function bnpInvDigit(){if(this.t<1)return 0;var a=this[0];if((a&1)==0)return 0;var b=a&3,b=b*(2-(a&15)*b)&15,b=b*(2-(a&255)*b)&255,b=b*(2-((a&65535)*b&65535))&65535,b=b*(2-a*b%this.DV)%this.DV;return b>0?this.DV-b:-b}function Montgomery(a){this.m=a;this.mp=a.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<0&&this.m.subTo(b,b);return b}function montRevert(a){var b=nbi();a.copyTo(b);this.reduce(b);return b} +function montReduce(a){for(;a.t<=this.mt2;)a[a.t++]=0;for(var b=0;b>15)*this.mpl&this.um)<<15)&a.DM,c=b+this.m.t;for(a[c]+=this.m.am(0,d,a,b,0,this.m.t);a[c]>=a.DV;)a[c]-=a.DV,a[++c]++}a.clamp();a.drShiftTo(this.m.t,a);a.compareTo(this.m)>=0&&a.subTo(this.m,a)}function montSqrTo(a,b){a.squareTo(b);this.reduce(b)}function montMulTo(a,b,c){a.multiplyTo(b,c);this.reduce(c)}Montgomery.prototype.convert=montConvert; +Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return(this.t>0?this[0]&1:this.s)==0}function bnpExp(a,b){if(a>4294967295||a<1)return BigInteger.ONE;var c=nbi(),d=nbi(),e=b.convert(this),g=nbits(a)-1;for(e.copyTo(c);--g>=0;)if(b.sqrTo(c,d),(a&1<0)b.mulTo(d,e,c);else var h=c,c=d,d=h;return b.revert(c)} +function bnModPowInt(a,b){var c;c=a<256||b.isEven()?new Classic(b):new Montgomery(b);return this.exp(a,c)}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);function bnClone(){var a=nbi();this.copyTo(a);return a}function bnIntValue(){if(this.s<0)if(this.t==1)return this[0]-this.DV;else{if(this.t==0)return-1}else if(this.t==1)return this[0];else if(this.t==0)return 0;return(this[1]&(1<<32-this.DB)-1)<>24}function bnShortValue(){return this.t==0?this.s:this[0]<<16>>16} +function bnpChunkSize(a){return Math.floor(Math.LN2*this.DB/Math.log(a))}function bnSigNum(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function bnpToRadix(a){a==null&&(a=10);if(this.signum()==0||a<2||a>36)return"0";var b=this.chunkSize(a),b=Math.pow(a,b),c=nbv(b),d=nbi(),e=nbi(),g="";for(this.divRemTo(c,d,e);d.signum()>0;)g=(b+e.intValue()).toString(a).substr(1)+g,d.divRemTo(c,d,e);return e.intValue().toString(a)+g} +function bnpFromRadix(a,b){this.fromInt(0);b==null&&(b=10);for(var c=this.chunkSize(b),d=Math.pow(b,c),e=!1,g=0,h=0,f=0;f=c&&(this.dMultiply(d),this.dAddOffset(h,0),h=g=0))}g>0&&(this.dMultiply(Math.pow(b,g)),this.dAddOffset(h,0));e&&BigInteger.ZERO.subTo(this,this)} +function bnpFromNumber(a,b,c){if("number"==typeof b)if(a<2)this.fromInt(1);else{this.fromNumber(a,c);this.testBit(a-1)||this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);for(this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(b);)this.dAddOffset(2,0),this.bitLength()>a&&this.subTo(BigInteger.ONE.shiftLeft(a-1),this)}else{var c=[],d=a&7;c.length=(a>>3)+1;b.nextBytes(c);d>0?c[0]&=(1<0){if(c>c)!=(this.s&this.DM)>>c)b[e++]=d|this.s<=0;)if(c<8?(d=(this[a]&(1<>(c+=this.DB-8)):(d=this[a]>>(c-=8)&255,c<=0&&(c+=this.DB,--a)),(d&128)!=0&&(d|=-256),e==0&&(this.s&128)!=(d&128)&&++e,e>0||d!=this.s)b[e++]=d}return b}function bnEquals(a){return this.compareTo(a)==0}function bnMin(a){return this.compareTo(a)<0?this:a} +function bnMax(a){return this.compareTo(a)>0?this:a}function bnpBitwiseTo(a,b,c){var d,e,g=Math.min(a.t,this.t);for(d=0;d>=16,b+=16);(a&255)==0&&(a>>=8,b+=8);(a&15)==0&&(a>>=4,b+=4);(a&3)==0&&(a>>=2,b+=2);(a&1)==0&&++b;return b}function bnGetLowestSetBit(){for(var a=0;a=this.t?this.s!=0:(this[b]&1<>=this.DB;if(a.t>=this.DB;d+=this.s}else{for(d+=this.s;c>=this.DB;d+=a.s}b.s=d<0?-1:0;d>0?b[c++]=d:d<-1&&(b[c++]=this.DV+d);b.t=c;b.clamp()}function bnAdd(a){var b=nbi();this.addTo(a,b);return b}function bnSubtract(a){var b=nbi();this.subTo(a,b);return b} +function bnMultiply(a){var b=nbi();this.multiplyTo(a,b);return b}function bnSquare(){var a=nbi();this.squareTo(a);return a}function bnDivide(a){var b=nbi();this.divRemTo(a,b,null);return b}function bnRemainder(a){var b=nbi();this.divRemTo(a,null,b);return b}function bnDivideAndRemainder(a){var b=nbi(),c=nbi();this.divRemTo(a,b,c);return[b,c]}function bnpDMultiply(a){this[this.t]=this.am(0,a-1,this,0,0,this.t);++this.t;this.clamp()} +function bnpDAddOffset(a,b){if(a!=0){for(;this.t<=b;)this[this.t++]=0;for(this[b]+=a;this[b]>=this.DV;)this[b]-=this.DV,++b>=this.t&&(this[this.t++]=0),++this[b]}}function NullExp(){}function nNop(a){return a}function nMulTo(a,b,c){a.multiplyTo(b,c)}function nSqrTo(a,b){a.squareTo(b)}NullExp.prototype.convert=nNop;NullExp.prototype.revert=nNop;NullExp.prototype.mulTo=nMulTo;NullExp.prototype.sqrTo=nSqrTo;function bnPow(a){return this.exp(a,new NullExp)} +function bnpMultiplyLowerTo(a,b,c){var d=Math.min(this.t+a.t,b);c.s=0;for(c.t=d;d>0;)c[--d]=0;var e;for(e=c.t-this.t;d=0;)c[d]=0;for(d=Math.max(b-this.t,0);d2*this.m.t)return a.mod(this.m);else if(a.compareTo(this.m)<0)return a;else{var b=nbi();a.copyTo(b);this.reduce(b);return b}}function barrettRevert(a){return a} +function barrettReduce(a){a.drShiftTo(this.m.t-1,this.r2);if(a.t>this.m.t+1)a.t=this.m.t+1,a.clamp();this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);for(this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);a.compareTo(this.r2)<0;)a.dAddOffset(1,this.m.t+1);for(a.subTo(this.r2,a);a.compareTo(this.m)>=0;)a.subTo(this.m,a)}function barrettSqrTo(a,b){a.squareTo(b);this.reduce(b)}function barrettMulTo(a,b,c){a.multiplyTo(b,c);this.reduce(c)}Barrett.prototype.convert=barrettConvert; +Barrett.prototype.revert=barrettRevert;Barrett.prototype.reduce=barrettReduce;Barrett.prototype.mulTo=barrettMulTo;Barrett.prototype.sqrTo=barrettSqrTo; +function bnModPow(a,b){var c=a.bitLength(),d,e=nbv(1),g;if(c<=0)return e;else d=c<18?1:c<48?3:c<144?4:c<768?5:6;g=c<8?new Classic(b):b.isEven()?new Barrett(b):new Montgomery(b);var h=[],f=3,o=d-1,p=(1<1){c=nbi();for(g.sqrTo(h[1],c);f<=p;)h[f]=nbi(),g.mulTo(c,h[f-2],h[f]),f+=2}for(var q=a.t-1,n,k=!0,j=nbi(),c=nbits(a[q])-1;q>=0;){c>=o?n=a[q]>>c-o&p:(n=(a[q]&(1<0&&(n|=a[q-1]>>this.DB+c-o));for(f=d;(n&1)==0;)n>>=1,--f;if((c-=f)<0)c+=this.DB,--q;if(k)h[n].copyTo(e), +k=!1;else{for(;f>1;)g.sqrTo(e,j),g.sqrTo(j,e),f-=2;f>0?g.sqrTo(e,j):(f=e,e=j,j=f);g.mulTo(j,h[n],e)}for(;q>=0&&(a[q]&1<0&&(b.rShiftTo(d,b),a.rShiftTo(d,a));for(;b.signum()>0;)(c=b.getLowestSetBit())>0&&b.rShiftTo(c,b),(c=a.getLowestSetBit())>0&&a.rShiftTo(c,a),b.compareTo(a)>=0?(b.subTo(a,b),b.rShiftTo(1,b)):(a.subTo(b,a),a.rShiftTo(1,a));d>0&&a.lShiftTo(d,a);return a} +function bnpModInt(a){if(a<=0)return 0;var b=this.DV%a,c=this.s<0?a-1:0;if(this.t>0)if(b==0)c=this[0]%a;else for(var d=this.t-1;d>=0;--d)c=(b*c+this[d])%a;return c} +function bnModInverse(a){var b=a.isEven();if(this.isEven()&&b||a.signum()==0)return BigInteger.ZERO;for(var c=a.clone(),d=this.clone(),e=nbv(1),g=nbv(0),h=nbv(0),f=nbv(1);c.signum()!=0;){for(;c.isEven();){c.rShiftTo(1,c);if(b){if(!e.isEven()||!g.isEven())e.addTo(this,e),g.subTo(a,g);e.rShiftTo(1,e)}else g.isEven()||g.subTo(a,g);g.rShiftTo(1,g)}for(;d.isEven();){d.rShiftTo(1,d);if(b){if(!h.isEven()||!f.isEven())h.addTo(this,h),f.subTo(a,f);h.rShiftTo(1,h)}else f.isEven()||f.subTo(a,f);f.rShiftTo(1, +f)}c.compareTo(d)>=0?(c.subTo(d,c),b&&e.subTo(h,e),g.subTo(f,g)):(d.subTo(c,d),b&&h.subTo(e,h),f.subTo(g,f))}if(d.compareTo(BigInteger.ONE)!=0)return BigInteger.ZERO;if(f.compareTo(a)>=0)return f.subtract(a);if(f.signum()<0)f.addTo(a,f);else return f;return f.signum()<0?f.add(a):f} +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=67108864/lowprimes[lowprimes.length-1]; +function bnIsProbablePrime(a){var b,c=this.abs();if(c.t==1&&c[0]<=lowprimes[lowprimes.length-1]){for(b=0;b>1;if(a>lowprimes.length)a=lowprimes.length;for(var e=nbi(),g=0;g=g;)a/=2,b/=2,f>>>=1;return(a+f)/b};return q};h=b.pow(c,d);e=b.pow(2, +e);g=e*2;p(b.random(),a)})([],Math,256,6,52);function SeededRandom(){}function SRnextBytes(a){var b;for(b=0;b>8&255;rng_pool[rng_pptr++]^=a>>16&255;rng_pool[rng_pptr++]^=a>>24&255;rng_pptr>=rng_psize&&(rng_pptr-=rng_psize)}function rng_seed_time(){rng_seed_int((new Date).getTime())} +if(rng_pool==null){rng_pool=[];rng_pptr=0;var t;if(navigator.appName=="Netscape"&&navigator.appVersion<"5"&&window.crypto){var z=window.crypto.random(32);for(t=0;t>>8,rng_pool[rng_pptr++]=t&255;rng_pptr=0;rng_seed_time()} +function rng_get_byte(){if(rng_state==null){rng_seed_time();rng_state=prng_newstate();rng_state.init(rng_pool);for(rng_pptr=0;rng_pptr>16)+(b>>16)+(c>>16)<<16|c&65535}function c(a,b){return a>>>b|a<<32-b}a=function(a){for(var a=a.replace(/\r\n/g,"\n"),b="",c=0;c127&&h<2048?b+=String.fromCharCode(h>>6|192):(b+=String.fromCharCode(h>>12|224),b+=String.fromCharCode(h>>6&63|128)),b+=String.fromCharCode(h&63|128))}return b}(a);return function(a){for(var b="",c=0;c> +2]>>(3-c%4)*8+4&15)+"0123456789abcdef".charAt(a[c>>2]>>(3-c%4)*8&15);return b}(function(a,e){var g=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051, +2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],f=Array(64),o,p,q,n,k,j,l,m,s,r,u,w;a[e>>5]|=128<<24-e%32;a[(e+64>>9<<4)+15]=e;for(s=0;s>>10,f[r-7]),c(f[r-15],7)^c(f[r-15],18)^f[r-15]>>>3),f[r-16]),u=b(b(b(b(m,c(k,6)^c(k,11)^c(k,25)),k&j^~k&l),g[r]),f[r]),w=b(c(o,2)^c(o,13)^c(o,22),o&p^o&q^p&q),m=l,l=j,j=k,k=b(n,u),n=q,q=p,p=o,o=b(u,w);h[0]=b(o,h[0]);h[1]=b(p,h[1]);h[2]=b(q,h[2]);h[3]=b(n,h[3]);h[4]=b(k,h[4]);h[5]=b(j,h[5]);h[6]=b(l,h[6]);h[7]=b(m,h[7])}return h}(function(a){for(var b=[],c=0;c>5]|=(a.charCodeAt(c/ +8)&255)<<24-c%32;return b}(a),a.length*8))}var sha256={hex:function(a){return SHA256(a)}}; +function SHA1(a){function b(a,b){return a<>>32-b}function c(a){var b="",c,d;for(c=7;c>=0;c--)d=a>>>c*4&15,b+=d.toString(16);return b}var d,e,g=Array(80),h=1732584193,f=4023233417,o=2562383102,p=271733878,q=3285377520,n,k,j,l,m,a=function(a){for(var a=a.replace(/\r\n/g,"\n"),b="",c=0;c127&&d<2048?b+=String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d& +63|128))}return b}(a);n=a.length;var s=[];for(d=0;d>>29);s.push(n<<3&4294967295);for(a=0;a>>32-g,c)}function d(a,c,d,e,f,g,h){a=b(a,b(b(c&e|d&~e,f),h));return b(a<>>32-g,c)}function e(a,c,d,e,f,g,h){a=b(a,b(b(c^d^e,f),h));return b(a<>>32-g,c)}function g(a, +c,d,e,f,g,h){a=b(a,b(b(d^(c|~e),f),h));return b(a<>>32-g,c)}function h(a){var b="",c="",d;for(d=0;d<=3;d++)c=a>>>d*8&255,c="0"+c.toString(16),b+=c.substr(c.length-2,2);return b}var f=[],o,p,q,n,k,j,l,m,a=function(a){for(var a=a.replace(/\r\n/g,"\n"),b="",c=0;c127&&d<2048?b+=String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b}(a), +f=function(a){var b,c=a.length;b=c+8;for(var d=((b-b%64)/64+1)*16,e=Array(d-1),f=0,g=0;g>>29;return e}(a);k=1732584193;j=4023233417;l=2562383102;m=271733878;for(a=0;a=0&&b>0;){var e=a.charCodeAt(d--);e<128?c[--b]=e:e>127&&e<2048?(c[--b]=e&63|128,c[--b]=e>>6|192):(c[--b]=e&63|128,c[--b]=e>>6&63|128,c[--b]=e>>12|224)}c[--b]=0;d=new SecureRandom;for(e=[];b>2;){for(e[0]=0;e[0]==0;)d.nextBytes(e);c[--b]=e[0]}c[--b]=2;c[--b]=0;return new BigInteger(c)} +function RSAKey(){this.n=null;this.e=0;this.coeff=this.dmq1=this.dmp1=this.q=this.p=this.d=null}function RSASetPublic(a,b){a!=null&&b!=null&&a.length>0&&b.length>0?(this.n=parseBigInt(a,16),this.e=parseInt(b,16)):alert("Invalid RSA public key")}function RSADoPublic(a){return a.modPowInt(this.e,this.n)}function RSAEncrypt(a){a=pkcs1pad2(a,this.n.bitLength()+7>>3);if(a==null)return null;a=this.doPublic(a);if(a==null)return null;a=a.toString(16);return(a.length&1)==0?a:"0"+a} +RSAKey.prototype.doPublic=RSADoPublic;RSAKey.prototype.setPublic=RSASetPublic;RSAKey.prototype.encrypt=RSAEncrypt;function pkcs1unpad2(a,b){for(var c=a.toByteArray(),d=0;d=c.length)return null;for(var e="";++d191&&g<224?(e+=String.fromCharCode((g&31)<<6|c[d+1]&63),++d):(e+=String.fromCharCode((g&15)<<12|(c[d+1]&63)<<6|c[d+2]&63),d+=2)}return e} +function RSASetPrivate(a,b,c){a!=null&&b!=null&&a.length>0&&b.length>0?(this.n=parseBigInt(a,16),this.e=parseInt(b,16),this.d=parseBigInt(c,16)):alert("Invalid RSA private key")} +function RSASetPrivateEx(a,b,c,d,e,g,h,f){a!=null&&b!=null&&a.length>0&&b.length>0?(this.n=parseBigInt(a,16),this.e=parseInt(b,16),this.d=parseBigInt(c,16),this.p=parseBigInt(d,16),this.q=parseBigInt(e,16),this.dmp1=parseBigInt(g,16),this.dmq1=parseBigInt(h,16),this.coeff=parseBigInt(f,16)):alert("Invalid RSA private key")} +function RSAGenerate(a,b){var c=new SeededRandom,d=a>>1;this.e=parseInt(b,16);for(var e=new BigInteger(b,16);;){for(;;)if(this.p=new BigInteger(a-d,1,c),this.p.subtract(BigInteger.ONE).gcd(e).compareTo(BigInteger.ONE)==0&&this.p.isProbablePrime(10))break;for(;;)if(this.q=new BigInteger(d,1,c),this.q.subtract(BigInteger.ONE).gcd(e).compareTo(BigInteger.ONE)==0&&this.q.isProbablePrime(10))break;if(this.p.compareTo(this.q)<=0){var g=this.p;this.p=this.q;this.q=g}var g=this.p.subtract(BigInteger.ONE), +h=this.q.subtract(BigInteger.ONE),f=g.multiply(h);if(f.gcd(e).compareTo(BigInteger.ONE)==0){this.n=this.p.multiply(this.q);this.d=e.modInverse(f);this.dmp1=this.d.mod(g);this.dmq1=this.d.mod(h);this.coeff=this.q.modInverse(this.p);break}}} +function RSADoPrivate(a){if(this.p==null||this.q==null)return a.modPow(this.d,this.n);for(var b=a.mod(this.p).modPow(this.dmp1,this.p),a=a.mod(this.q).modPow(this.dmq1,this.q);b.compareTo(a)<0;)b=b.add(this.p);return b.subtract(a).multiply(this.coeff).mod(this.p).multiply(this.q).add(a)}function RSADecrypt(a){a=this.doPrivate(parseBigInt(a,16));return a==null?null:pkcs1unpad2(a,this.n.bitLength()+7>>3)}RSAKey.prototype.doPrivate=RSADoPrivate;RSAKey.prototype.setPrivate=RSASetPrivate; +RSAKey.prototype.setPrivateEx=RSASetPrivateEx;RSAKey.prototype.generate=RSAGenerate;RSAKey.prototype.decrypt=RSADecrypt;var _RSASIGN_DIHEAD=[];_RSASIGN_DIHEAD.sha1="3021300906052b0e03021a05000414";_RSASIGN_DIHEAD.sha256="3031300d060960864801650304020105000420";var _RSASIGN_HASHHEXFUNC=[];_RSASIGN_HASHHEXFUNC.sha1=sha1.hex;_RSASIGN_HASHHEXFUNC.sha256=sha256.hex; +function _rsasign_getHexPaddedDigestInfoForString(a,b,c){b/=4;for(var a=(0,_RSASIGN_HASHHEXFUNC[c])(a),c="00"+_RSASIGN_DIHEAD[c]+a,a="",b=b-4-c.length,d=0;d=256)e^=283}else c>24&&g%c==16&&(h=[a.Sbox[h[0]],a.Sbox[h[1]],a.Sbox[h[2]],a.Sbox[h[3]]]);for(var f=0;f<4;f++)b[g+f]=b[g+f-c]^h[f]}};a.Encrypt=function(b,c){var d=c.length;a.AddRoundKey(b,c.slice(0,16));for(var e=16;e=16;d-=16)a.AddRoundKey(b,c.slice(d,d+16)),a.MixColumns_Inv(b),a.ShiftRows(b,a.ShiftRowTab_Inv),a.SubBytes(b,a.Sbox_Inv);a.AddRoundKey(b,c.slice(0,16))};a.SubBytes=function(a,c){for(var d=0;d<16;d++)a[d]=c[a[d]]};a.AddRoundKey=function(a,c){for(var d=0;d<16;d++)a[d]^=c[d]};a.ShiftRows=function(a,c){for(var d=[].concat(a),e=0;e<16;e++)a[e]=d[c[e]]}; +a.MixColumns=function(b){for(var c=0;c<16;c+=4){var d=b[c+0],e=b[c+1],g=b[c+2],h=b[c+3],f=d^e^g^h;b[c+0]^=f^a.xtime[d^e];b[c+1]^=f^a.xtime[e^g];b[c+2]^=f^a.xtime[g^h];b[c+3]^=f^a.xtime[h^d]}};a.MixColumns_Inv=function(b){for(var c=0;c<16;c+=4){var d=b[c+0],e=b[c+1],g=b[c+2],h=b[c+3],f=d^e^g^h,o=a.xtime[f],p=a.xtime[a.xtime[o^d^g]]^f;f^=a.xtime[a.xtime[o^e^h]];b[c+0]^=p^a.xtime[d^e];b[c+1]^=f^a.xtime[e^g];b[c+2]^=p^a.xtime[g^h];b[c+3]^=f^a.xtime[h^d]}};return a}(),cryptico=function(){var a={};aes.Init(); +a.b256to64=function(a){var c,d,e,g="",h=0,f=0,o=a.length;for(e=0;e>2&63),c=(d&3)<<4):f==1?(g+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(c|d>>4&15),c=(d&15)<<2):f==2&&(g+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(c|d>>6&3),h+=1,g+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d&63)),h+=1,f+=1,f==3&& +(f=0);f>0&&(g+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(c),g+="=");f==1&&(g+="=");return g};a.b64to256=function(a){var c,d,e="",g=0,h=0,f=a.length;for(d=0;d=0&&(g&&(e+=String.fromCharCode(h|c>>6-g&255)),g=g+2&7,h=c<> +6)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d&63);c+1==a.length?(d=parseInt(a.substring(c,c+1),16),e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d<<2)):c+2==a.length&&(d=parseInt(a.substring(c,c+2),16),e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4));for(;(e.length&3)>0;)e+="=";return e};a.b64to16=function(a){var c="", +d,e=0,g;for(d=0;d>2),g=v&3,e=1):e==1?(c+=int2char(g<<2|v>>4),g=v&15,e=2):e==2?(c+=int2char(g),c+=int2char(v>>2),g=v&3,e=3):(c+=int2char(g<<2|v>>4),c+=int2char(v&15),e=0))}e==1&&(c+=int2char(g<<2));return c};a.string2bytes=function(a){for(var c=[],d=0;d>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<< +32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j>>3]|=parseInt(a.substr(j, +2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}}, +q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w< +l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})(); +(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])}, +_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]), +f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f, +m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m, +E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/ +4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math); +(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a, +this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684, +1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, +decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d, +b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); +(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8, +16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;dd||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>> +8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t= +d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})(); diff --git a/ruoyi-ui/public/demo/demo.css b/ruoyi-ui/public/demo/demo.css new file mode 100644 index 0000000..9e2ca0c --- /dev/null +++ b/ruoyi-ui/public/demo/demo.css @@ -0,0 +1,405 @@ +@charset "utf-8"; +* +{ + margin:0; + padding:0; +} +html +{ + width:100%; + height:100%; + font-size:12px; + font-family:Arial, Helvetica, sans-serif; + -webkit-text-size-adjust:none; + background:#FFFFFF; +} +body +{ + padding:5px; +} +select +{ + height:20px; + line-height:20px; +} +.left +{ + float:left; +} +.freeze +{ + position:absolute; + text-align:center; + background:#343434; + color:#FFFFFF; + font-size:26px; + font-weight:bold; + filter:alpha(opacity=60); + opacity:0.6; +} +.vtop +{ + vertical-align:middle; + margin-top:-1px; +} +/*插件*/ +.plugin +{ + /* width:100%; + height:100%; */ + width:500px; + height:300px; +} +fieldset +{ + display:block; +} +/*本地配置*/ +.localconfig +{ + width:480px; + padding:10px; + border:1px solid #7F9DB9; +} +.localconfig .tt +{ + width:125px; +} +.localconfig .txt +{ + width:310px; +} +.localconfig .txt2 +{ + width:300px; +} +.localconfig .btn +{ + width:45px; + height:22px; + line-height:18px; +} +.localconfig .sel +{ + width:120px; +} +/*登录*/ +.login +{ + width:480px; + padding:10px; + border:1px solid #7F9DB9; +} +.login .tt +{ + width:100px; +} +.login .txt +{ + width:130px; +} +.login .btn +{ + width:45px; + height:22px; + line-height:18px; +} +.login .btn2 +{ + width:100px; + height:22px; + line-height:18px; +} +.login .sel +{ + width:130px; +} +.login .sel2 +{ + width:65px; +} +/*数字通道*/ +.ipchannel +{ + width:480px; + padding:10px; + border:1px solid #7F9DB9; +} +.ipchannel .btn +{ + width:130px; + height:22px; + line-height:18px; +} +.ipchannel .digitaltdiv +{ + height:100px; + overflow:hidden; + overflow-y:auto; + border:1px solid #7F9DB9; + font-size:11px; +} +.ipchannel .digitalchannellist th, .ipchannel .digitalchannellist td +{ + padding:2px; + border:1px solid #7F9DB9; + border-collapse:collapse; + white-space:nowrap; +} +/*预览*/ +.preview +{ + width:450px; + padding:10px; + padding-top:0; + margin-left:10px; + border:1px solid #7F9DB9; +} +.preview .tt +{ + width:60px; +} +.preview .txt +{ + width:30px; +} +.preview .btn +{ + width:70px; + height:22px; + line-height:18px; +} +.preview .btn2 +{ + width:90px; + height:22px; + line-height:18px; +} +.preview .sel +{ + width:105px; +} +/*云台*/ +.ptz +{ + width:450px; + padding:10px; + margin-left:10px; + border:1px solid #7F9DB9; +} +.ptz .tt +{ + width:60px; +} +.ptz .txt +{ + width:60px; +} +.ptz .btn +{ + width:45px; + height:22px; + line-height:18px; +} +.ptz .btn2 +{ + width:60px; + height:22px; + line-height:18px; +} +.ptz .sel +{ + width:65px; +} +/*视频参数*/ +.videoparam +{ + width:450px; + padding:10px; + margin-left:10px; + border:1px solid #7F9DB9; +} +.videoparam .tt +{ + width:60px; +} +.videoparam .txt +{ + width:60px; +} +.videoparam .btn +{ + width:45px; + height:22px; + line-height:18px; +} +.videoparam .sel +{ + width:65px; +} +/*回放*/ +.playback +{ + width:450px; + padding:10px; + margin-left:10px; + border:1px solid #7F9DB9; +} +.playback .tt +{ + width:60px; +} +.playback .txt +{ + width:140px; +} +.playback .btn +{ + width:45px; + height:22px; + line-height:18px; +} +.playback .btn2 +{ + width:70px; + height:22px; + line-height:18px; +} +.playback .sel +{ + width:142px; +} +.playback .searchdiv +{ + height:100px; + overflow:hidden; + overflow-y:auto; + border:1px solid #7F9DB9; + font-size:11px; +} +.playback .searchlist th, .playback .searchlist td +{ + padding:2px; + border:1px solid #7F9DB9; + border-collapse:collapse; + white-space:nowrap; +} +/*系统维护*/ +.maintain +{ + width:450px; + padding:10px; + margin-left:10px; + border:1px solid #7F9DB9; +} +.maintain .tt +{ + width:60px; +} +.maintain .txt +{ + width:280px; +} +.maintain .btn +{ + width:45px; + height:22px; + line-height:18px; +} +.maintain .btn2 +{ + width:100px; + height:22px; + line-height:18px; +} +.maintain .sel +{ + width:65px; +} +/*操作信息*/ +.operate +{ + width:450px; + padding:10px; + margin-left:10px; + border:1px solid #7F9DB9; +} +.operate .opinfo +{ + height:150px; + border:1px solid #7F9DB9; + overflow:auto; +} +/*事件回调*/ +.callback +{ + width:450px; + padding:10px; + margin-left:10px; + border:1px solid #7F9DB9; +} +.callback .cbinfo +{ + height:114px; + border:1px solid #7F9DB9; + overflow:auto; +} +/*IP解析*/ +.ipparse +{ + width:450px; + padding:10px; + margin-left:10px; + border:1px solid #7F9DB9; +} +.ipparse .tt +{ + width:85px; +} +.ipparse .txt +{ + width:130px; +} +.ipparse .btn +{ + width:90px; + height:22px; + line-height:18px; +} +.ipparse .sel +{ + width:130px; +} +/*绘图*/ +.draw +{ + width:450px; + padding:10px; + padding-top:0; + margin-left:10px; + border:1px solid #7F9DB9; +} +.draw .tt +{ + width:60px; +} +.draw .txt +{ + width:140px; +} +.draw .btn +{ + width:70px; + height:22px; + line-height:18px; +} +.draw .btn2 +{ + width:100px; + height:22px; + line-height:18px; +} +.draw .sel +{ + width:105px; +} \ No newline at end of file diff --git a/ruoyi-ui/public/demo/demo.html b/ruoyi-ui/public/demo/demo.html new file mode 100644 index 0000000..7a0e586 --- /dev/null +++ b/ruoyi-ui/public/demo/demo.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + +
+
+
+ + + + + + + + + + diff --git a/ruoyi-ui/public/demo/demo.js b/ruoyi-ui/public/demo/demo.js new file mode 100644 index 0000000..77410aa --- /dev/null +++ b/ruoyi-ui/public/demo/demo.js @@ -0,0 +1,2107 @@ +// 初始化插件 + +// 全局保存当前选中窗口 +var g_iWndIndex = 0; //可以不用设置这个变量,有窗口参数的接口中,不用传值,开发包会默认使用当前选择窗口 +var version="websdk3.220191023" +$(function () { + // 检查插件是否已经安装过 + var iRet = window.WebVideoCtrl.I_CheckPluginInstall(); + if (-1 == iRet) { + alert("您还未安装过插件,双击开发包目录里的WebComponentsKit.exe安装!"); + return; + } + + // 初始化插件参数及插入插件 + WebVideoCtrl.I_InitPlugin(500, 300, { + bWndFull: true, //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持 + iPackageType: 2, + //szColorProperty:"plugin-background:0000ff; sub-background:0000ff; sub-border:00ffff; sub-border-select:0000ff", //2:PS 11:MP4 + iWndowType: 1, + bNoPlugin: true, + cbSelWnd: function (xmlDoc) { + g_iWndIndex = parseInt($(xmlDoc).find("SelectWnd").eq(0).text(), 10); + var szInfo = "当前选择的窗口编号:" + g_iWndIndex; + showCBInfo(szInfo); + }, + cbDoubleClickWnd: function (iWndIndex, bFullScreen) { + var szInfo = "当前放大的窗口编号:" + iWndIndex; + if (!bFullScreen) { + szInfo = "当前还原的窗口编号:" + iWndIndex; + } + showCBInfo(szInfo); + }, + cbEvent: function (iEventType, iParam1, iParam2) { + if (2 == iEventType) {// 回放正常结束 + showCBInfo("窗口" + iParam1 + "回放结束!"); + } else if (-1 == iEventType) { + showCBInfo("设备" + iParam1 + "网络错误!"); + } else if (3001 == iEventType) { + clickStopRecord(g_szRecordType, iParam1); + } + }, + cbRemoteConfig: function () { + showCBInfo("关闭远程配置库!"); + }, + cbInitPluginComplete: function () { + WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin"); + + // 检查插件是否最新 + if (-1 == WebVideoCtrl.I_CheckPluginVersion()) { + alert("检测到新的插件版本,双击开发包目录里的WebComponentsKit.exe升级!"); + return; + } + } + }); + + // 窗口事件绑定 + $(window).bind({ + resize: function () { + // WebVideoCtrl.I_Resize($("body").width(), $("body").height()); + } + }); + + //初始化日期时间 + var szCurTime = dateFormat(new Date(), "yyyy-MM-dd"); + $("#starttime").val(szCurTime + " 00:00:00"); + $("#endtime").val(szCurTime + " 23:59:59"); + $("#downloadstarttime").val(szCurTime + " 00:00:00"); + $("#downloadendtime").val(szCurTime + " 23:59:59"); + if(WebVideoCtrl.I_SupportNoPlugin()){ + $(".localconfig").hide(); + $(".ipparse").hide(); + $("#checkVersion").hide(); + $("#remoteconfig").hide(); + $("#btnReverse").hide(); + $("#btnReverse").show(); + } + else{ + // $("#fullbtn").hide(); + } +}); + +// 显示操作信息 +function showOPInfo(szInfo, status, xmlDoc) { + var szTip = "
" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo; + if (typeof status != "undefined" && status != 200) { + var szStatusString = $(xmlDoc).find("statusString").eq(0).text(); + var szSubStatusCode = $(xmlDoc).find("subStatusCode").eq(0).text(); + if ("" === szSubStatusCode) { + if("" === szSubStatusCode && "" === szStatusString){ + szTip += "(" + status + ")"; + } + else{ + szTip += "(" + status + ", " + szStatusString + ")"; + } + } else { + szTip += "(" + status + ", " + szSubStatusCode + ")"; + } + } + szTip += "
"; + + $("#opinfo").html(szTip + $("#opinfo").html()); +} + +// 显示回调信息 +function showCBInfo(szInfo) { + szInfo = "
" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + "
"; + $("#cbinfo").html(szInfo + $("#cbinfo").html()); +} + +// 格式化时间 +function dateFormat(oDate, fmt) { + var o = { + "M+": oDate.getMonth() + 1, //月份 + "d+": oDate.getDate(), //日 + "h+": oDate.getHours(), //小时 + "m+": oDate.getMinutes(), //分 + "s+": oDate.getSeconds(), //秒 + "q+": Math.floor((oDate.getMonth() + 3) / 3), //季度 + "S": oDate.getMilliseconds()//毫秒 + }; + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (oDate.getFullYear() + "").substr(4 - RegExp.$1.length)); + } + for (var k in o) { + if (new RegExp("(" + k + ")").test(fmt)) { + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); + } + } + return fmt; +} + +// 获取窗口尺寸 +function getWindowSize() { + var nWidth = $(this).width() + $(this).scrollLeft(), + nHeight = $(this).height() + $(this).scrollTop(); + + return {width: nWidth, height: nHeight}; +} + +// 打开选择框 0:文件夹 1:文件 +function clickOpenFileDlg(id, iType) { + WebVideoCtrl.I2_OpenFileDlg(iType).then(function(szDirPath){ + if (szDirPath != -1 && szDirPath != "" && szDirPath != null) { + $("#" + id).val(szDirPath); + } + }); +} + +// 获取本地参数 +function clickGetLocalCfg() { + var xmlDoc = WebVideoCtrl.I_GetLocalCfg(); + + if (xmlDoc != null) { + $("#netsPreach").val($(xmlDoc).find("BuffNumberType").eq(0).text()); + $("#wndSize").val($(xmlDoc).find("PlayWndType").eq(0).text()); + $("#rulesInfo").val($(xmlDoc).find("IVSMode").eq(0).text()); + $("#captureFileFormat").val($(xmlDoc).find("CaptureFileFormat").eq(0).text()); + $("#packSize").val($(xmlDoc).find("PackgeSize").eq(0).text()); + $("#recordPath").val($(xmlDoc).find("RecordPath").eq(0).text()); + $("#downloadPath").val($(xmlDoc).find("DownloadPath").eq(0).text()); + $("#previewPicPath").val($(xmlDoc).find("CapturePath").eq(0).text()); + $("#playbackPicPath").val($(xmlDoc).find("PlaybackPicPath").eq(0).text()); + $("#devicePicPath").val($(xmlDoc).find("DeviceCapturePath").eq(0).text()); + $("#playbackFilePath").val($(xmlDoc).find("PlaybackFilePath").eq(0).text()); + $("#protocolType").val($(xmlDoc).find("ProtocolType").eq(0).text()); + + showOPInfo("本地配置获取成功!"); + } else { + showOPInfo("本地配置获取失败!"); + } +} + +// 设置本地参数 +function clickSetLocalCfg() { + var arrXml = [], + szInfo = ""; + + arrXml.push(""); + arrXml.push("" + $("#packSize").val() + ""); + arrXml.push("" + $("#wndSize").val() + ""); + arrXml.push("" + $("#netsPreach").val() + ""); + arrXml.push("" + $("#recordPath").val() + ""); + arrXml.push("" + $("#previewPicPath").val() + ""); + arrXml.push("" + $("#playbackFilePath").val() + ""); + arrXml.push("" + $("#playbackPicPath").val() + ""); + arrXml.push("" + $("#devicePicPath").val() + ""); + arrXml.push("" + $("#downloadPath").val() + ""); + arrXml.push("" + $("#rulesInfo").val() + ""); + arrXml.push("" + $("#captureFileFormat").val() + ""); + arrXml.push("" + $("#protocolType").val() + ""); + arrXml.push(""); + + var iRet = WebVideoCtrl.I_SetLocalCfg(arrXml.join("")); + + if (0 == iRet) { + szInfo = "本地配置设置成功!"; + } else { + szInfo = "本地配置设置失败!"; + } + showOPInfo(szInfo); +} + +// 窗口分割数 +function changeWndNum(iType) { + iType = parseInt(iType, 10); + WebVideoCtrl.I_ChangeWndNum(iType); +} + +// 登录 +function clickLogin() { + var szIP = $("#loginip").val(), + szPort = $("#port").val(), + szUsername = $("#username").val(), + szPassword = $("#password").val(); + + if ("" == szIP || "" == szPort) { + return; + } + + var szDeviceIdentify = szIP + "_" + szPort; + + var iRet = WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, { + success: function (xmlDoc) { + showOPInfo(szDeviceIdentify + " 登录成功!"); + $("#ip").prepend(""); + setTimeout(function () { + $("#ip").val(szDeviceIdentify); + getChannelInfo(); + getDevicePort(); + }, 10); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 登录失败!", status, xmlDoc); + } + }); + + if (-1 == iRet) { + showOPInfo(szDeviceIdentify + " 已登录过!"); + } +} + +// 退出 +function clickLogout() { + var szDeviceIdentify = $("#ip").val(), + szInfo = ""; + + if (null == szDeviceIdentify) { + return; + } + + var iRet = WebVideoCtrl.I_Logout(szDeviceIdentify); + if (0 == iRet) { + szInfo = "退出成功!"; + + $("#ip option[value='" + szDeviceIdentify + "']").remove(); + getChannelInfo(); + getDevicePort(); + } else { + szInfo = "退出失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); +} + +// 获取设备信息 +function clickGetDeviceInfo() { + var szDeviceIdentify = $("#ip").val(); + + if (null == szDeviceIdentify) { + return; + } + + WebVideoCtrl.I_GetDeviceInfo(szDeviceIdentify, { + success: function (xmlDoc) { + var arrStr = []; + arrStr.push("设备名称:" + $(xmlDoc).find("deviceName").eq(0).text() + "\r\n"); + arrStr.push("设备ID:" + $(xmlDoc).find("deviceID").eq(0).text() + "\r\n"); + arrStr.push("型号:" + $(xmlDoc).find("model").eq(0).text() + "\r\n"); + arrStr.push("设备序列号:" + $(xmlDoc).find("serialNumber").eq(0).text() + "\r\n"); + arrStr.push("MAC地址:" + $(xmlDoc).find("macAddress").eq(0).text() + "\r\n"); + arrStr.push("主控版本:" + $(xmlDoc).find("firmwareVersion").eq(0).text() + " " + $(xmlDoc).find("firmwareReleasedDate").eq(0).text() + "\r\n"); + arrStr.push("编码版本:" + $(xmlDoc).find("encoderVersion").eq(0).text() + " " + $(xmlDoc).find("encoderReleasedDate").eq(0).text() + "\r\n"); + + showOPInfo(szDeviceIdentify + " 获取设备信息成功!"); + alert(arrStr.join("")); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 获取设备信息失败!", status, xmlDoc); + } + }); +} + +// 获取通道 +function getChannelInfo() { + var szDeviceIdentify = $("#ip").val(), + oSel = $("#channels").empty(); + + if (null == szDeviceIdentify) { + return; + } + + // 模拟通道 + WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, { + async: false, + success: function (xmlDoc) { + var oChannels = $(xmlDoc).find("VideoInputChannel"); + + $.each(oChannels, function (i) { + var id = $(this).find("id").eq(0).text(), + name = $(this).find("name").eq(0).text(); + if ("" == name) { + name = "Camera " + (i < 9 ? "0" + (i + 1) : (i + 1)); + } + oSel.append(""); + }); + showOPInfo(szDeviceIdentify + " 获取模拟通道成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 获取模拟通道失败!", status, xmlDoc); + } + }); + // 数字通道 + WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, { + async: false, + success: function (xmlDoc) { + var oChannels = $(xmlDoc).find("InputProxyChannelStatus"); + + $.each(oChannels, function (i) { + var id = $(this).find("id").eq(0).text(), + name = $(this).find("name").eq(0).text(), + online = $(this).find("online").eq(0).text(); + if ("false" == online) {// 过滤禁用的数字通道 + return true; + } + if ("" == name) { + name = "IPCamera " + (i < 9 ? "0" + (i + 1) : (i + 1)); + } + oSel.append(""); + }); + showOPInfo(szDeviceIdentify + " 获取数字通道成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 获取数字通道失败!", status, xmlDoc); + } + }); + // 零通道 + WebVideoCtrl.I_GetZeroChannelInfo(szDeviceIdentify, { + async: false, + success: function (xmlDoc) { + var oChannels = $(xmlDoc).find("ZeroVideoChannel"); + + $.each(oChannels, function (i) { + var id = $(this).find("id").eq(0).text(), + name = $(this).find("name").eq(0).text(); + if ("" == name) { + name = "Zero Channel " + (i < 9 ? "0" + (i + 1) : (i + 1)); + } + if ("true" == $(this).find("enabled").eq(0).text()) {// 过滤禁用的零通道 + oSel.append(""); + } + }); + showOPInfo(szDeviceIdentify + " 获取零通道成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 获取零通道失败!", status, xmlDoc); + } + }); +} + +// 获取端口 +function getDevicePort() { + var szDeviceIdentify = $("#ip").val(); + + if (null == szDeviceIdentify) { + return; + } + + var oPort = WebVideoCtrl.I_GetDevicePort(szDeviceIdentify); + if (oPort != null) { + $("#deviceport").val(oPort.iDevicePort); + $("#rtspport").val(oPort.iRtspPort); + + showOPInfo(szDeviceIdentify + " 获取端口成功!"); + } else { + showOPInfo(szDeviceIdentify + " 获取端口失败!"); + } +} + +// 获取数字通道 +function clickGetDigitalChannelInfo() { + var szDeviceIdentify = $("#ip").val(), + iAnalogChannelNum = 0; + + $("#digitalchannellist").empty(); + + if (null == szDeviceIdentify) { + return; + } + + // 模拟通道 + WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, { + async: false, + success: function (xmlDoc) { + iAnalogChannelNum = $(xmlDoc).find("VideoInputChannel").length; + }, + error: function () { + + } + }); + + // 数字通道 + WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, { + async: false, + success: function (xmlDoc) { + var oChannels = $(xmlDoc).find("InputProxyChannelStatus"); + + $.each(oChannels, function () { + var id = parseInt($(this).find("id").eq(0).text(), 10), + ipAddress = $(this).find("ipAddress").eq(0).text(), + srcInputPort = $(this).find("srcInputPort").eq(0).text(), + managePortNo = $(this).find("managePortNo").eq(0).text(), + online = $(this).find("online").eq(0).text(), + proxyProtocol = $(this).find("proxyProtocol").eq(0).text(); + + var objTr = $("#digitalchannellist").get(0).insertRow(-1); + var objTd = objTr.insertCell(0); + objTd.innerHTML = (id - iAnalogChannelNum) < 10 ? "D0" + (id - iAnalogChannelNum) : "D" + (id - iAnalogChannelNum); + objTd = objTr.insertCell(1); + objTd.width = "25%"; + objTd.innerHTML = ipAddress; + objTd = objTr.insertCell(2); + objTd.width = "15%"; + objTd.innerHTML = srcInputPort; + objTd = objTr.insertCell(3); + objTd.width = "20%"; + objTd.innerHTML = managePortNo; + objTd = objTr.insertCell(4); + objTd.width = "15%"; + objTd.innerHTML = "true" == online ? "在线" : "离线"; + objTd = objTr.insertCell(5); + objTd.width = "25%"; + objTd.innerHTML = proxyProtocol; + }); + showOPInfo(szDeviceIdentify + " 获取数字通道成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 没有数字通道!", status, xmlDoc); + } + }); +} +// 开始预览 +function clickStartRealPlay(iStreamType) { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szDeviceIdentify = $("#ip").val(), + iRtspPort = parseInt($("#rtspport").val(), 10), + iChannelID = parseInt($("#channels").val(), 10), + bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, + szInfo = ""; + + if ("undefined" === typeof iStreamType) { + iStreamType = parseInt($("#streamtype").val(), 10); + } + + if (null == szDeviceIdentify) { + return; + } + var startRealPlay = function () { + WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, { + iRtspPort: iRtspPort, + iStreamType: iStreamType, + iChannelID: iChannelID, + bZeroChannel: bZeroChannel, + success: function () { + szInfo = "开始预览成功!"; + showOPInfo(szDeviceIdentify + " " + szInfo); + + }, + error: function (status, xmlDoc) { + if (403 === status) { + szInfo = "设备不支持Websocket取流!"; + } else { + szInfo = "开始预览失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); + } + }); + }; + + if (oWndInfo != null) {// 已经在播放了,先停止 + WebVideoCtrl.I_Stop({ + success: function () { + startRealPlay(); + } + }); + } else { + startRealPlay(); + } +} +function setTextOverlay() { + var szDeviceIdentify = $("#ip").val(); + var szInfo = ""; + var that = this; + var iChannelID = parseInt($("#channels").val(), 10); + var szUrl = "ISAPI/System/Video/inputs/channels/" + iChannelID + "/overlays"; + WebVideoCtrl.I_GetTextOverlay(szUrl,szDeviceIdentify,{ + success:function(data){ + $(data).find("TextOverlay").eq(0).find("displayText").eq(0).text("eee6444是66ee<"); + $(data).find("TextOverlay").eq(0).find("positionX").eq(0).text("20"); + $(data).find("TextOverlay").eq(0).find("positionY").eq(0).text("30"); + var xmldoc = toXMLStr(data); + var newOptions = { + async:true, + type: "PUT", + data:xmldoc, + success:function(){ + szInfo = "绘制osd信息成功"; + showOPInfo(szDeviceIdentify + " " + szInfo); + }, + error:function(){ + szInfo = "绘制osd信息失败"; + showOPInfo(szDeviceIdentify + " " + szInfo); + } + }; + + WebVideoCtrl.I_SendHTTPRequest(szDeviceIdentify,szUrl,newOptions); + }, + error:function(){ + szInfo = "获取osd信息失败"; + showOPInfo(szDeviceIdentify + " " + szInfo); + } + }); + } +// 停止预览 +function clickStopRealPlay() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_Stop({ + success: function () { + szInfo = "停止预览成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + szInfo = "停止预览失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 打开声音 +function clickOpenSound() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + var allWndInfo = WebVideoCtrl.I_GetWindowStatus(); + // 循环遍历所有窗口,如果有窗口打开了声音,先关闭 + for (var i = 0, iLen = allWndInfo.length; i < iLen; i++) { + oWndInfo = allWndInfo[i]; + if (oWndInfo.bSound) { + WebVideoCtrl.I_CloseSound(oWndInfo.iIndex); + break; + } + } + + var iRet = WebVideoCtrl.I_OpenSound(); + + if (0 == iRet) { + szInfo = "打开声音成功!"; + } else { + szInfo = "打开声音失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } +} + +// 关闭声音 +function clickCloseSound() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + var iRet = WebVideoCtrl.I_CloseSound(); + if (0 == iRet) { + szInfo = "关闭声音成功!"; + } else { + szInfo = "关闭声音失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } +} + +// 设置音量 +function clickSetVolume() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + iVolume = parseInt($("#volume").val(), 10), + szInfo = ""; + + if (oWndInfo != null) { + var iRet = WebVideoCtrl.I_SetVolume(iVolume); + if (0 == iRet) { + szInfo = "音量设置成功!"; + } else { + szInfo = "音量设置失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } +} + +// 抓图 +function clickCapturePic() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + var xmlDoc = WebVideoCtrl.I_GetLocalCfg(); + var szCaptureFileFormat = "0"; + if (xmlDoc != null) { + szCaptureFileFormat = $(xmlDoc).find("CaptureFileFormat").eq(0).text(); + } + + var szChannelID = $("#channels").val(); + var szPicName = oWndInfo.szDeviceIdentify + "_" + szChannelID + "_" + new Date().getTime(); + + szPicName += ("0" === szCaptureFileFormat) ? ".jpg": ".bmp"; + + WebVideoCtrl.I2_CapturePic(szPicName, { + bDateDir: true //是否生成日期文件 + }).then(function(){ + szInfo = "抓图成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + },function(){ + szInfo = "抓图失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }); + } +} +// 抓图 +function clickCapturePicData() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + if (oWndInfo != null) { + WebVideoCtrl.I2_CapturePicData().then(function(data){ + szInfo = "抓图上传成功!"; + console.log(data); + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + },function(){ + szInfo = "抓图失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }); + } +} + +// 开始录像 +var g_szRecordType = ""; +function clickStartRecord(szType) { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + g_szRecordType = szType; + + if (oWndInfo != null) { + var szChannelID = $("#channels").val(), + szFileName = oWndInfo.szDeviceIdentify + "_" + szChannelID + "_" + new Date().getTime(); + + WebVideoCtrl.I_StartRecord(szFileName, { + bDateDir: true, //是否生成日期文件 + success: function () { + if ('realplay' === szType) { + szInfo = "开始录像成功!"; + } else if ('playback' === szType) { + szInfo = "开始剪辑成功!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + if ('realplay' === szType) { + szInfo = "开始录像失败!"; + } else if ('playback' === szType) { + szInfo = "开始剪辑失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 停止录像 +function clickStopRecord(szType, iWndIndex) { + if ("undefined" === typeof iWndIndex) { + iWndIndex = g_iWndIndex; + } + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_StopRecord({ + success: function () { + if ('realplay' === szType) { + szInfo = "停止录像成功!"; + } else if ('playback' === szType) { + szInfo = "停止剪辑成功!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + if ('realplay' === szType) { + szInfo = "停止录像失败!"; + } else if ('playback' === szType) { + szInfo = "停止剪辑失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 获取对讲通道 +function clickGetAudioInfo() { + var szDeviceIdentify = $("#ip").val(); + + if (null == szDeviceIdentify) { + return; + } + + WebVideoCtrl.I_GetAudioInfo(szDeviceIdentify, { + success: function (xmlDoc) { + var oAudioChannels = $(xmlDoc).find("TwoWayAudioChannel"), + oSel = $("#audiochannels").empty(); + $.each(oAudioChannels, function () { + var id = $(this).find("id").eq(0).text(); + + oSel.append(""); + }); + showOPInfo(szDeviceIdentify + " 获取对讲通道成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 获取对讲通道失败!", status, xmlDoc); + } + }); +} + +// 开始对讲 +function clickStartVoiceTalk() { + var szDeviceIdentify = $("#ip").val(), + iAudioChannel = parseInt($("#audiochannels").val(), 10), + szInfo = ""; + + if (null == szDeviceIdentify) { + return; + } + + if (isNaN(iAudioChannel)) { + alert("请选择对讲通道!"); + return; + } + + var iRet = WebVideoCtrl.I_StartVoiceTalk(szDeviceIdentify, iAudioChannel); + + if (0 == iRet) { + szInfo = "开始对讲成功!"; + } else { + szInfo = "开始对讲失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); +} + +// 停止对讲 +function clickStopVoiceTalk() { + var szDeviceIdentify = $("#ip").val(), + iRet = WebVideoCtrl.I_StopVoiceTalk(), + szInfo = ""; + + if (null == szDeviceIdentify) { + return; + } + + if (0 == iRet) { + szInfo = "停止对讲成功!"; + } else { + szInfo = "停止对讲失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); +} + +// 启用电子放大 +function clickEnableEZoom() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + var iRet = WebVideoCtrl.I_EnableEZoom(); + if (0 == iRet) { + szInfo = "启用电子放大成功!"; + } else { + szInfo = "启用电子放大失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } +} + +// 禁用电子放大 +function clickDisableEZoom() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + var iRet = WebVideoCtrl.I_DisableEZoom(); + if (0 == iRet) { + szInfo = "禁用电子放大成功!"; + } else { + szInfo = "禁用电子放大失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } +} + +// 启用3D放大 +function clickEnable3DZoom() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + var iRet = WebVideoCtrl.I_Enable3DZoom(); + if (0 == iRet) { + szInfo = "启用3D放大成功!"; + } else { + szInfo = "启用3D放大失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } +} + +// 禁用3D放大 +function clickDisable3DZoom() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + var iRet = WebVideoCtrl.I_Disable3DZoom(); + if (0 == iRet) { + szInfo = "禁用3D放大成功!"; + } else { + szInfo = "禁用3D放大失败!"; + } + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } +} + +// 全屏 +function clickFullScreen() { + WebVideoCtrl.I_FullScreen(true); +} + +// PTZ控制 9为自动,1,2,3,4,5,6,7,8为方向PTZ +var g_bPTZAuto = false; +function mouseDownPTZControl(iPTZIndex) { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, + iPTZSpeed = $("#ptzspeed").val(); + + if (bZeroChannel) {// 零通道不支持云台 + return; + } + + if (oWndInfo != null) { + if (9 == iPTZIndex && g_bPTZAuto) { + iPTZSpeed = 0;// 自动开启后,速度置为0可以关闭自动 + } else { + g_bPTZAuto = false;// 点击其他方向,自动肯定会被关闭 + } + + WebVideoCtrl.I_PTZControl(iPTZIndex, false, { + iPTZSpeed: iPTZSpeed, + success: function (xmlDoc) { + if (9 == iPTZIndex && g_bPTZAuto) { + showOPInfo(oWndInfo.szDeviceIdentify + " 停止云台成功!"); + } else { + showOPInfo(oWndInfo.szDeviceIdentify + " 开启云台成功!"); + } + if (9 == iPTZIndex) { + g_bPTZAuto = !g_bPTZAuto; + } + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 开启云台失败!", status, xmlDoc); + } + }); + } +} + +// 方向PTZ停止 +function mouseUpPTZControl() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(1, true, { + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 停止云台成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 停止云台失败!", status, xmlDoc); + } + }); + } +} + +// 设置预置点 +function clickSetPreset() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + iPresetID = parseInt($("#preset").val(), 10); + + if (oWndInfo != null) { + WebVideoCtrl.I_SetPreset(iPresetID, { + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 设置预置点成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 设置预置点失败!", status, xmlDoc); + } + }); + } +} + +// 调用预置点 +function clickGoPreset() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + iPresetID = parseInt($("#preset").val(), 10); + + if (oWndInfo != null) { + WebVideoCtrl.I_GoPreset(iPresetID, { + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调用预置点成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调用预置点失败!", status, xmlDoc); + } + }); + } +} + +// 搜索录像 +var g_iSearchTimes = 0; +function clickRecordSearch(iType) { + var szDeviceIdentify = $("#ip").val(), + iChannelID = parseInt($("#channels").val(), 10), + bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, + iStreamType = parseInt($("#record_streamtype").val(), 10), + szStartTime = $("#starttime").val(), + szEndTime = $("#endtime").val(); + if (Date.parse(szEndTime.replace(/-/g, "/")) - Date.parse(szStartTime.replace(/-/g, "/")) < 0) { + alert("开始时间大于结束时间"); + return; + } + if (null == szDeviceIdentify) { + return; + } + + if (bZeroChannel) {// 零通道不支持录像搜索 + return; + } + + if (0 == iType) {// 首次搜索 + $("#searchlist").empty(); + g_iSearchTimes = 0; + } + + WebVideoCtrl.I_RecordSearch(szDeviceIdentify, iChannelID, szStartTime, szEndTime, { + iStreamType: iStreamType, + iSearchPos: g_iSearchTimes * 40, + success: function (xmlDoc) { + if ("MORE" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { + + for(var i = 0, nLen = $(xmlDoc).find("searchMatchItem").length; i < nLen; i++) { + var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text(); + if(szPlaybackURI.indexOf("name=") < 0) { + break; + } + var szStartTime = $(xmlDoc).find("startTime").eq(i).text(); + var szEndTime = $(xmlDoc).find("endTime").eq(i).text(); + var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size=")); + + var objTr = $("#searchlist").get(0).insertRow(-1); + var objTd = objTr.insertCell(0); + objTd.id = "downloadTd" + i; + objTd.innerHTML = g_iSearchTimes * 40 + (i + 1); + objTd = objTr.insertCell(1); + objTd.width = "30%"; + objTd.innerHTML = szFileName; + objTd = objTr.insertCell(2); + objTd.width = "30%"; + objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", ""); + objTd = objTr.insertCell(3); + objTd.width = "30%"; + objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", ""); + objTd = objTr.insertCell(4); + objTd.width = "10%"; + objTd.innerHTML = "下载"; + $("#downloadTd" + (i + g_iSearchTimes * 40)).data("fileName", szFileName); + $("#downloadTd" + (i + g_iSearchTimes * 40)).data("playbackURI", szPlaybackURI); + } + + g_iSearchTimes++; + clickRecordSearch(1);// 继续搜索 + } else if ("OK" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { + var iLength = $(xmlDoc).find("searchMatchItem").length; + for(var i = 0; i < iLength; i++) { + var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text(); + if(szPlaybackURI.indexOf("name=") < 0) { + break; + } + var szStartTime = $(xmlDoc).find("startTime").eq(i).text(); + var szEndTime = $(xmlDoc).find("endTime").eq(i).text(); + var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size=")); + + var objTr = $("#searchlist").get(0).insertRow(-1); + var objTd = objTr.insertCell(0); + objTd.id = "downloadTd" + i; + objTd.innerHTML = g_iSearchTimes * 40 + (i + 1); + objTd = objTr.insertCell(1); + objTd.width = "30%"; + objTd.innerHTML = szFileName; + objTd = objTr.insertCell(2); + objTd.width = "30%"; + objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", ""); + objTd = objTr.insertCell(3); + objTd.width = "30%"; + objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", ""); + objTd = objTr.insertCell(4); + objTd.width = "10%"; + objTd.innerHTML = "下载"; + $("#downloadTd" + (i + g_iSearchTimes * 40)).data("fileName", szFileName); + $("#downloadTd" + (i + g_iSearchTimes * 40)).data("playbackURI", szPlaybackURI); + } + showOPInfo(szDeviceIdentify + " 搜索录像文件成功!"); + } else if("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { + setTimeout(function() { + showOPInfo(szDeviceIdentify + " 没有录像文件!"); + }, 50); + } + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 搜索录像文件失败!", status, xmlDoc); + } + }); +} + +// 开始回放 +function clickStartPlayback() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szDeviceIdentify = $("#ip").val(), + iRtspPort = parseInt($("#rtspport").val(), 10), + iStreamType = parseInt($("#record_streamtype").val(), 10), + bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, + iChannelID = parseInt($("#channels").val(), 10), + szStartTime = $("#starttime").val(), + szEndTime = $("#endtime").val(), + szInfo = "", + bChecked = $("#transstream").prop("checked"), + iRet = -1; + + if (null == szDeviceIdentify) { + return; + } + + if (bZeroChannel) {// 零通道不支持回放 + return; + } + + var startPlayback = function () { + if (bChecked) {// 启用转码回放 + var oTransCodeParam = { + TransFrameRate: "14",// 0:全帧率,5:1,6:2,7:4,8:6,9:8,10:10,11:12,12:16,14:15,15:18,13:20,16:22 + TransResolution: "1",// 255:Auto,3:4CIF,2:QCIF,1:CIF + TransBitrate: "19"// 2:32K,3:48K,4:64K,5:80K,6:96K,7:128K,8:160K,9:192K,10:224K,11:256K,12:320K,13:384K,14:448K,15:512K,16:640K,17:768K,18:896K,19:1024K,20:1280K,21:1536K,22:1792K,23:2048K,24:3072K,25:4096K,26:8192K + }; + WebVideoCtrl.I_StartPlayback(szDeviceIdentify, { + iRtspPort: iRtspPort, + iStreamType: iStreamType, + iChannelID: iChannelID, + szStartTime: szStartTime, + szEndTime: szEndTime, + oTransCodeParam: oTransCodeParam, + success: function () { + szInfo = "开始回放成功!"; + showOPInfo(szDeviceIdentify + " " + szInfo); + }, + error: function (status, xmlDoc) { + if (403 === status) { + szInfo = "设备不支持Websocket取流!"; + } else { + szInfo = "开始回放失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); + } + }); + } else { + WebVideoCtrl.I_StartPlayback(szDeviceIdentify, { + iRtspPort: iRtspPort, + iStreamType: iStreamType, + iChannelID: iChannelID, + szStartTime: szStartTime, + szEndTime: szEndTime, + success: function () { + szInfo = "开始回放成功!"; + showOPInfo(szDeviceIdentify + " " + szInfo); + }, + error: function (status, xmlDoc) { + if (403 === status) { + szInfo = "设备不支持Websocket取流!"; + } else { + szInfo = "开始回放失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); + } + }); + } + }; + + if (oWndInfo != null) {// 已经在播放了,先停止 + WebVideoCtrl.I_Stop({ + success: function () { + startPlayback(); + } + }); + } else { + startPlayback(); + } +} + +// 停止回放 +function clickStopPlayback() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_Stop({ + success: function () { + szInfo = "停止回放成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + szInfo = "停止回放失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 开始倒放 +function clickReversePlayback() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szDeviceIdentify = $("#ip").val(), + iRtspPort = parseInt($("#rtspport").val(), 10), + iStreamType = parseInt($("#record_streamtype").val(), 10), + bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, + iChannelID = parseInt($("#channels").val(), 10), + szStartTime = $("#starttime").val(), + szEndTime = $("#endtime").val(), + szInfo = ""; + + if (null == szDeviceIdentify) { + return; + } + + if (bZeroChannel) {// 零通道不支持倒放 + return; + } + + var reversePlayback = function () { + var iRet = WebVideoCtrl.I_ReversePlayback(szDeviceIdentify, { + iRtspPort: iRtspPort, + iStreamType: iStreamType, + iChannelID: iChannelID, + szStartTime: szStartTime, + szEndTime: szEndTime + }); + + if (0 == iRet) { + szInfo = "开始倒放成功!"; + } else { + szInfo = "开始倒放失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); + }; + + if (oWndInfo != null) {// 已经在播放了,先停止 + WebVideoCtrl.I_Stop({ + success: function () { + reversePlayback(); + } + }); + } else { + reversePlayback(); + } +} + +// 单帧 +function clickFrame() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_Frame({ + success: function () { + szInfo = "单帧播放成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + szInfo = "单帧播放失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 暂停 +function clickPause() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_Pause({ + success: function () { + szInfo = "暂停成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + szInfo = "暂停失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 恢复 +function clickResume() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_Resume({ + success: function () { + szInfo = "恢复成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + szInfo = "恢复失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 慢放 +function clickPlaySlow() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_PlaySlow({ + success: function () { + szInfo = "慢放成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + szInfo = "慢放失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// 快放 +function clickPlayFast() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), + szInfo = ""; + + if (oWndInfo != null) { + WebVideoCtrl.I_PlayFast({ + success: function () { + szInfo = "快放成功!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + }, + error: function () { + szInfo = "快放失败!"; + showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); + } + }); + } +} + +// OSD时间 +function clickGetOSDTime() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + var szTime = WebVideoCtrl.I_GetOSDTime({ + success: function (szOSDTime) { + $("#osdtime").val(szOSDTime); + showOPInfo(oWndInfo.szDeviceIdentify + " 获取OSD时间成功!"); + }, + error: function () { + showOPInfo(oWndInfo.szDeviceIdentify + " 获取OSD时间失败!"); + } + }); + } +} + +// 下载录像 +var g_iDownloadID = -1; +var g_tDownloadProcess = 0; +function clickStartDownloadRecord(i) { + var szDeviceIdentify = $("#ip").val(), + szChannelID = $("#channels").val(), + szFileName = $("#downloadTd" + i).data("fileName"), + szPlaybackURI = $("#downloadTd" + i).data("playbackURI"); + + if (null == szDeviceIdentify) { + return; + } + + g_iDownloadID = WebVideoCtrl.I_StartDownloadRecord(szDeviceIdentify, szPlaybackURI, szFileName, { + bDateDir: true //是否生成日期文件 + }); + + if (g_iDownloadID < 0) { + var iErrorValue = WebVideoCtrl.I_GetLastError(); + if (34 == iErrorValue) { + showOPInfo(szDeviceIdentify + " 已下载!"); + } else if (33 == iErrorValue) { + showOPInfo(szDeviceIdentify + " 空间不足!"); + } else { + showOPInfo(szDeviceIdentify + " 下载失败!"); + } + } else { + $("
").appendTo("body"); + g_tDownloadProcess = setInterval("downProcess(" + i + ")", 1000); + } +} +function clickStartDownloadRecordByTime() { + var szDeviceIdentify = $("#ip").val(), + szChannelID = $("#channels").val(), + szFileName = $("#downloadTd0").data("fileName"), + szPlaybackURI = $("#downloadTd0").data("playbackURI"), + szStartTime = $("#downloadstarttime").val(), + szEndTime = $("#downloadendtime").val(); + if (null == szDeviceIdentify) { + return; + } + if (Date.parse(szEndTime.replace(/-/g, "/")) - Date.parse(szStartTime.replace(/-/g, "/")) < 0) { + alert("开始时间大于结束时间"); + return; + } + g_iDownloadID = WebVideoCtrl.I_StartDownloadRecordByTime(szDeviceIdentify, szPlaybackURI, szFileName, szStartTime,szEndTime,{ + bDateDir: true //是否生成日期文件 + }); + + if (g_iDownloadID < 0) { + var iErrorValue = WebVideoCtrl.I_GetLastError(); + if (34 == iErrorValue) { + showOPInfo(szDeviceIdentify + " 已下载!"); + } else if (33 == iErrorValue) { + showOPInfo(szDeviceIdentify + " 空间不足!"); + } else { + showOPInfo(szDeviceIdentify + " 下载失败!"); + } + } else { + $("
").appendTo("body"); + g_tDownloadProcess = setInterval("downProcess(" + 0 + ")", 1000); + } +} +// 下载进度 +function downProcess() { + var iStatus = WebVideoCtrl.I_GetDownloadStatus(g_iDownloadID); + if (0 == iStatus) { + $("#downProcess").css({ + width: $("#searchlist").width() + "px", + height: "100px", + lineHeight: "100px", + left: $("#searchdiv").offset().left + "px", + top: $("#searchdiv").offset().top + "px" + }); + var iProcess = WebVideoCtrl.I_GetDownloadProgress(g_iDownloadID); + if (iProcess < 0) { + clearInterval(g_tDownloadProcess); + g_tDownloadProcess = 0; + g_iDownloadID = -1; + } else if (iProcess < 100) { + $("#downProcess").text(iProcess + "%"); + } else { + $("#downProcess").text("100%"); + setTimeout(function () { + $("#downProcess").remove(); + }, 1000); + + WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID); + + showOPInfo("录像下载完成!"); + clearInterval(g_tDownloadProcess); + g_tDownloadProcess = 0; + g_iDownloadID = -1; + } + } else { + WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID); + + clearInterval(g_tDownloadProcess); + g_tDownloadProcess = 0; + g_iDownloadID = -1; + } +} + +// 导出配置文件 +function clickExportDeviceConfig() { + var szDeviceIdentify = $("#ip").val(), + szInfo = ""; + + if (null == szDeviceIdentify) { + return; + } + var szDevicePassWord = $("#edfpassword").val(); + + var iRet = WebVideoCtrl.I_ExportDeviceConfig(szDeviceIdentify,szDevicePassWord); + + if (0 == iRet) { + szInfo = "导出配置文件成功!"; + } else { + szInfo = "导出配置文件失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); +} + +// 导入配置文件 +function clickImportDeviceConfig() { + var szDeviceIdentify = $("#ip").val(), + szFileName = $("#configFile").val(), + szDevicePassWord= $("#edfpassword").val(); + if (null == szDeviceIdentify) { + return; + } + + if ("" == szFileName) { + alert("请选择配置文件!"); + return; + } + + var iRet = WebVideoCtrl.I_ImportDeviceConfig(szDeviceIdentify, szFileName,szDevicePassWord); + + if (0 == iRet) { + WebVideoCtrl.I_Restart(szDeviceIdentify, { + success: function (xmlDoc) { + $("
重启中...
").appendTo("body"); + var oSize = getWindowSize(); + $("#restartDiv").css({ + width: oSize.width + "px", + height: oSize.height + "px", + lineHeight: oSize.height + "px", + left: 0, + top: 0 + }); + setTimeout("reconnect('" + szDeviceIdentify + "')", 20000); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 重启失败!", status, xmlDoc); + } + }); + } else { + showOPInfo(szDeviceIdentify + " 导入失败!"); + } +} + +// 重连 +function reconnect(szDeviceIdentify) { + WebVideoCtrl.I_Reconnect(szDeviceIdentify, { + success: function (xmlDoc) { + $("#restartDiv").remove(); + }, + error: function (status, xmlDoc) { + if (401 == status) {// 无插件方案,重启后session已失效,程序执行登出,从已登录设备中删除 + $("#restartDiv").remove(); + clickLogout(); + } else { + setTimeout(function () {reconnect(szDeviceIdentify);}, 5000); + } + } + }); +} + +// 开始升级 +var g_tUpgrade = 0; +function clickStartUpgrade(szDeviceIdentify) { + var szDeviceIdentify = $("#ip").val(), + szFileName = $("#upgradeFile").val(); + + if (null == szDeviceIdentify) { + return; + } + + if ("" == szFileName) { + alert("请选择升级文件!"); + return; + } + WebVideoCtrl.I2_StartUpgrade(szDeviceIdentify, szFileName).then(function(){ + g_tUpgrade = setInterval("getUpgradeStatus('" + szDeviceIdentify + "')", 1000); + },function(){ + clearInterval(g_tUpgrade); + showOPInfo(szDeviceIdentify + " 升级失败!"); + }) + // var iRet = WebVideoCtrl.I2_StartUpgrade(szDeviceIdentify, szFileName); + +} + +// 获取升级状态 +function getUpgradeStatus(szDeviceIdentify) { + var iStatus = WebVideoCtrl.I_UpgradeStatus(); + if (iStatus == 0) { + var iProcess = WebVideoCtrl.I_UpgradeProgress(); + if (iProcess < 0) { + clearInterval(g_tUpgrade); + g_tUpgrade = 0; + showOPInfo(szDeviceIdentify + " 获取进度失败!"); + return; + } else if (iProcess < 100) { + if (0 == $("#restartDiv").length) { + $("
").appendTo("body"); + var oSize = getWindowSize(); + $("#restartDiv").css({ + width: oSize.width + "px", + height: oSize.height + "px", + lineHeight: oSize.height + "px", + left: 0, + top: 0 + }); + } + $("#restartDiv").text(iProcess + "%"); + } else { + WebVideoCtrl.I_StopUpgrade(); + clearInterval(g_tUpgrade); + g_tUpgrade = 0; + + $("#restartDiv").remove(); + + WebVideoCtrl.I_Restart(szDeviceIdentify, { + success: function (xmlDoc) { + $("
重启中...
").appendTo("body"); + var oSize = getWindowSize(); + $("#restartDiv").css({ + width: oSize.width + "px", + height: oSize.height + "px", + lineHeight: oSize.height + "px", + left: 0, + top: 0 + }); + setTimeout("reconnect('" + szDeviceIdentify + "')", 20000); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 重启失败!", status, xmlDoc); + } + }); + } + } else if (iStatus == 1) { + WebVideoCtrl.I_StopUpgrade(); + showOPInfo(szDeviceIdentify + " 升级失败!"); + clearInterval(g_tUpgrade); + g_tUpgrade = 0; + } else if (iStatus == 2) { + mWebVideoCtrl.I_StopUpgrade(); + showOPInfo(szDeviceIdentify + " 语言不匹配!"); + clearInterval(g_tUpgrade); + g_tUpgrade = 0; + } else { + mWebVideoCtrl.I_StopUpgrade(); + showOPInfo(szDeviceIdentify + " 获取状态失败!"); + clearInterval(g_tUpgrade); + g_tUpgrade = 0; + } +} + +// 检查插件版本 +function clickCheckPluginVersion() { + var iRet = WebVideoCtrl.I_CheckPluginVersion(); + if (0 == iRet) { + alert("您的插件版本已经是最新的!"); + } else { + alert("检测到新的插件版本!"); + } +} + +// 远程配置库 +function clickRemoteConfig() { + var szDeviceIdentify = $("#ip").val(), + iDevicePort = parseInt($("#deviceport").val(), 10) || "", + szInfo = ""; + + if (null == szDeviceIdentify) { + return; + } + + var iRet = WebVideoCtrl.I_RemoteConfig(szDeviceIdentify, { + iDevicePort: iDevicePort, + iLan: 1 + }); + + if (-1 == iRet) { + szInfo = "调用远程配置库失败!"; + } else { + szInfo = "调用远程配置库成功!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); +} + +function clickRestoreDefault() { + var szDeviceIdentify = $("#ip").val(), + szMode = "basic"; + WebVideoCtrl.I_RestoreDefault(szDeviceIdentify, szMode, { + timeout: 30000, + success: function (xmlDoc) { + $("#restartDiv").remove(); + showOPInfo(szDeviceIdentify + " 恢复默认参数成功!"); + //恢复完成后需要重启 + WebVideoCtrl.I_Restart(szDeviceIdentify, { + success: function (xmlDoc) { + $("
重启中...
").appendTo("body"); + var oSize = getWindowSize(); + $("#restartDiv").css({ + width: oSize.width + "px", + height: oSize.height + "px", + lineHeight: oSize.height + "px", + left: 0, + top: 0 + }); + setTimeout("reconnect('" + szDeviceIdentify + "')", 20000); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 重启失败!", status, xmlDoc); + } + }); + }, + error: function (status, xmlDoc) { + showOPInfo(szDeviceIdentify + " 恢复默认参数失败!", status, xmlDoc); + } + }); +} + +function PTZZoomIn() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(10, false, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调焦+成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调焦+失败!", status, xmlDoc); + } + }); + } +} + +function PTZZoomout() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(11, false, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调焦-成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调焦-失败!", status, xmlDoc); + } + }); + } +} + +function PTZZoomStop() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(11, true, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调焦停止成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 调焦停止失败!", status, xmlDoc); + } + }); + } +} + +function PTZFocusIn() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(12, false, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦+成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦+失败!", status, xmlDoc); + } + }); + } +} + +function PTZFoucusOut() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(13, false, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦-成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦-失败!", status, xmlDoc); + } + }); + } +} + +function PTZFoucusStop() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(12, true, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦停止成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦停止失败!", status, xmlDoc); + } + }); + } +} + +function PTZIrisIn() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(14, false, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 光圈+成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 光圈+失败!", status, xmlDoc); + } + }); + } +} + +function PTZIrisOut() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(15, false, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 光圈-成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 光圈-失败!", status, xmlDoc); + } + }); + } +} + +function PTZIrisStop() { + var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); + + if (oWndInfo != null) { + WebVideoCtrl.I_PTZControl(14, true, { + iWndIndex: g_iWndIndex, + success: function (xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 光圈停止成功!"); + }, + error: function (status, xmlDoc) { + showOPInfo(oWndInfo.szDeviceIdentify + " 光圈停止失败!", status, xmlDoc); + } + }); + } +} + +// 切换模式 +function changeIPMode(iType) { + var arrPort = [0, 7071, 80]; + + $("#serverport").val(arrPort[iType]); +} + +// 获取设备IP +function clickGetDeviceIP() { + var iDeviceMode = parseInt($("#devicemode").val(), 10), + szAddress = $("#serveraddress").val(), + iPort = parseInt($("#serverport").val(), 10) || 0, + szDeviceID = $("#deviceid").val(), + szDeviceInfo = ""; + + szDeviceInfo = WebVideoCtrl.I_GetIPInfoByMode(iDeviceMode, szAddress, iPort, szDeviceID); + + if ("" == szDeviceInfo) { + showOPInfo("设备IP和端口解析失败!"); + } else { + showOPInfo("设备IP和端口解析成功!"); + + var arrTemp = szDeviceInfo.split("-"); + $("#loginip").val(arrTemp[0]); + $("#deviceport").val(arrTemp[1]); + } +} + +// 启用多边形绘制 +var g_bEnableDraw = false; +function clickEnableDraw() { + var iRet = WebVideoCtrl.I_SetPlayModeType(6);// 多边形模式 + + if (0 === iRet) { + g_bEnableDraw = true; + + showOPInfo("启用绘制成功!"); + } else { + showOPInfo("启用绘制失败!"); + } +} + +// 禁用多边形绘制 +function clickDisableDraw() { + var iRet = WebVideoCtrl.I_SetPlayModeType(0);// 预览模式 + if (0 === iRet) { + g_bEnableDraw = false; + + showOPInfo("禁用绘制成功!"); + } else { + showOPInfo("禁用绘制失败!"); + } +} + +// 添加图形 +function clickAddSnapPolygon() { + if (!g_bEnableDraw) { + return; + } + + var szId = $("#snapId").val(); + var szName = encodeString($("#snapName").val()); + + var szInfo = ""; + szInfo += ""; + szInfo += ""; + szInfo += "" + szId + ""; // [1, 32] + szInfo += "1"; + szInfo += "17"; // [MinClosed, 17] + szInfo += "4"; // [4, 17] + szInfo += "#" + szId + "#" + szName + ""; + szInfo += "false"; + szInfo += "02550"; + szInfo += ""; + szInfo += ""; + szInfo += ""; + + var iRet = WebVideoCtrl.I_SetSnapPolygonInfo(g_iWndIndex, szInfo); + if (0 === iRet) { + showOPInfo("窗口" + g_iWndIndex + "添加图形成功!"); + } else if (-1 === iRet) { + showOPInfo("窗口" + g_iWndIndex + "添加图形失败!"); + } else if (-2 === iRet) { + alert("参数错误!"); + } else if (-3 === iRet) { + alert("图形个数达到上限!"); + } else if (-4 === iRet) { + alert("图形ID已存在!"); + } + WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, 2); +} + +// 删除图形 +function clickDelSnapPolygon() { + if (!g_bEnableDraw) { + return; + } + + var szId = $("#snapId").val(); + + var iIndex = getSnapPolygon(szId); + if (iIndex != -1) { + var oXML = getSnapPolygon(); + $(oXML).find("SnapPolygon").eq(iIndex).remove(); + + var szInfo = toXMLStr(oXML); + + WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex); + WebVideoCtrl.I2_SetSnapPolygonInfo(g_iWndIndex, szInfo); + WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, 3); + } else { + alert("图形ID不存在!"); + } +} + +// 编辑图形 +function clickEditSnapPolygon() { + if (!g_bEnableDraw) { + return; + } + + var iRet = WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, 3); + if (0 === iRet) { + showOPInfo("窗口" + g_iWndIndex + "编辑图形成功!"); + } else { + showOPInfo("窗口" + g_iWndIndex + "编辑图形失败!"); + } +} + +// 停止编辑 +function clickStopSnapPolygon() { + if (!g_bEnableDraw) { + return; + } + + var iRet = WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, -1); + if (0 === iRet) { + showOPInfo("窗口" + g_iWndIndex + "停止编辑成功!"); + } else { + showOPInfo("窗口" + g_iWndIndex + "停止编辑失败!"); + } +} + +function getSnapPolygon(szId) { + var szInfo = WebVideoCtrl.I_GetSnapPolygonInfo(g_iWndIndex); + var oXML = loadXML(szInfo); + if (typeof szId === "undefined") { + return oXML; + } else { + var iIndex = -1; + + var aNodeList = $(oXML).find("SnapPolygon"); + if (aNodeList.length > 0) { + $.each(aNodeList, function (i) { + if ($(this).find("id").text() === szId) { + iIndex = i; + return false; + } + }); + } + + return iIndex; + } +} + +// 获取图形,保存到自己数据库中 +function clickGetSnapPolygon() { + if (!g_bEnableDraw) { + return; + } + + var szInfo = WebVideoCtrl.I_GetSnapPolygonInfo(g_iWndIndex); + + alert(szInfo); +} + +// 设置图形,页面打开时可以设置以前设置过的图形 +function clickSetSnapPolygon() { + if (!g_bEnableDraw) { + return; + } + + WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex); + + var szInfo = ""; + szInfo += ""; + szInfo += ""; + szInfo += "1"; + szInfo += "1"; + szInfo += "#1#设置1"; + szInfo += "true"; + szInfo += "02550"; + szInfo += ""; + szInfo += "0.7379030.229730"; + szInfo += "0.9475810.804054"; + szInfo += "0.3629030.777027"; + szInfo += ""; + szInfo += ""; + szInfo += ""; + szInfo += "2"; + szInfo += "1"; + szInfo += "#2#设置2"; + szInfo += "true"; + szInfo += "02550"; + szInfo += ""; + szInfo += "0.4516130.216216"; + szInfo += "0.4475810.729730"; + szInfo += "0.1169350.554054"; + szInfo += ""; + szInfo += ""; + szInfo += ""; + + var iRet = WebVideoCtrl.I2_SetSnapPolygonInfo(g_iWndIndex, szInfo); + if (0 === iRet) { + showOPInfo("窗口" + g_iWndIndex + "设置图形成功!"); + } else if (-1 === iRet) { + showOPInfo("窗口" + g_iWndIndex + "设置图形失败!"); + } else if (-2 === iRet) { + alert("参数错误!"); + } else if (-3 === iRet) { + alert("图形个数达到上限!"); + } else if (-4 === iRet) { + alert("图形ID已存在!"); + } +} + +// 清空图形 +function clickDelAllSnapPolygon() { + if (!g_bEnableDraw) { + return; + } + + var iRet = WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex); + if (0 === iRet) { + showOPInfo("窗口" + g_iWndIndex + "清空图形成功!"); + } else { + showOPInfo("窗口" + g_iWndIndex + "清空图形失败!"); + } +} + +// 设备抓图 +function clickDeviceCapturePic() { + var szInfo = ""; + var szDeviceIdentify = $("#ip").val(); + var bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false; + var iChannelID = parseInt($("#channels").val(), 10); + var iResolutionWidth = parseInt($("#resolutionWidth").val(), 10); + var iResolutionHeight = parseInt($("#resolutionHeight").val(), 10); + + if (null == szDeviceIdentify) { + return; + } + + if (bZeroChannel) {// 零通道不支持设备抓图 + return; + } + + var szPicName = szDeviceIdentify + "_" + iChannelID + "_" + new Date().getTime(); + var iRet = WebVideoCtrl.I_DeviceCapturePic(szDeviceIdentify, iChannelID, szPicName, { + bDateDir: true, //是否生成日期文件 + iResolutionWidth: iResolutionWidth, + iResolutionHeight: iResolutionHeight + }); + + if (0 == iRet) { + szInfo = "设备抓图成功!"; + } else { + szInfo = "设备抓图失败!"; + } + showOPInfo(szDeviceIdentify + " " + szInfo); +} + +function loadXML(szXml) { + if(null == szXml || "" == szXml) { + return null; + } + + var oXmlDoc = null; + + if (window.DOMParser) { + var oParser = new DOMParser(); + oXmlDoc = oParser.parseFromString(szXml, "text/xml"); + } else { + oXmlDoc = new ActiveXObject("Microsoft.XMLDOM"); + oXmlDoc.async = false; + oXmlDoc.loadXML(szXml); + } + + return oXmlDoc; +} + +function toXMLStr(oXmlDoc) { + var szXmlDoc = ""; + + try { + var oSerializer = new XMLSerializer(); + szXmlDoc = oSerializer.serializeToString(oXmlDoc); + } catch (e) { + try { + szXmlDoc = oXmlDoc.xml; + } catch (e) { + return ""; + } + } + if (szXmlDoc.indexOf("" + szXmlDoc; + } + + return szXmlDoc; +} + +function encodeString(str) { + if (str) { + return str.replace(/&/g, '&').replace(//g, '>'); + } else { + return ""; + } +} \ No newline at end of file diff --git a/ruoyi-ui/public/demo/jquery-1.7.1.min.js b/ruoyi-ui/public/demo/jquery-1.7.1.min.js new file mode 100644 index 0000000..835d77d --- /dev/null +++ b/ruoyi-ui/public/demo/jquery-1.7.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,t2=/(trident.*rv:)([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i0&& b[1].indexOf("trident")>-1){b[1]="msie"}return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/ruoyi-ui/public/demo/jsPlugin-1.2.0.min.js b/ruoyi-ui/public/demo/jsPlugin-1.2.0.min.js new file mode 100644 index 0000000..94ed0df --- /dev/null +++ b/ruoyi-ui/public/demo/jsPlugin-1.2.0.min.js @@ -0,0 +1,14648 @@ +(function e(t, i) { + if (typeof exports === "object" && typeof module === "object") module.exports = i(); else if (typeof define === "function" && define.amd) define([], i); else { + var n = i(); + for (var r in n) (typeof exports === "object" ? exports : t)[r] = n[r] + } +})(window, function () { + return function (i) { + var n = {}; + + function r(e) { + if (n[e]) { + return n[e].exports + } + var t = n[e] = {i: e, l: false, exports: {}}; + i[e].call(t.exports, t, t.exports, r); + t.l = true; + return t.exports + } + + r.m = i; + r.c = n; + r.d = function (e, t, i) { + if (!r.o(e, t)) { + Object.defineProperty(e, t, {enumerable: true, get: i}) + } + }; + r.r = function (e) { + if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + Object.defineProperty(e, Symbol.toStringTag, {value: "Module"}) + } + Object.defineProperty(e, "__esModule", {value: true}) + }; + r.t = function (t, e) { + if (e & 1) t = r(t); + if (e & 8) return t; + if (e & 4 && typeof t === "object" && t && t.__esModule) return t; + var i = Object.create(null); + r.r(i); + Object.defineProperty(i, "default", {enumerable: true, value: t}); + if (e & 2 && typeof t != "string") for (var n in t) r.d(i, n, function (e) { + return t[e] + }.bind(null, n)); + return i + }; + r.n = function (t) { + var e = t && t.__esModule ? function e() { + return t["default"] + } : function e() { + return t + }; + r.d(e, "a", e); + return e + }; + r.o = function (e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }; + r.p = ""; + return r(r.s = 5) + }([function (e, t, i) { + "use strict"; + Object.defineProperty(t, "__esModule", {value: true}); + var n = function () { + function n(e, t) { + for (var i = 0; i < t.length; i++) { + var n = t[i]; + n.enumerable = n.enumerable || false; + n.configurable = true; + if ("value" in n) n.writable = true; + Object.defineProperty(e, n.key, n) + } + } + + return function (e, t, i) { + if (t) n(e.prototype, t); + if (i) n(e, i); + return e + } + }(); + + function r(e, t) { + if (!(e instanceof t)) { + throw new TypeError("Cannot call a class as a function") + } + } + + var o = function () { + function e() { + r(this, e); + this._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + } + + n(e, [{ + key: "$", value: function e(t) { + var i = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/; + var n = /^(?:\s*(<[\w\W]+>)[^>]*|.([\w-]*))$/; + if (i.test(t)) { + var r = i.exec(t); + return document.getElementById(r[2]) + } else if (n.test(t)) { + var o = n.exec(t); + var a = document.getElementsByTagName("*"); + var s = []; + for (var l = 0, u = a.length; l < u; l++) { + if (a[l].className.match(new RegExp("(\\s|^)" + o[2] + "(\\s|$)"))) { + s.push(a[l]) + } + } + return s + } + } + }, { + key: "dateFormat", value: function e(t, i) { + var n = { + "M+": t.getMonth() + 1, + "d+": t.getDate(), + "h+": t.getHours(), + "m+": t.getMinutes(), + "s+": t.getSeconds(), + "q+": Math.floor((t.getMonth() + 3) / 3), + S: t.getMilliseconds() + }; + if (/(y+)/.test(i)) { + i = i.replace(RegExp.$1, (t.getFullYear() + "").substr(4 - RegExp.$1.length)) + } + for (var r in n) { + if (new RegExp("(" + r + ")").test(i)) { + i = i.replace(RegExp.$1, RegExp.$1.length === 1 ? n[r] : ("00" + n[r]).substr(("" + n[r]).length)) + } + } + return i + } + }, { + key: "downloadFile", value: function e(t, i) { + var n = t; + if (!(t instanceof Blob || t instanceof File)) { + n = new Blob([t]) + } + var r = window.URL.createObjectURL(n); + var o = window.document.createElement("a"); + o.href = r; + o.download = i; + var a = document.createEvent("MouseEvents"); + a.initEvent("click", true, true); + o.dispatchEvent(a) + } + }, { + key: "createxmlDoc", value: function e() { + var t; + var i = ["MSXML2.DOMDocument", "MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0", "Microsoft.XmlDom"]; + for (var n = 0, r = i.length; n < r; n++) { + try { + t = new ActiveXObject(i[n]); + break + } catch (e) { + t = document.implementation.createDocument("", "", null); + break + } + } + t.async = "false"; + return t + } + }, { + key: "parseXmlFromStr", value: function e(t) { + if (null === t || "" === t) { + return null + } + var i = this.createxmlDoc(); + if (navigator.appName === "Netscape" || navigator.appName === "Opera") { + var n = new DOMParser; + i = n.parseFromString(t, "text/xml") + } else { + i.loadXML(t) + } + return i + } + }, { + key: "encode", value: function e(t) { + var i = ""; + var n; + var r; + var o; + var a; + var s; + var l; + var u; + var f = 0; + t = this._utf8_encode(t); + while (f < t.length) { + n = t.charCodeAt(f++); + r = t.charCodeAt(f++); + o = t.charCodeAt(f++); + a = n >> 2; + s = (n & 3) << 4 | r >> 4; + l = (r & 15) << 2 | o >> 6; + u = o & 63; + if (isNaN(r)) { + l = u = 64 + } else if (isNaN(o)) { + u = 64 + } + i = i + this._keyStr.charAt(a) + this._keyStr.charAt(s) + this._keyStr.charAt(l) + this._keyStr.charAt(u) + } + return i + } + }, { + key: "decode", value: function e(t) { + var i = ""; + var n; + var r; + var o; + var a; + var s; + var l; + var u; + var f = 0; + t = t.replace(/[^A-Za-z0-9+/=]/g, ""); + while (f < t.length) { + a = this._keyStr.indexOf(t.charAt(f++)); + s = this._keyStr.indexOf(t.charAt(f++)); + l = this._keyStr.indexOf(t.charAt(f++)); + u = this._keyStr.indexOf(t.charAt(f++)); + n = a << 2 | s >> 4; + r = (s & 15) << 4 | l >> 2; + o = (l & 3) << 6 | u; + i = i + String.fromCharCode(n); + if (l !== 64) { + i = i + String.fromCharCode(r) + } + if (u !== 64) { + i = i + String.fromCharCode(o) + } + } + i = this._utf8_decode(i); + return i + } + }, { + key: "_utf8_encode", value: function e(t) { + t = t.replace(/\r\n/g, "\n"); + var i = ""; + for (var n = 0; n < t.length; n++) { + var r = t.charCodeAt(n); + if (r < 128) { + i += String.fromCharCode(r) + } else if (r > 127 && r < 2048) { + i += String.fromCharCode(r >> 6 | 192); + i += String.fromCharCode(r & 63 | 128) + } else { + i += String.fromCharCode(r >> 12 | 224); + i += String.fromCharCode(r >> 6 & 63 | 128); + i += String.fromCharCode(r & 63 | 128) + } + } + return i + } + }, { + key: "_utf8_decode", value: function e(t) { + var i = ""; + var n = 0; + var r = 0; + var o = 0; + while (n < t.length) { + r = t.charCodeAt(n); + if (r < 128) { + i += String.fromCharCode(r); + n++ + } else if (r > 191 && r < 224) { + o = t.charCodeAt(n + 1); + i += String.fromCharCode((r & 31) << 6 | o & 63); + n += 2 + } else { + o = t.charCodeAt(n + 1); + var a = t.charCodeAt(n + 2); + i += String.fromCharCode((r & 15) << 12 | (o & 63) << 6 | a & 63); + n += 3 + } + } + return i + } + }, { + key: "isFirefox", value: function e() { + var t = false; + var i = navigator.userAgent.toLowerCase(); + var n = ""; + var r = -1; + if (i.match(/firefox\/([\d.]+)/)) { + n = i.match(/firefox\/([\d.]+)/)[1]; + r = parseInt(n.split(".")[0], 10); + if (r > -1) { + t = true + } + } + return t + } + }, { + key: "isSafari", value: function e() { + var t = false; + var i = navigator.userAgent.toLowerCase(); + var n = ""; + var r = -1; + if (i.match(/version\/([\d.]+).safari./)) { + n = i.match(/version\/([\d.]+).safari./)[1]; + r = parseInt(n.split(".")[0], 10); + if (r > -1) { + t = true + } + } + return t + } + }, { + key: "isEdge", value: function e() { + return navigator.userAgent.toLowerCase().indexOf("edge") > -1 + } + }, { + key: "isIOS", value: function e() { + var t = navigator.userAgent; + var i = !!t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); + return i + } + }]); + return e + }(); + var a = t.oTool = new o + }, function (e, t, i) { + var n = i(8); + var r = i(9); + var o = r; + o.v1 = n; + o.v4 = r; + e.exports = o + }, function (e, t) { + var i = typeof crypto != "undefined" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != "undefined" && typeof window.msCrypto.getRandomValues == "function" && msCrypto.getRandomValues.bind(msCrypto); + if (i) { + var n = new Uint8Array(16); + e.exports = function e() { + i(n); + return n + } + } else { + var r = new Array(16); + e.exports = function e() { + for (var t = 0, i; t < 16; t++) { + if ((t & 3) === 0) i = Math.random() * 4294967296; + r[t] = i >>> ((t & 3) << 3) & 255 + } + return r + } + } + }, function (e, t) { + var r = []; + for (var i = 0; i < 256; ++i) { + r[i] = (i + 256).toString(16).substr(1) + } + + function n(e, t) { + var i = t || 0; + var n = r; + return [n[e[i++]], n[e[i++]], n[e[i++]], n[e[i++]], "-", n[e[i++]], n[e[i++]], "-", n[e[i++]], n[e[i++]], "-", n[e[i++]], n[e[i++]], "-", n[e[i++]], n[e[i++]], n[e[i++]], n[e[i++]], n[e[i++]], n[e[i++]]].join("") + } + + e.exports = n + }, function (ri, oi, e) { + var ai, si; + /*! + * jQuery JavaScript Library v3.5.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2020-04-10T15:07Z + */ + (function (e, t) { + "use strict"; + if (true && typeof ri.exports === "object") { + ri.exports = e.document ? t(e, true) : function (e) { + if (!e.document) { + throw new Error("jQuery requires a window with a document") + } + return t(e) + } + } else { + t(e) + } + })(typeof window !== "undefined" ? window : this, function (P, e) { + "use strict"; + var t = []; + var n = Object.getPrototypeOf; + var s = t.slice; + var v = t.flat ? function (e) { + return t.flat.call(e) + } : function (e) { + return t.concat.apply([], e) + }; + var l = t.push; + var r = t.indexOf; + var i = {}; + var o = i.toString; + var y = i.hasOwnProperty; + var a = y.toString; + var u = a.call(Object); + var m = {}; + var g = function e(t) { + return typeof t === "function" && typeof t.nodeType !== "number" + }; + var S = function e(t) { + return t != null && t === t.window + }; + var C = P.document; + var f = {type: true, src: true, nonce: true, noModule: true}; + + function b(e, t, i) { + i = i || C; + var n, r, o = i.createElement("script"); + o.text = e; + if (t) { + for (n in f) { + r = t[n] || t.getAttribute && t.getAttribute(n); + if (r) { + o.setAttribute(n, r) + } + } + } + i.head.appendChild(o).parentNode.removeChild(o) + } + + function w(e) { + if (e == null) { + return e + "" + } + return typeof e === "object" || typeof e === "function" ? i[o.call(e)] || "object" : typeof e + } + + var h = "3.5.0", x = function (e, t) { + return new x.fn.init(e, t) + }; + x.fn = x.prototype = { + jquery: h, constructor: x, length: 0, toArray: function () { + return s.call(this) + }, get: function (e) { + if (e == null) { + return s.call(this) + } + return e < 0 ? this[e + this.length] : this[e] + }, pushStack: function (e) { + var t = x.merge(this.constructor(), e); + t.prevObject = this; + return t + }, each: function (e) { + return x.each(this, e) + }, map: function (i) { + return this.pushStack(x.map(this, function (e, t) { + return i.call(e, t, e) + })) + }, slice: function () { + return this.pushStack(s.apply(this, arguments)) + }, first: function () { + return this.eq(0) + }, last: function () { + return this.eq(-1) + }, even: function () { + return this.pushStack(x.grep(this, function (e, t) { + return (t + 1) % 2 + })) + }, odd: function () { + return this.pushStack(x.grep(this, function (e, t) { + return t % 2 + })) + }, eq: function (e) { + var t = this.length, i = +e + (e < 0 ? t : 0); + return this.pushStack(i >= 0 && i < t ? [this[i]] : []) + }, end: function () { + return this.prevObject || this.constructor() + }, push: l, sort: t.sort, splice: t.splice + }; + x.extend = x.fn.extend = function () { + var e, t, i, n, r, o, a = arguments[0] || {}, s = 1, l = arguments.length, u = false; + if (typeof a === "boolean") { + u = a; + a = arguments[s] || {}; + s++ + } + if (typeof a !== "object" && !g(a)) { + a = {} + } + if (s === l) { + a = this; + s-- + } + for (; s < l; s++) { + if ((e = arguments[s]) != null) { + for (t in e) { + n = e[t]; + if (t === "__proto__" || a === n) { + continue + } + if (u && n && (x.isPlainObject(n) || (r = Array.isArray(n)))) { + i = a[t]; + if (r && !Array.isArray(i)) { + o = [] + } else if (!r && !x.isPlainObject(i)) { + o = {} + } else { + o = i + } + r = false; + a[t] = x.extend(u, o, n) + } else if (n !== undefined) { + a[t] = n + } + } + } + } + return a + }; + x.extend({ + expando: "jQuery" + (h + Math.random()).replace(/\D/g, ""), isReady: true, error: function (e) { + throw new Error(e) + }, noop: function () { + }, isPlainObject: function (e) { + var t, i; + if (!e || o.call(e) !== "[object Object]") { + return false + } + t = n(e); + if (!t) { + return true + } + i = y.call(t, "constructor") && t.constructor; + return typeof i === "function" && a.call(i) === u + }, isEmptyObject: function (e) { + var t; + for (t in e) { + return false + } + return true + }, globalEval: function (e, t, i) { + b(e, {nonce: t && t.nonce}, i) + }, each: function (e, t) { + var i, n = 0; + if (c(e)) { + i = e.length; + for (; n < i; n++) { + if (t.call(e[n], n, e[n]) === false) { + break + } + } + } else { + for (n in e) { + if (t.call(e[n], n, e[n]) === false) { + break + } + } + } + return e + }, makeArray: function (e, t) { + var i = t || []; + if (e != null) { + if (c(Object(e))) { + x.merge(i, typeof e === "string" ? [e] : e) + } else { + l.call(i, e) + } + } + return i + }, inArray: function (e, t, i) { + return t == null ? -1 : r.call(t, e, i) + }, merge: function (e, t) { + var i = +t.length, n = 0, r = e.length; + for (; n < i; n++) { + e[r++] = t[n] + } + e.length = r; + return e + }, grep: function (e, t, i) { + var n, r = [], o = 0, a = e.length, s = !i; + for (; o < a; o++) { + n = !t(e[o], o); + if (n !== s) { + r.push(e[o]) + } + } + return r + }, map: function (e, t, i) { + var n, r, o = 0, a = []; + if (c(e)) { + n = e.length; + for (; o < n; o++) { + r = t(e[o], o, i); + if (r != null) { + a.push(r) + } + } + } else { + for (o in e) { + r = t(e[o], o, i); + if (r != null) { + a.push(r) + } + } + } + return v(a) + }, guid: 1, support: m + }); + if (typeof Symbol === "function") { + x.fn[Symbol.iterator] = t[Symbol.iterator] + } + x.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { + i["[object " + t + "]"] = t.toLowerCase() + }); + + function c(e) { + var t = !!e && "length" in e && e.length, i = w(e); + if (g(e) || S(e)) { + return false + } + return i === "array" || t === 0 || typeof t === "number" && t > 0 && t - 1 in e + } + + var d = + /*! + * Sizzle CSS Selector Engine v2.3.5 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2020-03-14 + */ + function (i) { + var e, d, b, o, r, p, h, v, w, l, u, _, P, a, C, y, s, f, m, x = "sizzle" + 1 * new Date, + c = i.document, T = 0, n = 0, g = le(), S = le(), k = le(), D = le(), M = function (e, t) { + if (e === t) { + u = true + } + return 0 + }, R = {}.hasOwnProperty, t = [], E = t.pop, I = t.push, z = t.push, A = t.slice, + O = function (e, t) { + var i = 0, n = e.length; + for (; i < n; i++) { + if (e[i] === t) { + return i + } + } + return -1 + }, + F = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + "ismap|loop|multiple|open|readonly|required|scoped", + B = "[\\x20\\t\\r\\n\\f]", + L = "(?:\\\\[\\da-fA-F]{1,6}" + B + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + q = "\\[" + B + "*(" + L + ")(?:" + B + "*([*^$|!~]?=)" + B + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + B + "*\\]", + N = ":(" + L + ")(?:\\((" + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + "((?:\\\\.|[^\\\\()[\\]]|" + q + ")*)|" + ".*" + ")\\)|)", + H = new RegExp(B + "+", "g"), + j = new RegExp("^" + B + "+|((?:^|[^\\\\])(?:\\\\.)*)" + B + "+$", "g"), + U = new RegExp("^" + B + "*," + B + "*"), + W = new RegExp("^" + B + "*([>+~]|" + B + ")" + B + "*"), G = new RegExp(B + "|>"), + V = new RegExp(N), Y = new RegExp("^" + L + "$"), X = { + ID: new RegExp("^#(" + L + ")"), + CLASS: new RegExp("^\\.(" + L + ")"), + TAG: new RegExp("^(" + L + "|[*])"), + ATTR: new RegExp("^" + q), + PSEUDO: new RegExp("^" + N), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + B + "*(even|odd|(([+-]|)(\\d*)n|)" + B + "*(?:([+-]|)" + B + "*(\\d+)|))" + B + "*\\)|)", "i"), + bool: new RegExp("^(?:" + F + ")$", "i"), + needsContext: new RegExp("^" + B + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + B + "*((?:-\\d)?\\d*)" + B + "*\\)|)(?=[^-]|$)", "i") + }, J = /HTML$/i, K = /^(?:input|select|textarea|button)$/i, $ = /^h\d$/i, + Z = /^[^{]+\{\s*\[native \w/, Q = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ee = /[+~]/, + te = new RegExp("\\\\[\\da-fA-F]{1,6}" + B + "?|\\\\([^\\r\\n\\f])", "g"), + ie = function (e, t) { + var i = "0x" + e.slice(1) - 65536; + return t ? t : i < 0 ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, i & 1023 | 56320) + }, ne = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, re = function (e, t) { + if (t) { + if (e === "\0") { + return "�" + } + return e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " + } + return "\\" + e + }, oe = function () { + _() + }, ae = be(function (e) { + return e.disabled === true && e.nodeName.toLowerCase() === "fieldset" + }, {dir: "parentNode", next: "legend"}); + try { + z.apply(t = A.call(c.childNodes), c.childNodes); + t[c.childNodes.length].nodeType + } catch (e) { + z = { + apply: t.length ? function (e, t) { + I.apply(e, A.call(t)) + } : function (e, t) { + var i = e.length, n = 0; + while (e[i++] = t[n++]) { + } + e.length = i - 1 + } + } + } + + function se(t, e, i, n) { + var r, o, a, s, l, u, f, h = e && e.ownerDocument, c = e ? e.nodeType : 9; + i = i || []; + if (typeof t !== "string" || !t || c !== 1 && c !== 9 && c !== 11) { + return i + } + if (!n) { + _(e); + e = e || P; + if (C) { + if (c !== 11 && (l = Q.exec(t))) { + if (r = l[1]) { + if (c === 9) { + if (a = e.getElementById(r)) { + if (a.id === r) { + i.push(a); + return i + } + } else { + return i + } + } else { + if (h && (a = h.getElementById(r)) && m(e, a) && a.id === r) { + i.push(a); + return i + } + } + } else if (l[2]) { + z.apply(i, e.getElementsByTagName(t)); + return i + } else if ((r = l[3]) && d.getElementsByClassName && e.getElementsByClassName) { + z.apply(i, e.getElementsByClassName(r)); + return i + } + } + if (d.qsa && !D[t + " "] && (!y || !y.test(t)) && (c !== 1 || e.nodeName.toLowerCase() !== "object")) { + f = t; + h = e; + if (c === 1 && (G.test(t) || W.test(t))) { + h = ee.test(t) && me(e.parentNode) || e; + if (h !== e || !d.scope) { + if (s = e.getAttribute("id")) { + s = s.replace(ne, re) + } else { + e.setAttribute("id", s = x) + } + } + u = p(t); + o = u.length; + while (o--) { + u[o] = (s ? "#" + s : ":scope") + " " + Se(u[o]) + } + f = u.join(",") + } + try { + z.apply(i, h.querySelectorAll(f)); + return i + } catch (e) { + D(t, true) + } finally { + if (s === x) { + e.removeAttribute("id") + } + } + } + } + } + return v(t.replace(j, "$1"), e, i, n) + } + + function le() { + var i = []; + + function n(e, t) { + if (i.push(e + " ") > b.cacheLength) { + delete n[i.shift()] + } + return n[e + " "] = t + } + + return n + } + + function ue(e) { + e[x] = true; + return e + } + + function fe(e) { + var t = P.createElement("fieldset"); + try { + return !!e(t) + } catch (e) { + return false + } finally { + if (t.parentNode) { + t.parentNode.removeChild(t) + } + t = null + } + } + + function he(e, t) { + var i = e.split("|"), n = i.length; + while (n--) { + b.attrHandle[i[n]] = t + } + } + + function ce(e, t) { + var i = t && e, n = i && e.nodeType === 1 && t.nodeType === 1 && e.sourceIndex - t.sourceIndex; + if (n) { + return n + } + if (i) { + while (i = i.nextSibling) { + if (i === t) { + return -1 + } + } + } + return e ? 1 : -1 + } + + function de(i) { + return function (e) { + var t = e.nodeName.toLowerCase(); + return t === "input" && e.type === i + } + } + + function pe(i) { + return function (e) { + var t = e.nodeName.toLowerCase(); + return (t === "input" || t === "button") && e.type === i + } + } + + function ve(t) { + return function (e) { + if ("form" in e) { + if (e.parentNode && e.disabled === false) { + if ("label" in e) { + if ("label" in e.parentNode) { + return e.parentNode.disabled === t + } else { + return e.disabled === t + } + } + return e.isDisabled === t || e.isDisabled !== !t && ae(e) === t + } + return e.disabled === t + } else if ("label" in e) { + return e.disabled === t + } + return false + } + } + + function ye(a) { + return ue(function (o) { + o = +o; + return ue(function (e, t) { + var i, n = a([], e.length, o), r = n.length; + while (r--) { + if (e[i = n[r]]) { + e[i] = !(t[i] = e[i]) + } + } + }) + }) + } + + function me(e) { + return e && typeof e.getElementsByTagName !== "undefined" && e + } + + d = se.support = {}; + r = se.isXML = function (e) { + var t = e.namespaceURI, i = (e.ownerDocument || e).documentElement; + return !J.test(t || i && i.nodeName || "HTML") + }; + _ = se.setDocument = function (e) { + var t, i, n = e ? e.ownerDocument || e : c; + if (n == P || n.nodeType !== 9 || !n.documentElement) { + return P + } + P = n; + a = P.documentElement; + C = !r(P); + if (c != P && (i = P.defaultView) && i.top !== i) { + if (i.addEventListener) { + i.addEventListener("unload", oe, false) + } else if (i.attachEvent) { + i.attachEvent("onunload", oe) + } + } + d.scope = fe(function (e) { + a.appendChild(e).appendChild(P.createElement("div")); + return typeof e.querySelectorAll !== "undefined" && !e.querySelectorAll(":scope fieldset div").length + }); + d.attributes = fe(function (e) { + e.className = "i"; + return !e.getAttribute("className") + }); + d.getElementsByTagName = fe(function (e) { + e.appendChild(P.createComment("")); + return !e.getElementsByTagName("*").length + }); + d.getElementsByClassName = Z.test(P.getElementsByClassName); + d.getById = fe(function (e) { + a.appendChild(e).id = x; + return !P.getElementsByName || !P.getElementsByName(x).length + }); + if (d.getById) { + b.filter["ID"] = function (e) { + var t = e.replace(te, ie); + return function (e) { + return e.getAttribute("id") === t + } + }; + b.find["ID"] = function (e, t) { + if (typeof t.getElementById !== "undefined" && C) { + var i = t.getElementById(e); + return i ? [i] : [] + } + } + } else { + b.filter["ID"] = function (e) { + var i = e.replace(te, ie); + return function (e) { + var t = typeof e.getAttributeNode !== "undefined" && e.getAttributeNode("id"); + return t && t.value === i + } + }; + b.find["ID"] = function (e, t) { + if (typeof t.getElementById !== "undefined" && C) { + var i, n, r, o = t.getElementById(e); + if (o) { + i = o.getAttributeNode("id"); + if (i && i.value === e) { + return [o] + } + r = t.getElementsByName(e); + n = 0; + while (o = r[n++]) { + i = o.getAttributeNode("id"); + if (i && i.value === e) { + return [o] + } + } + } + return [] + } + } + } + b.find["TAG"] = d.getElementsByTagName ? function (e, t) { + if (typeof t.getElementsByTagName !== "undefined") { + return t.getElementsByTagName(e) + } else if (d.qsa) { + return t.querySelectorAll(e) + } + } : function (e, t) { + var i, n = [], r = 0, o = t.getElementsByTagName(e); + if (e === "*") { + while (i = o[r++]) { + if (i.nodeType === 1) { + n.push(i) + } + } + return n + } + return o + }; + b.find["CLASS"] = d.getElementsByClassName && function (e, t) { + if (typeof t.getElementsByClassName !== "undefined" && C) { + return t.getElementsByClassName(e) + } + }; + s = []; + y = []; + if (d.qsa = Z.test(P.querySelectorAll)) { + fe(function (e) { + var t; + a.appendChild(e).innerHTML = "" + ""; + if (e.querySelectorAll("[msallowcapture^='']").length) { + y.push("[*^$]=" + B + "*(?:''|\"\")") + } + if (!e.querySelectorAll("[selected]").length) { + y.push("\\[" + B + "*(?:value|" + F + ")") + } + if (!e.querySelectorAll("[id~=" + x + "-]").length) { + y.push("~=") + } + t = P.createElement("input"); + t.setAttribute("name", ""); + e.appendChild(t); + if (!e.querySelectorAll("[name='']").length) { + y.push("\\[" + B + "*name" + B + "*=" + B + "*(?:''|\"\")") + } + if (!e.querySelectorAll(":checked").length) { + y.push(":checked") + } + if (!e.querySelectorAll("a#" + x + "+*").length) { + y.push(".#.+[+~]") + } + e.querySelectorAll("\\\f"); + y.push("[\\r\\n\\f]") + }); + fe(function (e) { + e.innerHTML = "" + ""; + var t = P.createElement("input"); + t.setAttribute("type", "hidden"); + e.appendChild(t).setAttribute("name", "D"); + if (e.querySelectorAll("[name=d]").length) { + y.push("name" + B + "*[*^$|!~]?=") + } + if (e.querySelectorAll(":enabled").length !== 2) { + y.push(":enabled", ":disabled") + } + a.appendChild(e).disabled = true; + if (e.querySelectorAll(":disabled").length !== 2) { + y.push(":enabled", ":disabled") + } + e.querySelectorAll("*,:x"); + y.push(",.*:") + }) + } + if (d.matchesSelector = Z.test(f = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) { + fe(function (e) { + d.disconnectedMatch = f.call(e, "*"); + f.call(e, "[s!='']:x"); + s.push("!=", N) + }) + } + y = y.length && new RegExp(y.join("|")); + s = s.length && new RegExp(s.join("|")); + t = Z.test(a.compareDocumentPosition); + m = t || Z.test(a.contains) ? function (e, t) { + var i = e.nodeType === 9 ? e.documentElement : e, n = t && t.parentNode; + return e === n || !!(n && n.nodeType === 1 && (i.contains ? i.contains(n) : e.compareDocumentPosition && e.compareDocumentPosition(n) & 16)) + } : function (e, t) { + if (t) { + while (t = t.parentNode) { + if (t === e) { + return true + } + } + } + return false + }; + M = t ? function (e, t) { + if (e === t) { + u = true; + return 0 + } + var i = !e.compareDocumentPosition - !t.compareDocumentPosition; + if (i) { + return i + } + i = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1; + if (i & 1 || !d.sortDetached && t.compareDocumentPosition(e) === i) { + if (e == P || e.ownerDocument == c && m(c, e)) { + return -1 + } + if (t == P || t.ownerDocument == c && m(c, t)) { + return 1 + } + return l ? O(l, e) - O(l, t) : 0 + } + return i & 4 ? -1 : 1 + } : function (e, t) { + if (e === t) { + u = true; + return 0 + } + var i, n = 0, r = e.parentNode, o = t.parentNode, a = [e], s = [t]; + if (!r || !o) { + return e == P ? -1 : t == P ? 1 : r ? -1 : o ? 1 : l ? O(l, e) - O(l, t) : 0 + } else if (r === o) { + return ce(e, t) + } + i = e; + while (i = i.parentNode) { + a.unshift(i) + } + i = t; + while (i = i.parentNode) { + s.unshift(i) + } + while (a[n] === s[n]) { + n++ + } + return n ? ce(a[n], s[n]) : a[n] == c ? -1 : s[n] == c ? 1 : 0 + }; + return P + }; + se.matches = function (e, t) { + return se(e, null, null, t) + }; + se.matchesSelector = function (e, t) { + _(e); + if (d.matchesSelector && C && !D[t + " "] && (!s || !s.test(t)) && (!y || !y.test(t))) { + try { + var i = f.call(e, t); + if (i || d.disconnectedMatch || e.document && e.document.nodeType !== 11) { + return i + } + } catch (e) { + D(t, true) + } + } + return se(t, P, null, [e]).length > 0 + }; + se.contains = function (e, t) { + if ((e.ownerDocument || e) != P) { + _(e) + } + return m(e, t) + }; + se.attr = function (e, t) { + if ((e.ownerDocument || e) != P) { + _(e) + } + var i = b.attrHandle[t.toLowerCase()], + n = i && R.call(b.attrHandle, t.toLowerCase()) ? i(e, t, !C) : undefined; + return n !== undefined ? n : d.attributes || !C ? e.getAttribute(t) : (n = e.getAttributeNode(t)) && n.specified ? n.value : null + }; + se.escape = function (e) { + return (e + "").replace(ne, re) + }; + se.error = function (e) { + throw new Error("Syntax error, unrecognized expression: " + e) + }; + se.uniqueSort = function (e) { + var t, i = [], n = 0, r = 0; + u = !d.detectDuplicates; + l = !d.sortStable && e.slice(0); + e.sort(M); + if (u) { + while (t = e[r++]) { + if (t === e[r]) { + n = i.push(r) + } + } + while (n--) { + e.splice(i[n], 1) + } + } + l = null; + return e + }; + o = se.getText = function (e) { + var t, i = "", n = 0, r = e.nodeType; + if (!r) { + while (t = e[n++]) { + i += o(t) + } + } else if (r === 1 || r === 9 || r === 11) { + if (typeof e.textContent === "string") { + return e.textContent + } else { + for (e = e.firstChild; e; e = e.nextSibling) { + i += o(e) + } + } + } else if (r === 3 || r === 4) { + return e.nodeValue + } + return i + }; + b = se.selectors = { + cacheLength: 50, + createPseudo: ue, + match: X, + attrHandle: {}, + find: {}, + relative: { + ">": {dir: "parentNode", first: true}, + " ": {dir: "parentNode"}, + "+": {dir: "previousSibling", first: true}, + "~": {dir: "previousSibling"} + }, + preFilter: { + ATTR: function (e) { + e[1] = e[1].replace(te, ie); + e[3] = (e[3] || e[4] || e[5] || "").replace(te, ie); + if (e[2] === "~=") { + e[3] = " " + e[3] + " " + } + return e.slice(0, 4) + }, CHILD: function (e) { + e[1] = e[1].toLowerCase(); + if (e[1].slice(0, 3) === "nth") { + if (!e[3]) { + se.error(e[0]) + } + e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * (e[3] === "even" || e[3] === "odd")); + e[5] = +(e[7] + e[8] || e[3] === "odd") + } else if (e[3]) { + se.error(e[0]) + } + return e + }, PSEUDO: function (e) { + var t, i = !e[6] && e[2]; + if (X["CHILD"].test(e[0])) { + return null + } + if (e[3]) { + e[2] = e[4] || e[5] || "" + } else if (i && V.test(i) && (t = p(i, true)) && (t = i.indexOf(")", i.length - t) - i.length)) { + e[0] = e[0].slice(0, t); + e[2] = i.slice(0, t) + } + return e.slice(0, 3) + } + }, + filter: { + TAG: function (e) { + var t = e.replace(te, ie).toLowerCase(); + return e === "*" ? function () { + return true + } : function (e) { + return e.nodeName && e.nodeName.toLowerCase() === t + } + }, CLASS: function (e) { + var t = g[e + " "]; + return t || (t = new RegExp("(^|" + B + ")" + e + "(" + B + "|$)")) && g(e, function (e) { + return t.test(typeof e.className === "string" && e.className || typeof e.getAttribute !== "undefined" && e.getAttribute("class") || "") + }) + }, ATTR: function (i, n, r) { + return function (e) { + var t = se.attr(e, i); + if (t == null) { + return n === "!=" + } + if (!n) { + return true + } + t += ""; + return n === "=" ? t === r : n === "!=" ? t !== r : n === "^=" ? r && t.indexOf(r) === 0 : n === "*=" ? r && t.indexOf(r) > -1 : n === "$=" ? r && t.slice(-r.length) === r : n === "~=" ? (" " + t.replace(H, " ") + " ").indexOf(r) > -1 : n === "|=" ? t === r || t.slice(0, r.length + 1) === r + "-" : false + } + }, CHILD: function (p, e, t, v, y) { + var m = p.slice(0, 3) !== "nth", g = p.slice(-4) !== "last", S = e === "of-type"; + return v === 1 && y === 0 ? function (e) { + return !!e.parentNode + } : function (e, t, i) { + var n, r, o, a, s, l, u = m !== g ? "nextSibling" : "previousSibling", + f = e.parentNode, h = S && e.nodeName.toLowerCase(), c = !i && !S, d = false; + if (f) { + if (m) { + while (u) { + a = e; + while (a = a[u]) { + if (S ? a.nodeName.toLowerCase() === h : a.nodeType === 1) { + return false + } + } + l = u = p === "only" && !l && "nextSibling" + } + return true + } + l = [g ? f.firstChild : f.lastChild]; + if (g && c) { + a = f; + o = a[x] || (a[x] = {}); + r = o[a.uniqueID] || (o[a.uniqueID] = {}); + n = r[p] || []; + s = n[0] === T && n[1]; + d = s && n[2]; + a = s && f.childNodes[s]; + while (a = ++s && a && a[u] || (d = s = 0) || l.pop()) { + if (a.nodeType === 1 && ++d && a === e) { + r[p] = [T, s, d]; + break + } + } + } else { + if (c) { + a = e; + o = a[x] || (a[x] = {}); + r = o[a.uniqueID] || (o[a.uniqueID] = {}); + n = r[p] || []; + s = n[0] === T && n[1]; + d = s + } + if (d === false) { + while (a = ++s && a && a[u] || (d = s = 0) || l.pop()) { + if ((S ? a.nodeName.toLowerCase() === h : a.nodeType === 1) && ++d) { + if (c) { + o = a[x] || (a[x] = {}); + r = o[a.uniqueID] || (o[a.uniqueID] = {}); + r[p] = [T, d] + } + if (a === e) { + break + } + } + } + } + } + d -= y; + return d === v || d % v === 0 && d / v >= 0 + } + } + }, PSEUDO: function (e, o) { + var t, + a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e); + if (a[x]) { + return a(o) + } + if (a.length > 1) { + t = [e, e, "", o]; + return b.setFilters.hasOwnProperty(e.toLowerCase()) ? ue(function (e, t) { + var i, n = a(e, o), r = n.length; + while (r--) { + i = O(e, n[r]); + e[i] = !(t[i] = n[r]) + } + }) : function (e) { + return a(e, 0, t) + } + } + return a + } + }, + pseudos: { + not: ue(function (e) { + var n = [], r = [], s = h(e.replace(j, "$1")); + return s[x] ? ue(function (e, t, i, n) { + var r, o = s(e, null, n, []), a = e.length; + while (a--) { + if (r = o[a]) { + e[a] = !(t[a] = r) + } + } + }) : function (e, t, i) { + n[0] = e; + s(n, null, i, r); + n[0] = null; + return !r.pop() + } + }), has: ue(function (t) { + return function (e) { + return se(t, e).length > 0 + } + }), contains: ue(function (t) { + t = t.replace(te, ie); + return function (e) { + return (e.textContent || o(e)).indexOf(t) > -1 + } + }), lang: ue(function (i) { + if (!Y.test(i || "")) { + se.error("unsupported lang: " + i) + } + i = i.replace(te, ie).toLowerCase(); + return function (e) { + var t; + do { + if (t = C ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) { + t = t.toLowerCase(); + return t === i || t.indexOf(i + "-") === 0 + } + } while ((e = e.parentNode) && e.nodeType === 1); + return false + } + }), target: function (e) { + var t = i.location && i.location.hash; + return t && t.slice(1) === e.id + }, root: function (e) { + return e === a + }, focus: function (e) { + return e === P.activeElement && (!P.hasFocus || P.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) + }, enabled: ve(false), disabled: ve(true), checked: function (e) { + var t = e.nodeName.toLowerCase(); + return t === "input" && !!e.checked || t === "option" && !!e.selected + }, selected: function (e) { + if (e.parentNode) { + e.parentNode.selectedIndex + } + return e.selected === true + }, empty: function (e) { + for (e = e.firstChild; e; e = e.nextSibling) { + if (e.nodeType < 6) { + return false + } + } + return true + }, parent: function (e) { + return !b.pseudos["empty"](e) + }, header: function (e) { + return $.test(e.nodeName) + }, input: function (e) { + return K.test(e.nodeName) + }, button: function (e) { + var t = e.nodeName.toLowerCase(); + return t === "input" && e.type === "button" || t === "button" + }, text: function (e) { + var t; + return e.nodeName.toLowerCase() === "input" && e.type === "text" && ((t = e.getAttribute("type")) == null || t.toLowerCase() === "text") + }, first: ye(function () { + return [0] + }), last: ye(function (e, t) { + return [t - 1] + }), eq: ye(function (e, t, i) { + return [i < 0 ? i + t : i] + }), even: ye(function (e, t) { + var i = 0; + for (; i < t; i += 2) { + e.push(i) + } + return e + }), odd: ye(function (e, t) { + var i = 1; + for (; i < t; i += 2) { + e.push(i) + } + return e + }), lt: ye(function (e, t, i) { + var n = i < 0 ? i + t : i > t ? t : i; + for (; --n >= 0;) { + e.push(n) + } + return e + }), gt: ye(function (e, t, i) { + var n = i < 0 ? i + t : i; + for (; ++n < t;) { + e.push(n) + } + return e + }) + } + }; + b.pseudos["nth"] = b.pseudos["eq"]; + for (e in {radio: true, checkbox: true, file: true, password: true, image: true}) { + b.pseudos[e] = de(e) + } + for (e in {submit: true, reset: true}) { + b.pseudos[e] = pe(e) + } + + function ge() { + } + + ge.prototype = b.filters = b.pseudos; + b.setFilters = new ge; + p = se.tokenize = function (e, t) { + var i, n, r, o, a, s, l, u = S[e + " "]; + if (u) { + return t ? 0 : u.slice(0) + } + a = e; + s = []; + l = b.preFilter; + while (a) { + if (!i || (n = U.exec(a))) { + if (n) { + a = a.slice(n[0].length) || a + } + s.push(r = []) + } + i = false; + if (n = W.exec(a)) { + i = n.shift(); + r.push({value: i, type: n[0].replace(j, " ")}); + a = a.slice(i.length) + } + for (o in b.filter) { + if ((n = X[o].exec(a)) && (!l[o] || (n = l[o](n)))) { + i = n.shift(); + r.push({value: i, type: o, matches: n}); + a = a.slice(i.length) + } + } + if (!i) { + break + } + } + return t ? a.length : a ? se.error(e) : S(e, s).slice(0) + }; + + function Se(e) { + var t = 0, i = e.length, n = ""; + for (; t < i; t++) { + n += e[t].value + } + return n + } + + function be(s, e, t) { + var l = e.dir, u = e.next, f = u || l, h = t && f === "parentNode", c = n++; + return e.first ? function (e, t, i) { + while (e = e[l]) { + if (e.nodeType === 1 || h) { + return s(e, t, i) + } + } + return false + } : function (e, t, i) { + var n, r, o, a = [T, c]; + if (i) { + while (e = e[l]) { + if (e.nodeType === 1 || h) { + if (s(e, t, i)) { + return true + } + } + } + } else { + while (e = e[l]) { + if (e.nodeType === 1 || h) { + o = e[x] || (e[x] = {}); + r = o[e.uniqueID] || (o[e.uniqueID] = {}); + if (u && u === e.nodeName.toLowerCase()) { + e = e[l] || e + } else if ((n = r[f]) && n[0] === T && n[1] === c) { + return a[2] = n[2] + } else { + r[f] = a; + if (a[2] = s(e, t, i)) { + return true + } + } + } + } + } + return false + } + } + + function we(r) { + return r.length > 1 ? function (e, t, i) { + var n = r.length; + while (n--) { + if (!r[n](e, t, i)) { + return false + } + } + return true + } : r[0] + } + + function _e(e, t, i) { + var n = 0, r = t.length; + for (; n < r; n++) { + se(e, t[n], i) + } + return i + } + + function Pe(e, t, i, n, r) { + var o, a = [], s = 0, l = e.length, u = t != null; + for (; s < l; s++) { + if (o = e[s]) { + if (!i || i(o, n, r)) { + a.push(o); + if (u) { + t.push(s) + } + } + } + } + return a + } + + function Ce(d, p, v, y, m, e) { + if (y && !y[x]) { + y = Ce(y) + } + if (m && !m[x]) { + m = Ce(m, e) + } + return ue(function (e, t, i, n) { + var r, o, a, s = [], l = [], u = t.length, f = e || _e(p || "*", i.nodeType ? [i] : i, []), + h = d && (e || !p) ? Pe(f, s, d, i, n) : f, c = v ? m || (e ? d : u || y) ? [] : t : h; + if (v) { + v(h, c, i, n) + } + if (y) { + r = Pe(c, l); + y(r, [], i, n); + o = r.length; + while (o--) { + if (a = r[o]) { + c[l[o]] = !(h[l[o]] = a) + } + } + } + if (e) { + if (m || d) { + if (m) { + r = []; + o = c.length; + while (o--) { + if (a = c[o]) { + r.push(h[o] = a) + } + } + m(null, c = [], r, n) + } + o = c.length; + while (o--) { + if ((a = c[o]) && (r = m ? O(e, a) : s[o]) > -1) { + e[r] = !(t[r] = a) + } + } + } + } else { + c = Pe(c === t ? c.splice(u, c.length) : c); + if (m) { + m(null, t, c, n) + } else { + z.apply(t, c) + } + } + }) + } + + function xe(e) { + var r, t, i, n = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, + l = be(function (e) { + return e === r + }, a, true), u = be(function (e) { + return O(r, e) > -1 + }, a, true), f = [function (e, t, i) { + var n = !o && (i || t !== w) || ((r = t).nodeType ? l(e, t, i) : u(e, t, i)); + r = null; + return n + }]; + for (; s < n; s++) { + if (t = b.relative[e[s].type]) { + f = [be(we(f), t)] + } else { + t = b.filter[e[s].type].apply(null, e[s].matches); + if (t[x]) { + i = ++s; + for (; i < n; i++) { + if (b.relative[e[i].type]) { + break + } + } + return Ce(s > 1 && we(f), s > 1 && Se(e.slice(0, s - 1).concat({value: e[s - 2].type === " " ? "*" : ""})).replace(j, "$1"), t, s < i && xe(e.slice(s, i)), i < n && xe(e = e.slice(i)), i < n && Se(e)) + } + f.push(t) + } + } + return we(f) + } + + function Te(y, m) { + var g = m.length > 0, S = y.length > 0, e = function (e, t, i, n, r) { + var o, a, s, l = 0, u = "0", f = e && [], h = [], c = w, + d = e || S && b.find["TAG"]("*", r), p = T += c == null ? 1 : Math.random() || .1, + v = d.length; + if (r) { + w = t == P || t || r + } + for (; u !== v && (o = d[u]) != null; u++) { + if (S && o) { + a = 0; + if (!t && o.ownerDocument != P) { + _(o); + i = !C + } + while (s = y[a++]) { + if (s(o, t || P, i)) { + n.push(o); + break + } + } + if (r) { + T = p + } + } + if (g) { + if (o = !s && o) { + l-- + } + if (e) { + f.push(o) + } + } + } + l += u; + if (g && u !== l) { + a = 0; + while (s = m[a++]) { + s(f, h, t, i) + } + if (e) { + if (l > 0) { + while (u--) { + if (!(f[u] || h[u])) { + h[u] = E.call(n) + } + } + } + h = Pe(h) + } + z.apply(n, h); + if (r && !e && h.length > 0 && l + m.length > 1) { + se.uniqueSort(n) + } + } + if (r) { + T = p; + w = c + } + return f + }; + return g ? ue(e) : e + } + + h = se.compile = function (e, t) { + var i, n = [], r = [], o = k[e + " "]; + if (!o) { + if (!t) { + t = p(e) + } + i = t.length; + while (i--) { + o = xe(t[i]); + if (o[x]) { + n.push(o) + } else { + r.push(o) + } + } + o = k(e, Te(r, n)); + o.selector = e + } + return o + }; + v = se.select = function (e, t, i, n) { + var r, o, a, s, l, u = typeof e === "function" && e, f = !n && p(e = u.selector || e); + i = i || []; + if (f.length === 1) { + o = f[0] = f[0].slice(0); + if (o.length > 2 && (a = o[0]).type === "ID" && t.nodeType === 9 && C && b.relative[o[1].type]) { + t = (b.find["ID"](a.matches[0].replace(te, ie), t) || [])[0]; + if (!t) { + return i + } else if (u) { + t = t.parentNode + } + e = e.slice(o.shift().value.length) + } + r = X["needsContext"].test(e) ? 0 : o.length; + while (r--) { + a = o[r]; + if (b.relative[s = a.type]) { + break + } + if (l = b.find[s]) { + if (n = l(a.matches[0].replace(te, ie), ee.test(o[0].type) && me(t.parentNode) || t)) { + o.splice(r, 1); + e = n.length && Se(o); + if (!e) { + z.apply(i, n); + return i + } + break + } + } + } + } + (u || h(e, f))(n, t, !C, i, !t || ee.test(e) && me(t.parentNode) || t); + return i + }; + d.sortStable = x.split("").sort(M).join("") === x; + d.detectDuplicates = !!u; + _(); + d.sortDetached = fe(function (e) { + return e.compareDocumentPosition(P.createElement("fieldset")) & 1 + }); + if (!fe(function (e) { + e.innerHTML = ""; + return e.firstChild.getAttribute("href") === "#" + })) { + he("type|href|height|width", function (e, t, i) { + if (!i) { + return e.getAttribute(t, t.toLowerCase() === "type" ? 1 : 2) + } + }) + } + if (!d.attributes || !fe(function (e) { + e.innerHTML = ""; + e.firstChild.setAttribute("value", ""); + return e.firstChild.getAttribute("value") === "" + })) { + he("value", function (e, t, i) { + if (!i && e.nodeName.toLowerCase() === "input") { + return e.defaultValue + } + }) + } + if (!fe(function (e) { + return e.getAttribute("disabled") == null + })) { + he(F, function (e, t, i) { + var n; + if (!i) { + return e[t] === true ? t.toLowerCase() : (n = e.getAttributeNode(t)) && n.specified ? n.value : null + } + }) + } + return se + }(P); + x.find = d; + x.expr = d.selectors; + x.expr[":"] = x.expr.pseudos; + x.uniqueSort = x.unique = d.uniqueSort; + x.text = d.getText; + x.isXMLDoc = d.isXML; + x.contains = d.contains; + x.escapeSelector = d.escape; + var p = function (e, t, i) { + var n = [], r = i !== undefined; + while ((e = e[t]) && e.nodeType !== 9) { + if (e.nodeType === 1) { + if (r && x(e).is(i)) { + break + } + n.push(e) + } + } + return n + }; + var _ = function (e, t) { + var i = []; + for (; e; e = e.nextSibling) { + if (e.nodeType === 1 && e !== t) { + i.push(e) + } + } + return i + }; + var T = x.expr.match.needsContext; + + function k(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() + } + + var D = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; + + function M(e, i, n) { + if (g(i)) { + return x.grep(e, function (e, t) { + return !!i.call(e, t, e) !== n + }) + } + if (i.nodeType) { + return x.grep(e, function (e) { + return e === i !== n + }) + } + if (typeof i !== "string") { + return x.grep(e, function (e) { + return r.call(i, e) > -1 !== n + }) + } + return x.filter(i, e, n) + } + + x.filter = function (e, t, i) { + var n = t[0]; + if (i) { + e = ":not(" + e + ")" + } + if (t.length === 1 && n.nodeType === 1) { + return x.find.matchesSelector(n, e) ? [n] : [] + } + return x.find.matches(e, x.grep(t, function (e) { + return e.nodeType === 1 + })) + }; + x.fn.extend({ + find: function (e) { + var t, i, n = this.length, r = this; + if (typeof e !== "string") { + return this.pushStack(x(e).filter(function () { + for (t = 0; t < n; t++) { + if (x.contains(r[t], this)) { + return true + } + } + })) + } + i = this.pushStack([]); + for (t = 0; t < n; t++) { + x.find(e, r[t], i) + } + return n > 1 ? x.uniqueSort(i) : i + }, filter: function (e) { + return this.pushStack(M(this, e || [], false)) + }, not: function (e) { + return this.pushStack(M(this, e || [], true)) + }, is: function (e) { + return !!M(this, typeof e === "string" && T.test(e) ? x(e) : e || [], false).length + } + }); + var R, E = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, I = x.fn.init = function (e, t, i) { + var n, r; + if (!e) { + return this + } + i = i || R; + if (typeof e === "string") { + if (e[0] === "<" && e[e.length - 1] === ">" && e.length >= 3) { + n = [null, e, null] + } else { + n = E.exec(e) + } + if (n && (n[1] || !t)) { + if (n[1]) { + t = t instanceof x ? t[0] : t; + x.merge(this, x.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : C, true)); + if (D.test(n[1]) && x.isPlainObject(t)) { + for (n in t) { + if (g(this[n])) { + this[n](t[n]) + } else { + this.attr(n, t[n]) + } + } + } + return this + } else { + r = C.getElementById(n[2]); + if (r) { + this[0] = r; + this.length = 1 + } + return this + } + } else if (!t || t.jquery) { + return (t || i).find(e) + } else { + return this.constructor(t).find(e) + } + } else if (e.nodeType) { + this[0] = e; + this.length = 1; + return this + } else if (g(e)) { + return i.ready !== undefined ? i.ready(e) : e(x) + } + return x.makeArray(e, this) + }; + I.prototype = x.fn; + R = x(C); + var z = /^(?:parents|prev(?:Until|All))/, A = {children: true, contents: true, next: true, prev: true}; + x.fn.extend({ + has: function (e) { + var t = x(e, this), i = t.length; + return this.filter(function () { + var e = 0; + for (; e < i; e++) { + if (x.contains(this, t[e])) { + return true + } + } + }) + }, closest: function (e, t) { + var i, n = 0, r = this.length, o = [], a = typeof e !== "string" && x(e); + if (!T.test(e)) { + for (; n < r; n++) { + for (i = this[n]; i && i !== t; i = i.parentNode) { + if (i.nodeType < 11 && (a ? a.index(i) > -1 : i.nodeType === 1 && x.find.matchesSelector(i, e))) { + o.push(i); + break + } + } + } + } + return this.pushStack(o.length > 1 ? x.uniqueSort(o) : o) + }, index: function (e) { + if (!e) { + return this[0] && this[0].parentNode ? this.first().prevAll().length : -1 + } + if (typeof e === "string") { + return r.call(x(e), this[0]) + } + return r.call(this, e.jquery ? e[0] : e) + }, add: function (e, t) { + return this.pushStack(x.uniqueSort(x.merge(this.get(), x(e, t)))) + }, addBack: function (e) { + return this.add(e == null ? this.prevObject : this.prevObject.filter(e)) + } + }); + + function O(e, t) { + while ((e = e[t]) && e.nodeType !== 1) { + } + return e + } + + x.each({ + parent: function (e) { + var t = e.parentNode; + return t && t.nodeType !== 11 ? t : null + }, parents: function (e) { + return p(e, "parentNode") + }, parentsUntil: function (e, t, i) { + return p(e, "parentNode", i) + }, next: function (e) { + return O(e, "nextSibling") + }, prev: function (e) { + return O(e, "previousSibling") + }, nextAll: function (e) { + return p(e, "nextSibling") + }, prevAll: function (e) { + return p(e, "previousSibling") + }, nextUntil: function (e, t, i) { + return p(e, "nextSibling", i) + }, prevUntil: function (e, t, i) { + return p(e, "previousSibling", i) + }, siblings: function (e) { + return _((e.parentNode || {}).firstChild, e) + }, children: function (e) { + return _(e.firstChild) + }, contents: function (e) { + if (e.contentDocument != null && n(e.contentDocument)) { + return e.contentDocument + } + if (k(e, "template")) { + e = e.content || e + } + return x.merge([], e.childNodes) + } + }, function (n, r) { + x.fn[n] = function (e, t) { + var i = x.map(this, r, e); + if (n.slice(-5) !== "Until") { + t = e + } + if (t && typeof t === "string") { + i = x.filter(t, i) + } + if (this.length > 1) { + if (!A[n]) { + x.uniqueSort(i) + } + if (z.test(n)) { + i.reverse() + } + } + return this.pushStack(i) + } + }); + var F = /[^\x20\t\r\n\f]+/g; + + function B(e) { + var i = {}; + x.each(e.match(F) || [], function (e, t) { + i[t] = true + }); + return i + } + + x.Callbacks = function (n) { + n = typeof n === "string" ? B(n) : x.extend({}, n); + var i, e, t, r, o = [], a = [], s = -1, l = function () { + r = r || n.once; + t = i = true; + for (; a.length; s = -1) { + e = a.shift(); + while (++s < o.length) { + if (o[s].apply(e[0], e[1]) === false && n.stopOnFalse) { + s = o.length; + e = false + } + } + } + if (!n.memory) { + e = false + } + i = false; + if (r) { + if (e) { + o = [] + } else { + o = "" + } + } + }, u = { + add: function () { + if (o) { + if (e && !i) { + s = o.length - 1; + a.push(e) + } + (function i(e) { + x.each(e, function (e, t) { + if (g(t)) { + if (!n.unique || !u.has(t)) { + o.push(t) + } + } else if (t && t.length && w(t) !== "string") { + i(t) + } + }) + })(arguments); + if (e && !i) { + l() + } + } + return this + }, remove: function () { + x.each(arguments, function (e, t) { + var i; + while ((i = x.inArray(t, o, i)) > -1) { + o.splice(i, 1); + if (i <= s) { + s-- + } + } + }); + return this + }, has: function (e) { + return e ? x.inArray(e, o) > -1 : o.length > 0 + }, empty: function () { + if (o) { + o = [] + } + return this + }, disable: function () { + r = a = []; + o = e = ""; + return this + }, disabled: function () { + return !o + }, lock: function () { + r = a = []; + if (!e && !i) { + o = e = "" + } + return this + }, locked: function () { + return !!r + }, fireWith: function (e, t) { + if (!r) { + t = t || []; + t = [e, t.slice ? t.slice() : t]; + a.push(t); + if (!i) { + l() + } + } + return this + }, fire: function () { + u.fireWith(this, arguments); + return this + }, fired: function () { + return !!t + } + }; + return u + }; + + function L(e) { + return e + } + + function q(e) { + throw e + } + + function N(e, t, i, n) { + var r; + try { + if (e && g(r = e.promise)) { + r.call(e).done(t).fail(i) + } else if (e && g(r = e.then)) { + r.call(e, t, i) + } else { + t.apply(undefined, [e].slice(n)) + } + } catch (e) { + i.apply(undefined, [e]) + } + } + + x.extend({ + Deferred: function (e) { + var o = [["notify", "progress", x.Callbacks("memory"), x.Callbacks("memory"), 2], ["resolve", "done", x.Callbacks("once memory"), x.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", x.Callbacks("once memory"), x.Callbacks("once memory"), 1, "rejected"]], + r = "pending", a = { + state: function () { + return r + }, always: function () { + s.done(arguments).fail(arguments); + return this + }, catch: function (e) { + return a.then(null, e) + }, pipe: function () { + var r = arguments; + return x.Deferred(function (n) { + x.each(o, function (e, t) { + var i = g(r[t[4]]) && r[t[4]]; + s[t[1]](function () { + var e = i && i.apply(this, arguments); + if (e && g(e.promise)) { + e.promise().progress(n.notify).done(n.resolve).fail(n.reject) + } else { + n[t[0] + "With"](this, i ? [e] : arguments) + } + }) + }); + r = null + }).promise() + }, then: function (t, i, n) { + var l = 0; + + function u(r, o, a, s) { + return function () { + var i = this, n = arguments, e = function () { + var e, t; + if (r < l) { + return + } + e = a.apply(i, n); + if (e === o.promise()) { + throw new TypeError("Thenable self-resolution") + } + t = e && (typeof e === "object" || typeof e === "function") && e.then; + if (g(t)) { + if (s) { + t.call(e, u(l, o, L, s), u(l, o, q, s)) + } else { + l++; + t.call(e, u(l, o, L, s), u(l, o, q, s), u(l, o, L, o.notifyWith)) + } + } else { + if (a !== L) { + i = undefined; + n = [e] + } + (s || o.resolveWith)(i, n) + } + }, t = s ? e : function () { + try { + e() + } catch (e) { + if (x.Deferred.exceptionHook) { + x.Deferred.exceptionHook(e, t.stackTrace) + } + if (r + 1 >= l) { + if (a !== q) { + i = undefined; + n = [e] + } + o.rejectWith(i, n) + } + } + }; + if (r) { + t() + } else { + if (x.Deferred.getStackHook) { + t.stackTrace = x.Deferred.getStackHook() + } + P.setTimeout(t) + } + } + } + + return x.Deferred(function (e) { + o[0][3].add(u(0, e, g(n) ? n : L, e.notifyWith)); + o[1][3].add(u(0, e, g(t) ? t : L)); + o[2][3].add(u(0, e, g(i) ? i : q)) + }).promise() + }, promise: function (e) { + return e != null ? x.extend(e, a) : a + } + }, s = {}; + x.each(o, function (e, t) { + var i = t[2], n = t[5]; + a[t[1]] = i.add; + if (n) { + i.add(function () { + r = n + }, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock) + } + i.add(t[3].fire); + s[t[0]] = function () { + s[t[0] + "With"](this === s ? undefined : this, arguments); + return this + }; + s[t[0] + "With"] = i.fireWith + }); + a.promise(s); + if (e) { + e.call(s, s) + } + return s + }, when: function (e) { + var i = arguments.length, t = i, n = Array(t), r = s.call(arguments), o = x.Deferred(), + a = function (t) { + return function (e) { + n[t] = this; + r[t] = arguments.length > 1 ? s.call(arguments) : e; + if (!--i) { + o.resolveWith(n, r) + } + } + }; + if (i <= 1) { + N(e, o.done(a(t)).resolve, o.reject, !i); + if (o.state() === "pending" || g(r[t] && r[t].then)) { + return o.then() + } + } + while (t--) { + N(r[t], a(t), o.reject) + } + return o.promise() + } + }); + var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + x.Deferred.exceptionHook = function (e, t) { + if (P.console && P.console.warn && e && H.test(e.name)) { + P.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t) + } + }; + x.readyException = function (e) { + P.setTimeout(function () { + throw e + }) + }; + var j = x.Deferred(); + x.fn.ready = function (e) { + j.then(e).catch(function (e) { + x.readyException(e) + }); + return this + }; + x.extend({ + isReady: false, readyWait: 1, ready: function (e) { + if (e === true ? --x.readyWait : x.isReady) { + return + } + x.isReady = true; + if (e !== true && --x.readyWait > 0) { + return + } + j.resolveWith(C, [x]) + } + }); + x.ready.then = j.then; + + function U() { + C.removeEventListener("DOMContentLoaded", U); + P.removeEventListener("load", U); + x.ready() + } + + if (C.readyState === "complete" || C.readyState !== "loading" && !C.documentElement.doScroll) { + P.setTimeout(x.ready) + } else { + C.addEventListener("DOMContentLoaded", U); + P.addEventListener("load", U) + } + var W = function (e, t, i, n, r, o, a) { + var s = 0, l = e.length, u = i == null; + if (w(i) === "object") { + r = true; + for (s in i) { + W(e, t, s, i[s], true, o, a) + } + } else if (n !== undefined) { + r = true; + if (!g(n)) { + a = true + } + if (u) { + if (a) { + t.call(e, n); + t = null + } else { + u = t; + t = function (e, t, i) { + return u.call(x(e), i) + } + } + } + if (t) { + for (; s < l; s++) { + t(e[s], i, a ? n : n.call(e[s], s, t(e[s], i))) + } + } + } + if (r) { + return e + } + if (u) { + return t.call(e) + } + return l ? t(e[0], i) : o + }; + var G = /^-ms-/, V = /-([a-z])/g; + + function Y(e, t) { + return t.toUpperCase() + } + + function X(e) { + return e.replace(G, "ms-").replace(V, Y) + } + + var J = function (e) { + return e.nodeType === 1 || e.nodeType === 9 || !+e.nodeType + }; + + function K() { + this.expando = x.expando + K.uid++ + } + + K.uid = 1; + K.prototype = { + cache: function (e) { + var t = e[this.expando]; + if (!t) { + t = Object.create(null); + if (J(e)) { + if (e.nodeType) { + e[this.expando] = t + } else { + Object.defineProperty(e, this.expando, {value: t, configurable: true}) + } + } + } + return t + }, set: function (e, t, i) { + var n, r = this.cache(e); + if (typeof t === "string") { + r[X(t)] = i + } else { + for (n in t) { + r[X(n)] = t[n] + } + } + return r + }, get: function (e, t) { + return t === undefined ? this.cache(e) : e[this.expando] && e[this.expando][X(t)] + }, access: function (e, t, i) { + if (t === undefined || t && typeof t === "string" && i === undefined) { + return this.get(e, t) + } + this.set(e, t, i); + return i !== undefined ? i : t + }, remove: function (e, t) { + var i, n = e[this.expando]; + if (n === undefined) { + return + } + if (t !== undefined) { + if (Array.isArray(t)) { + t = t.map(X) + } else { + t = X(t); + t = t in n ? [t] : t.match(F) || [] + } + i = t.length; + while (i--) { + delete n[t[i]] + } + } + if (t === undefined || x.isEmptyObject(n)) { + if (e.nodeType) { + e[this.expando] = undefined + } else { + delete e[this.expando] + } + } + }, hasData: function (e) { + var t = e[this.expando]; + return t !== undefined && !x.isEmptyObject(t) + } + }; + var $ = new K; + var Z = new K; + var Q = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, ee = /[A-Z]/g; + + function te(e) { + if (e === "true") { + return true + } + if (e === "false") { + return false + } + if (e === "null") { + return null + } + if (e === +e + "") { + return +e + } + if (Q.test(e)) { + return JSON.parse(e) + } + return e + } + + function ie(e, t, i) { + var n; + if (i === undefined && e.nodeType === 1) { + n = "data-" + t.replace(ee, "-$&").toLowerCase(); + i = e.getAttribute(n); + if (typeof i === "string") { + try { + i = te(i) + } catch (e) { + } + Z.set(e, t, i) + } else { + i = undefined + } + } + return i + } + + x.extend({ + hasData: function (e) { + return Z.hasData(e) || $.hasData(e) + }, data: function (e, t, i) { + return Z.access(e, t, i) + }, removeData: function (e, t) { + Z.remove(e, t) + }, _data: function (e, t, i) { + return $.access(e, t, i) + }, _removeData: function (e, t) { + $.remove(e, t) + } + }); + x.fn.extend({ + data: function (i, e) { + var t, n, r, o = this[0], a = o && o.attributes; + if (i === undefined) { + if (this.length) { + r = Z.get(o); + if (o.nodeType === 1 && !$.get(o, "hasDataAttrs")) { + t = a.length; + while (t--) { + if (a[t]) { + n = a[t].name; + if (n.indexOf("data-") === 0) { + n = X(n.slice(5)); + ie(o, n, r[n]) + } + } + } + $.set(o, "hasDataAttrs", true) + } + } + return r + } + if (typeof i === "object") { + return this.each(function () { + Z.set(this, i) + }) + } + return W(this, function (e) { + var t; + if (o && e === undefined) { + t = Z.get(o, i); + if (t !== undefined) { + return t + } + t = ie(o, i); + if (t !== undefined) { + return t + } + return + } + this.each(function () { + Z.set(this, i, e) + }) + }, null, e, arguments.length > 1, null, true) + }, removeData: function (e) { + return this.each(function () { + Z.remove(this, e) + }) + } + }); + x.extend({ + queue: function (e, t, i) { + var n; + if (e) { + t = (t || "fx") + "queue"; + n = $.get(e, t); + if (i) { + if (!n || Array.isArray(i)) { + n = $.access(e, t, x.makeArray(i)) + } else { + n.push(i) + } + } + return n || [] + } + }, dequeue: function (e, t) { + t = t || "fx"; + var i = x.queue(e, t), n = i.length, r = i.shift(), o = x._queueHooks(e, t), a = function () { + x.dequeue(e, t) + }; + if (r === "inprogress") { + r = i.shift(); + n-- + } + if (r) { + if (t === "fx") { + i.unshift("inprogress") + } + delete o.stop; + r.call(e, a, o) + } + if (!n && o) { + o.empty.fire() + } + }, _queueHooks: function (e, t) { + var i = t + "queueHooks"; + return $.get(e, i) || $.access(e, i, { + empty: x.Callbacks("once memory").add(function () { + $.remove(e, [t + "queue", i]) + }) + }) + } + }); + x.fn.extend({ + queue: function (t, i) { + var e = 2; + if (typeof t !== "string") { + i = t; + t = "fx"; + e-- + } + if (arguments.length < e) { + return x.queue(this[0], t) + } + return i === undefined ? this : this.each(function () { + var e = x.queue(this, t, i); + x._queueHooks(this, t); + if (t === "fx" && e[0] !== "inprogress") { + x.dequeue(this, t) + } + }) + }, dequeue: function (e) { + return this.each(function () { + x.dequeue(this, e) + }) + }, clearQueue: function (e) { + return this.queue(e || "fx", []) + }, promise: function (e, t) { + var i, n = 1, r = x.Deferred(), o = this, a = this.length, s = function () { + if (!--n) { + r.resolveWith(o, [o]) + } + }; + if (typeof e !== "string") { + t = e; + e = undefined + } + e = e || "fx"; + while (a--) { + i = $.get(o[a], e + "queueHooks"); + if (i && i.empty) { + n++; + i.empty.add(s) + } + } + s(); + return r.promise(t) + } + }); + var ne = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; + var re = new RegExp("^(?:([+-])=|)(" + ne + ")([a-z%]*)$", "i"); + var oe = ["Top", "Right", "Bottom", "Left"]; + var ae = C.documentElement; + var se = function (e) { + return x.contains(e.ownerDocument, e) + }, le = {composed: true}; + if (ae.getRootNode) { + se = function (e) { + return x.contains(e.ownerDocument, e) || e.getRootNode(le) === e.ownerDocument + } + } + var ue = function (e, t) { + e = t || e; + return e.style.display === "none" || e.style.display === "" && se(e) && x.css(e, "display") === "none" + }; + + function fe(e, t, i, n) { + var r, o, a = 20, s = n ? function () { + return n.cur() + } : function () { + return x.css(e, t, "") + }, l = s(), u = i && i[3] || (x.cssNumber[t] ? "" : "px"), + f = e.nodeType && (x.cssNumber[t] || u !== "px" && +l) && re.exec(x.css(e, t)); + if (f && f[3] !== u) { + l = l / 2; + u = u || f[3]; + f = +l || 1; + while (a--) { + x.style(e, t, f + u); + if ((1 - o) * (1 - (o = s() / l || .5)) <= 0) { + a = 0 + } + f = f / o + } + f = f * 2; + x.style(e, t, f + u); + i = i || [] + } + if (i) { + f = +f || +l || 0; + r = i[1] ? f + (i[1] + 1) * i[2] : +i[2]; + if (n) { + n.unit = u; + n.start = f; + n.end = r + } + } + return r + } + + var he = {}; + + function ce(e) { + var t, i = e.ownerDocument, n = e.nodeName, r = he[n]; + if (r) { + return r + } + t = i.body.appendChild(i.createElement(n)); + r = x.css(t, "display"); + t.parentNode.removeChild(t); + if (r === "none") { + r = "block" + } + he[n] = r; + return r + } + + function de(e, t) { + var i, n, r = [], o = 0, a = e.length; + for (; o < a; o++) { + n = e[o]; + if (!n.style) { + continue + } + i = n.style.display; + if (t) { + if (i === "none") { + r[o] = $.get(n, "display") || null; + if (!r[o]) { + n.style.display = "" + } + } + if (n.style.display === "" && ue(n)) { + r[o] = ce(n) + } + } else { + if (i !== "none") { + r[o] = "none"; + $.set(n, "display", i) + } + } + } + for (o = 0; o < a; o++) { + if (r[o] != null) { + e[o].style.display = r[o] + } + } + return e + } + + x.fn.extend({ + show: function () { + return de(this, true) + }, hide: function () { + return de(this) + }, toggle: function (e) { + if (typeof e === "boolean") { + return e ? this.show() : this.hide() + } + return this.each(function () { + if (ue(this)) { + x(this).show() + } else { + x(this).hide() + } + }) + } + }); + var pe = /^(?:checkbox|radio)$/i; + var ve = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; + var ye = /^$|^module$|\/(?:java|ecma)script/i; + (function () { + var e = C.createDocumentFragment(), t = e.appendChild(C.createElement("div")), + i = C.createElement("input"); + i.setAttribute("type", "radio"); + i.setAttribute("checked", "checked"); + i.setAttribute("name", "t"); + t.appendChild(i); + m.checkClone = t.cloneNode(true).cloneNode(true).lastChild.checked; + t.innerHTML = ""; + m.noCloneChecked = !!t.cloneNode(true).lastChild.defaultValue; + t.innerHTML = ""; + m.option = !!t.lastChild + })(); + var me = { + thead: [1, "
", "
"], + col: [2, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + _default: [0, "", ""] + }; + me.tbody = me.tfoot = me.colgroup = me.caption = me.thead; + me.th = me.td; + if (!m.option) { + me.optgroup = me.option = [1, ""] + } + + function ge(e, t) { + var i; + if (typeof e.getElementsByTagName !== "undefined") { + i = e.getElementsByTagName(t || "*") + } else if (typeof e.querySelectorAll !== "undefined") { + i = e.querySelectorAll(t || "*") + } else { + i = [] + } + if (t === undefined || t && k(e, t)) { + return x.merge([e], i) + } + return i + } + + function Se(e, t) { + var i = 0, n = e.length; + for (; i < n; i++) { + $.set(e[i], "globalEval", !t || $.get(t[i], "globalEval")) + } + } + + var be = /<|&#?\w+;/; + + function we(e, t, i, n, r) { + var o, a, s, l, u, f, h = t.createDocumentFragment(), c = [], d = 0, p = e.length; + for (; d < p; d++) { + o = e[d]; + if (o || o === 0) { + if (w(o) === "object") { + x.merge(c, o.nodeType ? [o] : o) + } else if (!be.test(o)) { + c.push(t.createTextNode(o)) + } else { + a = a || h.appendChild(t.createElement("div")); + s = (ve.exec(o) || ["", ""])[1].toLowerCase(); + l = me[s] || me._default; + a.innerHTML = l[1] + x.htmlPrefilter(o) + l[2]; + f = l[0]; + while (f--) { + a = a.lastChild + } + x.merge(c, a.childNodes); + a = h.firstChild; + a.textContent = "" + } + } + } + h.textContent = ""; + d = 0; + while (o = c[d++]) { + if (n && x.inArray(o, n) > -1) { + if (r) { + r.push(o) + } + continue + } + u = se(o); + a = ge(h.appendChild(o), "script"); + if (u) { + Se(a) + } + if (i) { + f = 0; + while (o = a[f++]) { + if (ye.test(o.type || "")) { + i.push(o) + } + } + } + } + return h + } + + var _e = /^key/, Pe = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, Ce = /^([^.]*)(?:\.(.+)|)/; + + function xe() { + return true + } + + function Te() { + return false + } + + function ke(e, t) { + return e === De() === (t === "focus") + } + + function De() { + try { + return C.activeElement + } catch (e) { + } + } + + function Me(e, t, i, n, r, o) { + var a, s; + if (typeof t === "object") { + if (typeof i !== "string") { + n = n || i; + i = undefined + } + for (s in t) { + Me(e, s, i, n, t[s], o) + } + return e + } + if (n == null && r == null) { + r = i; + n = i = undefined + } else if (r == null) { + if (typeof i === "string") { + r = n; + n = undefined + } else { + r = n; + n = i; + i = undefined + } + } + if (r === false) { + r = Te + } else if (!r) { + return e + } + if (o === 1) { + a = r; + r = function (e) { + x().off(e); + return a.apply(this, arguments) + }; + r.guid = a.guid || (a.guid = x.guid++) + } + return e.each(function () { + x.event.add(this, t, r, n, i) + }) + } + + x.event = { + global: {}, add: function (t, e, i, n, r) { + var o, a, s, l, u, f, h, c, d, p, v, y = $.get(t); + if (!J(t)) { + return + } + if (i.handler) { + o = i; + i = o.handler; + r = o.selector + } + if (r) { + x.find.matchesSelector(ae, r) + } + if (!i.guid) { + i.guid = x.guid++ + } + if (!(l = y.events)) { + l = y.events = Object.create(null) + } + if (!(a = y.handle)) { + a = y.handle = function (e) { + return typeof x !== "undefined" && x.event.triggered !== e.type ? x.event.dispatch.apply(t, arguments) : undefined + } + } + e = (e || "").match(F) || [""]; + u = e.length; + while (u--) { + s = Ce.exec(e[u]) || []; + d = v = s[1]; + p = (s[2] || "").split(".").sort(); + if (!d) { + continue + } + h = x.event.special[d] || {}; + d = (r ? h.delegateType : h.bindType) || d; + h = x.event.special[d] || {}; + f = x.extend({ + type: d, + origType: v, + data: n, + handler: i, + guid: i.guid, + selector: r, + needsContext: r && x.expr.match.needsContext.test(r), + namespace: p.join(".") + }, o); + if (!(c = l[d])) { + c = l[d] = []; + c.delegateCount = 0; + if (!h.setup || h.setup.call(t, n, p, a) === false) { + if (t.addEventListener) { + t.addEventListener(d, a) + } + } + } + if (h.add) { + h.add.call(t, f); + if (!f.handler.guid) { + f.handler.guid = i.guid + } + } + if (r) { + c.splice(c.delegateCount++, 0, f) + } else { + c.push(f) + } + x.event.global[d] = true + } + }, remove: function (e, t, i, n, r) { + var o, a, s, l, u, f, h, c, d, p, v, y = $.hasData(e) && $.get(e); + if (!y || !(l = y.events)) { + return + } + t = (t || "").match(F) || [""]; + u = t.length; + while (u--) { + s = Ce.exec(t[u]) || []; + d = v = s[1]; + p = (s[2] || "").split(".").sort(); + if (!d) { + for (d in l) { + x.event.remove(e, d + t[u], i, n, true) + } + continue + } + h = x.event.special[d] || {}; + d = (n ? h.delegateType : h.bindType) || d; + c = l[d] || []; + s = s[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"); + a = o = c.length; + while (o--) { + f = c[o]; + if ((r || v === f.origType) && (!i || i.guid === f.guid) && (!s || s.test(f.namespace)) && (!n || n === f.selector || n === "**" && f.selector)) { + c.splice(o, 1); + if (f.selector) { + c.delegateCount-- + } + if (h.remove) { + h.remove.call(e, f) + } + } + } + if (a && !c.length) { + if (!h.teardown || h.teardown.call(e, p, y.handle) === false) { + x.removeEvent(e, d, y.handle) + } + delete l[d] + } + } + if (x.isEmptyObject(l)) { + $.remove(e, "handle events") + } + }, dispatch: function (e) { + var t, i, n, r, o, a, s = new Array(arguments.length), l = x.event.fix(e), + u = ($.get(this, "events") || Object.create(null))[l.type] || [], + f = x.event.special[l.type] || {}; + s[0] = l; + for (t = 1; t < arguments.length; t++) { + s[t] = arguments[t] + } + l.delegateTarget = this; + if (f.preDispatch && f.preDispatch.call(this, l) === false) { + return + } + a = x.event.handlers.call(this, l, u); + t = 0; + while ((r = a[t++]) && !l.isPropagationStopped()) { + l.currentTarget = r.elem; + i = 0; + while ((o = r.handlers[i++]) && !l.isImmediatePropagationStopped()) { + if (!l.rnamespace || o.namespace === false || l.rnamespace.test(o.namespace)) { + l.handleObj = o; + l.data = o.data; + n = ((x.event.special[o.origType] || {}).handle || o.handler).apply(r.elem, s); + if (n !== undefined) { + if ((l.result = n) === false) { + l.preventDefault(); + l.stopPropagation() + } + } + } + } + } + if (f.postDispatch) { + f.postDispatch.call(this, l) + } + return l.result + }, handlers: function (e, t) { + var i, n, r, o, a, s = [], l = t.delegateCount, u = e.target; + if (l && u.nodeType && !(e.type === "click" && e.button >= 1)) { + for (; u !== this; u = u.parentNode || this) { + if (u.nodeType === 1 && !(e.type === "click" && u.disabled === true)) { + o = []; + a = {}; + for (i = 0; i < l; i++) { + n = t[i]; + r = n.selector + " "; + if (a[r] === undefined) { + a[r] = n.needsContext ? x(r, this).index(u) > -1 : x.find(r, this, null, [u]).length + } + if (a[r]) { + o.push(n) + } + } + if (o.length) { + s.push({elem: u, handlers: o}) + } + } + } + } + u = this; + if (l < t.length) { + s.push({elem: u, handlers: t.slice(l)}) + } + return s + }, addProp: function (t, e) { + Object.defineProperty(x.Event.prototype, t, { + enumerable: true, + configurable: true, + get: g(e) ? function () { + if (this.originalEvent) { + return e(this.originalEvent) + } + } : function () { + if (this.originalEvent) { + return this.originalEvent[t] + } + }, + set: function (e) { + Object.defineProperty(this, t, { + enumerable: true, + configurable: true, + writable: true, + value: e + }) + } + }) + }, fix: function (e) { + return e[x.expando] ? e : new x.Event(e) + }, special: { + load: {noBubble: true}, click: { + setup: function (e) { + var t = this || e; + if (pe.test(t.type) && t.click && k(t, "input")) { + Re(t, "click", xe) + } + return false + }, trigger: function (e) { + var t = this || e; + if (pe.test(t.type) && t.click && k(t, "input")) { + Re(t, "click") + } + return true + }, _default: function (e) { + var t = e.target; + return pe.test(t.type) && t.click && k(t, "input") && $.get(t, "click") || k(t, "a") + } + }, beforeunload: { + postDispatch: function (e) { + if (e.result !== undefined && e.originalEvent) { + e.originalEvent.returnValue = e.result + } + } + } + } + }; + + function Re(e, r, o) { + if (!o) { + if ($.get(e, r) === undefined) { + x.event.add(e, r, xe) + } + return + } + $.set(e, r, false); + x.event.add(e, r, { + namespace: false, handler: function (e) { + var t, i, n = $.get(this, r); + if (e.isTrigger & 1 && this[r]) { + if (!n.length) { + n = s.call(arguments); + $.set(this, r, n); + t = o(this, r); + this[r](); + i = $.get(this, r); + if (n !== i || t) { + $.set(this, r, false) + } else { + i = {} + } + if (n !== i) { + e.stopImmediatePropagation(); + e.preventDefault(); + return i.value + } + } else if ((x.event.special[r] || {}).delegateType) { + e.stopPropagation() + } + } else if (n.length) { + $.set(this, r, {value: x.event.trigger(x.extend(n[0], x.Event.prototype), n.slice(1), this)}); + e.stopImmediatePropagation() + } + } + }) + } + + x.removeEvent = function (e, t, i) { + if (e.removeEventListener) { + e.removeEventListener(t, i) + } + }; + x.Event = function (e, t) { + if (!(this instanceof x.Event)) { + return new x.Event(e, t) + } + if (e && e.type) { + this.originalEvent = e; + this.type = e.type; + this.isDefaultPrevented = e.defaultPrevented || e.defaultPrevented === undefined && e.returnValue === false ? xe : Te; + this.target = e.target && e.target.nodeType === 3 ? e.target.parentNode : e.target; + this.currentTarget = e.currentTarget; + this.relatedTarget = e.relatedTarget + } else { + this.type = e + } + if (t) { + x.extend(this, t) + } + this.timeStamp = e && e.timeStamp || Date.now(); + this[x.expando] = true + }; + x.Event.prototype = { + constructor: x.Event, + isDefaultPrevented: Te, + isPropagationStopped: Te, + isImmediatePropagationStopped: Te, + isSimulated: false, + preventDefault: function () { + var e = this.originalEvent; + this.isDefaultPrevented = xe; + if (e && !this.isSimulated) { + e.preventDefault() + } + }, + stopPropagation: function () { + var e = this.originalEvent; + this.isPropagationStopped = xe; + if (e && !this.isSimulated) { + e.stopPropagation() + } + }, + stopImmediatePropagation: function () { + var e = this.originalEvent; + this.isImmediatePropagationStopped = xe; + if (e && !this.isSimulated) { + e.stopImmediatePropagation() + } + this.stopPropagation() + } + }; + x.each({ + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + char: true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: function (e) { + var t = e.button; + if (e.which == null && _e.test(e.type)) { + return e.charCode != null ? e.charCode : e.keyCode + } + if (!e.which && t !== undefined && Pe.test(e.type)) { + if (t & 1) { + return 1 + } + if (t & 2) { + return 3 + } + if (t & 4) { + return 2 + } + return 0 + } + return e.which + } + }, x.event.addProp); + x.each({focus: "focusin", blur: "focusout"}, function (e, t) { + x.event.special[e] = { + setup: function () { + Re(this, e, ke); + return false + }, trigger: function () { + Re(this, e); + return true + }, delegateType: t + } + }); + x.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function (e, o) { + x.event.special[e] = { + delegateType: o, bindType: o, handle: function (e) { + var t, i = this, n = e.relatedTarget, r = e.handleObj; + if (!n || n !== i && !x.contains(i, n)) { + e.type = r.origType; + t = r.handler.apply(this, arguments); + e.type = o + } + return t + } + } + }); + x.fn.extend({ + on: function (e, t, i, n) { + return Me(this, e, t, i, n) + }, one: function (e, t, i, n) { + return Me(this, e, t, i, n, 1) + }, off: function (e, t, i) { + var n, r; + if (e && e.preventDefault && e.handleObj) { + n = e.handleObj; + x(e.delegateTarget).off(n.namespace ? n.origType + "." + n.namespace : n.origType, n.selector, n.handler); + return this + } + if (typeof e === "object") { + for (r in e) { + this.off(r, t, e[r]) + } + return this + } + if (t === false || typeof t === "function") { + i = t; + t = undefined + } + if (i === false) { + i = Te + } + return this.each(function () { + x.event.remove(this, e, i, t) + }) + } + }); + var Ee = /\s*$/g; + + function Ae(e, t) { + if (k(e, "table") && k(t.nodeType !== 11 ? t : t.firstChild, "tr")) { + return x(e).children("tbody")[0] || e + } + return e + } + + function Oe(e) { + e.type = (e.getAttribute("type") !== null) + "/" + e.type; + return e + } + + function Fe(e) { + if ((e.type || "").slice(0, 5) === "true/") { + e.type = e.type.slice(5) + } else { + e.removeAttribute("type") + } + return e + } + + function Be(e, t) { + var i, n, r, o, a, s, l; + if (t.nodeType !== 1) { + return + } + if ($.hasData(e)) { + o = $.get(e); + l = o.events; + if (l) { + $.remove(t, "handle events"); + for (r in l) { + for (i = 0, n = l[r].length; i < n; i++) { + x.event.add(t, r, l[r][i]) + } + } + } + } + if (Z.hasData(e)) { + a = Z.access(e); + s = x.extend({}, a); + Z.set(t, s) + } + } + + function Le(e, t) { + var i = t.nodeName.toLowerCase(); + if (i === "input" && pe.test(e.type)) { + t.checked = e.checked + } else if (i === "input" || i === "textarea") { + t.defaultValue = e.defaultValue + } + } + + function qe(i, n, r, o) { + n = v(n); + var e, t, a, s, l, u, f = 0, h = i.length, c = h - 1, d = n[0], p = g(d); + if (p || h > 1 && typeof d === "string" && !m.checkClone && Ie.test(d)) { + return i.each(function (e) { + var t = i.eq(e); + if (p) { + n[0] = d.call(this, e, t.html()) + } + qe(t, n, r, o) + }) + } + if (h) { + e = we(n, i[0].ownerDocument, false, i, o); + t = e.firstChild; + if (e.childNodes.length === 1) { + e = t + } + if (t || o) { + a = x.map(ge(e, "script"), Oe); + s = a.length; + for (; f < h; f++) { + l = e; + if (f !== c) { + l = x.clone(l, true, true); + if (s) { + x.merge(a, ge(l, "script")) + } + } + r.call(i[f], l, f) + } + if (s) { + u = a[a.length - 1].ownerDocument; + x.map(a, Fe); + for (f = 0; f < s; f++) { + l = a[f]; + if (ye.test(l.type || "") && !$.access(l, "globalEval") && x.contains(u, l)) { + if (l.src && (l.type || "").toLowerCase() !== "module") { + if (x._evalUrl && !l.noModule) { + x._evalUrl(l.src, {nonce: l.nonce || l.getAttribute("nonce")}, u) + } + } else { + b(l.textContent.replace(ze, ""), l, u) + } + } + } + } + } + } + return i + } + + function Ne(e, t, i) { + var n, r = t ? x.filter(t, e) : e, o = 0; + for (; (n = r[o]) != null; o++) { + if (!i && n.nodeType === 1) { + x.cleanData(ge(n)) + } + if (n.parentNode) { + if (i && se(n)) { + Se(ge(n, "script")) + } + n.parentNode.removeChild(n) + } + } + return e + } + + x.extend({ + htmlPrefilter: function (e) { + return e + }, clone: function (e, t, i) { + var n, r, o, a, s = e.cloneNode(true), l = se(e); + if (!m.noCloneChecked && (e.nodeType === 1 || e.nodeType === 11) && !x.isXMLDoc(e)) { + a = ge(s); + o = ge(e); + for (n = 0, r = o.length; n < r; n++) { + Le(o[n], a[n]) + } + } + if (t) { + if (i) { + o = o || ge(e); + a = a || ge(s); + for (n = 0, r = o.length; n < r; n++) { + Be(o[n], a[n]) + } + } else { + Be(e, s) + } + } + a = ge(s, "script"); + if (a.length > 0) { + Se(a, !l && ge(e, "script")) + } + return s + }, cleanData: function (e) { + var t, i, n, r = x.event.special, o = 0; + for (; (i = e[o]) !== undefined; o++) { + if (J(i)) { + if (t = i[$.expando]) { + if (t.events) { + for (n in t.events) { + if (r[n]) { + x.event.remove(i, n) + } else { + x.removeEvent(i, n, t.handle) + } + } + } + i[$.expando] = undefined + } + if (i[Z.expando]) { + i[Z.expando] = undefined + } + } + } + } + }); + x.fn.extend({ + detach: function (e) { + return Ne(this, e, true) + }, remove: function (e) { + return Ne(this, e) + }, text: function (e) { + return W(this, function (e) { + return e === undefined ? x.text(this) : this.empty().each(function () { + if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { + this.textContent = e + } + }) + }, null, e, arguments.length) + }, append: function () { + return qe(this, arguments, function (e) { + if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { + var t = Ae(this, e); + t.appendChild(e) + } + }) + }, prepend: function () { + return qe(this, arguments, function (e) { + if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { + var t = Ae(this, e); + t.insertBefore(e, t.firstChild) + } + }) + }, before: function () { + return qe(this, arguments, function (e) { + if (this.parentNode) { + this.parentNode.insertBefore(e, this) + } + }) + }, after: function () { + return qe(this, arguments, function (e) { + if (this.parentNode) { + this.parentNode.insertBefore(e, this.nextSibling) + } + }) + }, empty: function () { + var e, t = 0; + for (; (e = this[t]) != null; t++) { + if (e.nodeType === 1) { + x.cleanData(ge(e, false)); + e.textContent = "" + } + } + return this + }, clone: function (e, t) { + e = e == null ? false : e; + t = t == null ? e : t; + return this.map(function () { + return x.clone(this, e, t) + }) + }, html: function (e) { + return W(this, function (e) { + var t = this[0] || {}, i = 0, n = this.length; + if (e === undefined && t.nodeType === 1) { + return t.innerHTML + } + if (typeof e === "string" && !Ee.test(e) && !me[(ve.exec(e) || ["", ""])[1].toLowerCase()]) { + e = x.htmlPrefilter(e); + try { + for (; i < n; i++) { + t = this[i] || {}; + if (t.nodeType === 1) { + x.cleanData(ge(t, false)); + t.innerHTML = e + } + } + t = 0 + } catch (e) { + } + } + if (t) { + this.empty().append(e) + } + }, null, e, arguments.length) + }, replaceWith: function () { + var i = []; + return qe(this, arguments, function (e) { + var t = this.parentNode; + if (x.inArray(this, i) < 0) { + x.cleanData(ge(this)); + if (t) { + t.replaceChild(e, this) + } + } + }, i) + } + }); + x.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function (e, a) { + x.fn[e] = function (e) { + var t, i = [], n = x(e), r = n.length - 1, o = 0; + for (; o <= r; o++) { + t = o === r ? this : this.clone(true); + x(n[o])[a](t); + l.apply(i, t.get()) + } + return this.pushStack(i) + } + }); + var He = new RegExp("^(" + ne + ")(?!px)[a-z%]+$", "i"); + var je = function (e) { + var t = e.ownerDocument.defaultView; + if (!t || !t.opener) { + t = P + } + return t.getComputedStyle(e) + }; + var Ue = function (e, t, i) { + var n, r, o = {}; + for (r in t) { + o[r] = e.style[r]; + e.style[r] = t[r] + } + n = i.call(e); + for (r in t) { + e.style[r] = o[r] + } + return n + }; + var We = new RegExp(oe.join("|"), "i"); + (function () { + function e() { + if (!u) { + return + } + l.style.cssText = "position:absolute;left:-11111px;width:60px;" + "margin-top:1px;padding:0;border:0"; + u.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + "margin:auto;border:1px;padding:1px;" + "width:60%;top:1%"; + ae.appendChild(l).appendChild(u); + var e = P.getComputedStyle(u); + i = e.top !== "1%"; + s = t(e.marginLeft) === 12; + u.style.right = "60%"; + o = t(e.right) === 36; + n = t(e.width) === 36; + u.style.position = "absolute"; + r = t(u.offsetWidth / 3) === 12; + ae.removeChild(l); + u = null + } + + function t(e) { + return Math.round(parseFloat(e)) + } + + var i, n, r, o, a, s, l = C.createElement("div"), u = C.createElement("div"); + if (!u.style) { + return + } + u.style.backgroundClip = "content-box"; + u.cloneNode(true).style.backgroundClip = ""; + m.clearCloneStyle = u.style.backgroundClip === "content-box"; + x.extend(m, { + boxSizingReliable: function () { + e(); + return n + }, pixelBoxStyles: function () { + e(); + return o + }, pixelPosition: function () { + e(); + return i + }, reliableMarginLeft: function () { + e(); + return s + }, scrollboxSize: function () { + e(); + return r + }, reliableTrDimensions: function () { + var e, t, i, n; + if (a == null) { + e = C.createElement("table"); + t = C.createElement("tr"); + i = C.createElement("div"); + e.style.cssText = "position:absolute;left:-11111px"; + t.style.height = "1px"; + i.style.height = "9px"; + ae.appendChild(e).appendChild(t).appendChild(i); + n = P.getComputedStyle(t); + a = parseInt(n.height) > 3; + ae.removeChild(e) + } + return a + } + }) + })(); + + function Ge(e, t, i) { + var n, r, o, a, s = e.style; + i = i || je(e); + if (i) { + a = i.getPropertyValue(t) || i[t]; + if (a === "" && !se(e)) { + a = x.style(e, t) + } + if (!m.pixelBoxStyles() && He.test(a) && We.test(t)) { + n = s.width; + r = s.minWidth; + o = s.maxWidth; + s.minWidth = s.maxWidth = s.width = a; + a = i.width; + s.width = n; + s.minWidth = r; + s.maxWidth = o + } + } + return a !== undefined ? a + "" : a + } + + function Ve(e, t) { + return { + get: function () { + if (e()) { + delete this.get; + return + } + return (this.get = t).apply(this, arguments) + } + } + } + + var Ye = ["Webkit", "Moz", "ms"], Xe = C.createElement("div").style, Je = {}; + + function Ke(e) { + var t = e[0].toUpperCase() + e.slice(1), i = Ye.length; + while (i--) { + e = Ye[i] + t; + if (e in Xe) { + return e + } + } + } + + function $e(e) { + var t = x.cssProps[e] || Je[e]; + if (t) { + return t + } + if (e in Xe) { + return e + } + return Je[e] = Ke(e) || e + } + + var Ze = /^(none|table(?!-c[ea]).+)/, Qe = /^--/, + et = {position: "absolute", visibility: "hidden", display: "block"}, + tt = {letterSpacing: "0", fontWeight: "400"}; + + function it(e, t, i) { + var n = re.exec(t); + return n ? Math.max(0, n[2] - (i || 0)) + (n[3] || "px") : t + } + + function nt(e, t, i, n, r, o) { + var a = t === "width" ? 1 : 0, s = 0, l = 0; + if (i === (n ? "border" : "content")) { + return 0 + } + for (; a < 4; a += 2) { + if (i === "margin") { + l += x.css(e, i + oe[a], true, r) + } + if (!n) { + l += x.css(e, "padding" + oe[a], true, r); + if (i !== "padding") { + l += x.css(e, "border" + oe[a] + "Width", true, r) + } else { + s += x.css(e, "border" + oe[a] + "Width", true, r) + } + } else { + if (i === "content") { + l -= x.css(e, "padding" + oe[a], true, r) + } + if (i !== "margin") { + l -= x.css(e, "border" + oe[a] + "Width", true, r) + } + } + } + if (!n && o >= 0) { + l += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - l - s - .5)) || 0 + } + return l + } + + function rt(e, t, i) { + var n = je(e), r = !m.boxSizingReliable() || i, + o = r && x.css(e, "boxSizing", false, n) === "border-box", a = o, s = Ge(e, t, n), + l = "offset" + t[0].toUpperCase() + t.slice(1); + if (He.test(s)) { + if (!i) { + return s + } + s = "auto" + } + if ((!m.boxSizingReliable() && o || !m.reliableTrDimensions() && k(e, "tr") || s === "auto" || !parseFloat(s) && x.css(e, "display", false, n) === "inline") && e.getClientRects().length) { + o = x.css(e, "boxSizing", false, n) === "border-box"; + a = l in e; + if (a) { + s = e[l] + } + } + s = parseFloat(s) || 0; + return s + nt(e, t, i || (o ? "border" : "content"), a, n, s) + "px" + } + + x.extend({ + cssHooks: { + opacity: { + get: function (e, t) { + if (t) { + var i = Ge(e, "opacity"); + return i === "" ? "1" : i + } + } + } + }, + cssNumber: { + animationIterationCount: true, + columnCount: true, + fillOpacity: true, + flexGrow: true, + flexShrink: true, + fontWeight: true, + gridArea: true, + gridColumn: true, + gridColumnEnd: true, + gridColumnStart: true, + gridRow: true, + gridRowEnd: true, + gridRowStart: true, + lineHeight: true, + opacity: true, + order: true, + orphans: true, + widows: true, + zIndex: true, + zoom: true + }, + cssProps: {}, + style: function (e, t, i, n) { + if (!e || e.nodeType === 3 || e.nodeType === 8 || !e.style) { + return + } + var r, o, a, s = X(t), l = Qe.test(t), u = e.style; + if (!l) { + t = $e(s) + } + a = x.cssHooks[t] || x.cssHooks[s]; + if (i !== undefined) { + o = typeof i; + if (o === "string" && (r = re.exec(i)) && r[1]) { + i = fe(e, t, r); + o = "number" + } + if (i == null || i !== i) { + return + } + if (o === "number" && !l) { + i += r && r[3] || (x.cssNumber[s] ? "" : "px") + } + if (!m.clearCloneStyle && i === "" && t.indexOf("background") === 0) { + u[t] = "inherit" + } + if (!a || !("set" in a) || (i = a.set(e, i, n)) !== undefined) { + if (l) { + u.setProperty(t, i) + } else { + u[t] = i + } + } + } else { + if (a && "get" in a && (r = a.get(e, false, n)) !== undefined) { + return r + } + return u[t] + } + }, + css: function (e, t, i, n) { + var r, o, a, s = X(t), l = Qe.test(t); + if (!l) { + t = $e(s) + } + a = x.cssHooks[t] || x.cssHooks[s]; + if (a && "get" in a) { + r = a.get(e, true, i) + } + if (r === undefined) { + r = Ge(e, t, n) + } + if (r === "normal" && t in tt) { + r = tt[t] + } + if (i === "" || i) { + o = parseFloat(r); + return i === true || isFinite(o) ? o || 0 : r + } + return r + } + }); + x.each(["height", "width"], function (e, u) { + x.cssHooks[u] = { + get: function (e, t, i) { + if (t) { + return Ze.test(x.css(e, "display")) && (!e.getClientRects().length || !e.getBoundingClientRect().width) ? Ue(e, et, function () { + return rt(e, u, i) + }) : rt(e, u, i) + } + }, set: function (e, t, i) { + var n, r = je(e), o = !m.scrollboxSize() && r.position === "absolute", a = o || i, + s = a && x.css(e, "boxSizing", false, r) === "border-box", l = i ? nt(e, u, i, s, r) : 0; + if (s && o) { + l -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(r[u]) - nt(e, u, "border", false, r) - .5) + } + if (l && (n = re.exec(t)) && (n[3] || "px") !== "px") { + e.style[u] = t; + t = x.css(e, u) + } + return it(e, t, l) + } + } + }); + x.cssHooks.marginLeft = Ve(m.reliableMarginLeft, function (e, t) { + if (t) { + return (parseFloat(Ge(e, "marginLeft")) || e.getBoundingClientRect().left - Ue(e, {marginLeft: 0}, function () { + return e.getBoundingClientRect().left + })) + "px" + } + }); + x.each({margin: "", padding: "", border: "Width"}, function (r, o) { + x.cssHooks[r + o] = { + expand: function (e) { + var t = 0, i = {}, n = typeof e === "string" ? e.split(" ") : [e]; + for (; t < 4; t++) { + i[r + oe[t] + o] = n[t] || n[t - 2] || n[0] + } + return i + } + }; + if (r !== "margin") { + x.cssHooks[r + o].set = it + } + }); + x.fn.extend({ + css: function (e, t) { + return W(this, function (e, t, i) { + var n, r, o = {}, a = 0; + if (Array.isArray(t)) { + n = je(e); + r = t.length; + for (; a < r; a++) { + o[t[a]] = x.css(e, t[a], false, n) + } + return o + } + return i !== undefined ? x.style(e, t, i) : x.css(e, t) + }, e, t, arguments.length > 1) + } + }); + + function ot(e, t, i, n, r) { + return new ot.prototype.init(e, t, i, n, r) + } + + x.Tween = ot; + ot.prototype = { + constructor: ot, init: function (e, t, i, n, r, o) { + this.elem = e; + this.prop = i; + this.easing = r || x.easing._default; + this.options = t; + this.start = this.now = this.cur(); + this.end = n; + this.unit = o || (x.cssNumber[i] ? "" : "px") + }, cur: function () { + var e = ot.propHooks[this.prop]; + return e && e.get ? e.get(this) : ot.propHooks._default.get(this) + }, run: function (e) { + var t, i = ot.propHooks[this.prop]; + if (this.options.duration) { + this.pos = t = x.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) + } else { + this.pos = t = e + } + this.now = (this.end - this.start) * t + this.start; + if (this.options.step) { + this.options.step.call(this.elem, this.now, this) + } + if (i && i.set) { + i.set(this) + } else { + ot.propHooks._default.set(this) + } + return this + } + }; + ot.prototype.init.prototype = ot.prototype; + ot.propHooks = { + _default: { + get: function (e) { + var t; + if (e.elem.nodeType !== 1 || e.elem[e.prop] != null && e.elem.style[e.prop] == null) { + return e.elem[e.prop] + } + t = x.css(e.elem, e.prop, ""); + return !t || t === "auto" ? 0 : t + }, set: function (e) { + if (x.fx.step[e.prop]) { + x.fx.step[e.prop](e) + } else if (e.elem.nodeType === 1 && (x.cssHooks[e.prop] || e.elem.style[$e(e.prop)] != null)) { + x.style(e.elem, e.prop, e.now + e.unit) + } else { + e.elem[e.prop] = e.now + } + } + } + }; + ot.propHooks.scrollTop = ot.propHooks.scrollLeft = { + set: function (e) { + if (e.elem.nodeType && e.elem.parentNode) { + e.elem[e.prop] = e.now + } + } + }; + x.easing = { + linear: function (e) { + return e + }, swing: function (e) { + return .5 - Math.cos(e * Math.PI) / 2 + }, _default: "swing" + }; + x.fx = ot.prototype.init; + x.fx.step = {}; + var at, st, lt = /^(?:toggle|show|hide)$/, ut = /queueHooks$/; + + function ft() { + if (st) { + if (C.hidden === false && P.requestAnimationFrame) { + P.requestAnimationFrame(ft) + } else { + P.setTimeout(ft, x.fx.interval) + } + x.fx.tick() + } + } + + function ht() { + P.setTimeout(function () { + at = undefined + }); + return at = Date.now() + } + + function ct(e, t) { + var i, n = 0, r = {height: e}; + t = t ? 1 : 0; + for (; n < 4; n += 2 - t) { + i = oe[n]; + r["margin" + i] = r["padding" + i] = e + } + if (t) { + r.opacity = r.width = e + } + return r + } + + function dt(e, t, i) { + var n, r = (yt.tweeners[t] || []).concat(yt.tweeners["*"]), o = 0, a = r.length; + for (; o < a; o++) { + if (n = r[o].call(i, t, e)) { + return n + } + } + } + + function pt(e, t, i) { + var n, r, o, a, s, l, u, f, h = "width" in t || "height" in t, c = this, d = {}, p = e.style, + v = e.nodeType && ue(e), y = $.get(e, "fxshow"); + if (!i.queue) { + a = x._queueHooks(e, "fx"); + if (a.unqueued == null) { + a.unqueued = 0; + s = a.empty.fire; + a.empty.fire = function () { + if (!a.unqueued) { + s() + } + } + } + a.unqueued++; + c.always(function () { + c.always(function () { + a.unqueued--; + if (!x.queue(e, "fx").length) { + a.empty.fire() + } + }) + }) + } + for (n in t) { + r = t[n]; + if (lt.test(r)) { + delete t[n]; + o = o || r === "toggle"; + if (r === (v ? "hide" : "show")) { + if (r === "show" && y && y[n] !== undefined) { + v = true + } else { + continue + } + } + d[n] = y && y[n] || x.style(e, n) + } + } + l = !x.isEmptyObject(t); + if (!l && x.isEmptyObject(d)) { + return + } + if (h && e.nodeType === 1) { + i.overflow = [p.overflow, p.overflowX, p.overflowY]; + u = y && y.display; + if (u == null) { + u = $.get(e, "display") + } + f = x.css(e, "display"); + if (f === "none") { + if (u) { + f = u + } else { + de([e], true); + u = e.style.display || u; + f = x.css(e, "display"); + de([e]) + } + } + if (f === "inline" || f === "inline-block" && u != null) { + if (x.css(e, "float") === "none") { + if (!l) { + c.done(function () { + p.display = u + }); + if (u == null) { + f = p.display; + u = f === "none" ? "" : f + } + } + p.display = "inline-block" + } + } + } + if (i.overflow) { + p.overflow = "hidden"; + c.always(function () { + p.overflow = i.overflow[0]; + p.overflowX = i.overflow[1]; + p.overflowY = i.overflow[2] + }) + } + l = false; + for (n in d) { + if (!l) { + if (y) { + if ("hidden" in y) { + v = y.hidden + } + } else { + y = $.access(e, "fxshow", {display: u}) + } + if (o) { + y.hidden = !v + } + if (v) { + de([e], true) + } + c.done(function () { + if (!v) { + de([e]) + } + $.remove(e, "fxshow"); + for (n in d) { + x.style(e, n, d[n]) + } + }) + } + l = dt(v ? y[n] : 0, n, c); + if (!(n in y)) { + y[n] = l.start; + if (v) { + l.end = l.start; + l.start = 0 + } + } + } + } + + function vt(e, t) { + var i, n, r, o, a; + for (i in e) { + n = X(i); + r = t[n]; + o = e[i]; + if (Array.isArray(o)) { + r = o[1]; + o = e[i] = o[0] + } + if (i !== n) { + e[n] = o; + delete e[i] + } + a = x.cssHooks[n]; + if (a && "expand" in a) { + o = a.expand(o); + delete e[n]; + for (i in o) { + if (!(i in e)) { + e[i] = o[i]; + t[i] = r + } + } + } else { + t[n] = r + } + } + } + + function yt(a, e, t) { + var i, s, n = 0, r = yt.prefilters.length, l = x.Deferred().always(function () { + delete o.elem + }), o = function () { + if (s) { + return false + } + var e = at || ht(), t = Math.max(0, u.startTime + u.duration - e), i = t / u.duration || 0, + n = 1 - i, r = 0, o = u.tweens.length; + for (; r < o; r++) { + u.tweens[r].run(n) + } + l.notifyWith(a, [u, n, t]); + if (n < 1 && o) { + return t + } + if (!o) { + l.notifyWith(a, [u, 1, 0]) + } + l.resolveWith(a, [u]); + return false + }, u = l.promise({ + elem: a, + props: x.extend({}, e), + opts: x.extend(true, {specialEasing: {}, easing: x.easing._default}, t), + originalProperties: e, + originalOptions: t, + startTime: at || ht(), + duration: t.duration, + tweens: [], + createTween: function (e, t) { + var i = x.Tween(a, u.opts, e, t, u.opts.specialEasing[e] || u.opts.easing); + u.tweens.push(i); + return i + }, + stop: function (e) { + var t = 0, i = e ? u.tweens.length : 0; + if (s) { + return this + } + s = true; + for (; t < i; t++) { + u.tweens[t].run(1) + } + if (e) { + l.notifyWith(a, [u, 1, 0]); + l.resolveWith(a, [u, e]) + } else { + l.rejectWith(a, [u, e]) + } + return this + } + }), f = u.props; + vt(f, u.opts.specialEasing); + for (; n < r; n++) { + i = yt.prefilters[n].call(u, a, f, u.opts); + if (i) { + if (g(i.stop)) { + x._queueHooks(u.elem, u.opts.queue).stop = i.stop.bind(i) + } + return i + } + } + x.map(f, dt, u); + if (g(u.opts.start)) { + u.opts.start.call(a, u) + } + u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always); + x.fx.timer(x.extend(o, {elem: a, anim: u, queue: u.opts.queue})); + return u + } + + x.Animation = x.extend(yt, { + tweeners: { + "*": [function (e, t) { + var i = this.createTween(e, t); + fe(i.elem, e, re.exec(t), i); + return i + }] + }, tweener: function (e, t) { + if (g(e)) { + t = e; + e = ["*"] + } else { + e = e.match(F) + } + var i, n = 0, r = e.length; + for (; n < r; n++) { + i = e[n]; + yt.tweeners[i] = yt.tweeners[i] || []; + yt.tweeners[i].unshift(t) + } + }, prefilters: [pt], prefilter: function (e, t) { + if (t) { + yt.prefilters.unshift(e) + } else { + yt.prefilters.push(e) + } + } + }); + x.speed = function (e, t, i) { + var n = e && typeof e === "object" ? x.extend({}, e) : { + complete: i || !i && t || g(e) && e, + duration: e, + easing: i && t || t && !g(t) && t + }; + if (x.fx.off) { + n.duration = 0 + } else { + if (typeof n.duration !== "number") { + if (n.duration in x.fx.speeds) { + n.duration = x.fx.speeds[n.duration] + } else { + n.duration = x.fx.speeds._default + } + } + } + if (n.queue == null || n.queue === true) { + n.queue = "fx" + } + n.old = n.complete; + n.complete = function () { + if (g(n.old)) { + n.old.call(this) + } + if (n.queue) { + x.dequeue(this, n.queue) + } + }; + return n + }; + x.fn.extend({ + fadeTo: function (e, t, i, n) { + return this.filter(ue).css("opacity", 0).show().end().animate({opacity: t}, e, i, n) + }, animate: function (t, e, i, n) { + var r = x.isEmptyObject(t), o = x.speed(e, i, n), a = function () { + var e = yt(this, x.extend({}, t), o); + if (r || $.get(this, "finish")) { + e.stop(true) + } + }; + a.finish = a; + return r || o.queue === false ? this.each(a) : this.queue(o.queue, a) + }, stop: function (r, e, o) { + var a = function (e) { + var t = e.stop; + delete e.stop; + t(o) + }; + if (typeof r !== "string") { + o = e; + e = r; + r = undefined + } + if (e) { + this.queue(r || "fx", []) + } + return this.each(function () { + var e = true, t = r != null && r + "queueHooks", i = x.timers, n = $.get(this); + if (t) { + if (n[t] && n[t].stop) { + a(n[t]) + } + } else { + for (t in n) { + if (n[t] && n[t].stop && ut.test(t)) { + a(n[t]) + } + } + } + for (t = i.length; t--;) { + if (i[t].elem === this && (r == null || i[t].queue === r)) { + i[t].anim.stop(o); + e = false; + i.splice(t, 1) + } + } + if (e || !o) { + x.dequeue(this, r) + } + }) + }, finish: function (a) { + if (a !== false) { + a = a || "fx" + } + return this.each(function () { + var e, t = $.get(this), i = t[a + "queue"], n = t[a + "queueHooks"], r = x.timers, + o = i ? i.length : 0; + t.finish = true; + x.queue(this, a, []); + if (n && n.stop) { + n.stop.call(this, true) + } + for (e = r.length; e--;) { + if (r[e].elem === this && r[e].queue === a) { + r[e].anim.stop(true); + r.splice(e, 1) + } + } + for (e = 0; e < o; e++) { + if (i[e] && i[e].finish) { + i[e].finish.call(this) + } + } + delete t.finish + }) + } + }); + x.each(["toggle", "show", "hide"], function (e, n) { + var r = x.fn[n]; + x.fn[n] = function (e, t, i) { + return e == null || typeof e === "boolean" ? r.apply(this, arguments) : this.animate(ct(n, true), e, t, i) + } + }); + x.each({ + slideDown: ct("show"), + slideUp: ct("hide"), + slideToggle: ct("toggle"), + fadeIn: {opacity: "show"}, + fadeOut: {opacity: "hide"}, + fadeToggle: {opacity: "toggle"} + }, function (e, n) { + x.fn[e] = function (e, t, i) { + return this.animate(n, e, t, i) + } + }); + x.timers = []; + x.fx.tick = function () { + var e, t = 0, i = x.timers; + at = Date.now(); + for (; t < i.length; t++) { + e = i[t]; + if (!e() && i[t] === e) { + i.splice(t--, 1) + } + } + if (!i.length) { + x.fx.stop() + } + at = undefined + }; + x.fx.timer = function (e) { + x.timers.push(e); + x.fx.start() + }; + x.fx.interval = 13; + x.fx.start = function () { + if (st) { + return + } + st = true; + ft() + }; + x.fx.stop = function () { + st = null + }; + x.fx.speeds = {slow: 600, fast: 200, _default: 400}; + x.fn.delay = function (n, e) { + n = x.fx ? x.fx.speeds[n] || n : n; + e = e || "fx"; + return this.queue(e, function (e, t) { + var i = P.setTimeout(e, n); + t.stop = function () { + P.clearTimeout(i) + } + }) + }; + (function () { + var e = C.createElement("input"), t = C.createElement("select"), + i = t.appendChild(C.createElement("option")); + e.type = "checkbox"; + m.checkOn = e.value !== ""; + m.optSelected = i.selected; + e = C.createElement("input"); + e.value = "t"; + e.type = "radio"; + m.radioValue = e.value === "t" + })(); + var mt, gt = x.expr.attrHandle; + x.fn.extend({ + attr: function (e, t) { + return W(this, x.attr, e, t, arguments.length > 1) + }, removeAttr: function (e) { + return this.each(function () { + x.removeAttr(this, e) + }) + } + }); + x.extend({ + attr: function (e, t, i) { + var n, r, o = e.nodeType; + if (o === 3 || o === 8 || o === 2) { + return + } + if (typeof e.getAttribute === "undefined") { + return x.prop(e, t, i) + } + if (o !== 1 || !x.isXMLDoc(e)) { + r = x.attrHooks[t.toLowerCase()] || (x.expr.match.bool.test(t) ? mt : undefined) + } + if (i !== undefined) { + if (i === null) { + x.removeAttr(e, t); + return + } + if (r && "set" in r && (n = r.set(e, i, t)) !== undefined) { + return n + } + e.setAttribute(t, i + ""); + return i + } + if (r && "get" in r && (n = r.get(e, t)) !== null) { + return n + } + n = x.find.attr(e, t); + return n == null ? undefined : n + }, attrHooks: { + type: { + set: function (e, t) { + if (!m.radioValue && t === "radio" && k(e, "input")) { + var i = e.value; + e.setAttribute("type", t); + if (i) { + e.value = i + } + return t + } + } + } + }, removeAttr: function (e, t) { + var i, n = 0, r = t && t.match(F); + if (r && e.nodeType === 1) { + while (i = r[n++]) { + e.removeAttribute(i) + } + } + } + }); + mt = { + set: function (e, t, i) { + if (t === false) { + x.removeAttr(e, i) + } else { + e.setAttribute(i, i) + } + return i + } + }; + x.each(x.expr.match.bool.source.match(/\w+/g), function (e, t) { + var a = gt[t] || x.find.attr; + gt[t] = function (e, t, i) { + var n, r, o = t.toLowerCase(); + if (!i) { + r = gt[o]; + gt[o] = n; + n = a(e, t, i) != null ? o : null; + gt[o] = r + } + return n + } + }); + var St = /^(?:input|select|textarea|button)$/i, bt = /^(?:a|area)$/i; + x.fn.extend({ + prop: function (e, t) { + return W(this, x.prop, e, t, arguments.length > 1) + }, removeProp: function (e) { + return this.each(function () { + delete this[x.propFix[e] || e] + }) + } + }); + x.extend({ + prop: function (e, t, i) { + var n, r, o = e.nodeType; + if (o === 3 || o === 8 || o === 2) { + return + } + if (o !== 1 || !x.isXMLDoc(e)) { + t = x.propFix[t] || t; + r = x.propHooks[t] + } + if (i !== undefined) { + if (r && "set" in r && (n = r.set(e, i, t)) !== undefined) { + return n + } + return e[t] = i + } + if (r && "get" in r && (n = r.get(e, t)) !== null) { + return n + } + return e[t] + }, propHooks: { + tabIndex: { + get: function (e) { + var t = x.find.attr(e, "tabindex"); + if (t) { + return parseInt(t, 10) + } + if (St.test(e.nodeName) || bt.test(e.nodeName) && e.href) { + return 0 + } + return -1 + } + } + }, propFix: {for: "htmlFor", class: "className"} + }); + if (!m.optSelected) { + x.propHooks.selected = { + get: function (e) { + var t = e.parentNode; + if (t && t.parentNode) { + t.parentNode.selectedIndex + } + return null + }, set: function (e) { + var t = e.parentNode; + if (t) { + t.selectedIndex; + if (t.parentNode) { + t.parentNode.selectedIndex + } + } + } + } + } + x.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { + x.propFix[this.toLowerCase()] = this + }); + + function wt(e) { + var t = e.match(F) || []; + return t.join(" ") + } + + function _t(e) { + return e.getAttribute && e.getAttribute("class") || "" + } + + function Pt(e) { + if (Array.isArray(e)) { + return e + } + if (typeof e === "string") { + return e.match(F) || [] + } + return [] + } + + x.fn.extend({ + addClass: function (t) { + var e, i, n, r, o, a, s, l = 0; + if (g(t)) { + return this.each(function (e) { + x(this).addClass(t.call(this, e, _t(this))) + }) + } + e = Pt(t); + if (e.length) { + while (i = this[l++]) { + r = _t(i); + n = i.nodeType === 1 && " " + wt(r) + " "; + if (n) { + a = 0; + while (o = e[a++]) { + if (n.indexOf(" " + o + " ") < 0) { + n += o + " " + } + } + s = wt(n); + if (r !== s) { + i.setAttribute("class", s) + } + } + } + } + return this + }, removeClass: function (t) { + var e, i, n, r, o, a, s, l = 0; + if (g(t)) { + return this.each(function (e) { + x(this).removeClass(t.call(this, e, _t(this))) + }) + } + if (!arguments.length) { + return this.attr("class", "") + } + e = Pt(t); + if (e.length) { + while (i = this[l++]) { + r = _t(i); + n = i.nodeType === 1 && " " + wt(r) + " "; + if (n) { + a = 0; + while (o = e[a++]) { + while (n.indexOf(" " + o + " ") > -1) { + n = n.replace(" " + o + " ", " ") + } + } + s = wt(n); + if (r !== s) { + i.setAttribute("class", s) + } + } + } + } + return this + }, toggleClass: function (r, t) { + var o = typeof r, a = o === "string" || Array.isArray(r); + if (typeof t === "boolean" && a) { + return t ? this.addClass(r) : this.removeClass(r) + } + if (g(r)) { + return this.each(function (e) { + x(this).toggleClass(r.call(this, e, _t(this), t), t) + }) + } + return this.each(function () { + var e, t, i, n; + if (a) { + t = 0; + i = x(this); + n = Pt(r); + while (e = n[t++]) { + if (i.hasClass(e)) { + i.removeClass(e) + } else { + i.addClass(e) + } + } + } else if (r === undefined || o === "boolean") { + e = _t(this); + if (e) { + $.set(this, "__className__", e) + } + if (this.setAttribute) { + this.setAttribute("class", e || r === false ? "" : $.get(this, "__className__") || "") + } + } + }) + }, hasClass: function (e) { + var t, i, n = 0; + t = " " + e + " "; + while (i = this[n++]) { + if (i.nodeType === 1 && (" " + wt(_t(i)) + " ").indexOf(t) > -1) { + return true + } + } + return false + } + }); + var Ct = /\r/g; + x.fn.extend({ + val: function (i) { + var n, e, r, t = this[0]; + if (!arguments.length) { + if (t) { + n = x.valHooks[t.type] || x.valHooks[t.nodeName.toLowerCase()]; + if (n && "get" in n && (e = n.get(t, "value")) !== undefined) { + return e + } + e = t.value; + if (typeof e === "string") { + return e.replace(Ct, "") + } + return e == null ? "" : e + } + return + } + r = g(i); + return this.each(function (e) { + var t; + if (this.nodeType !== 1) { + return + } + if (r) { + t = i.call(this, e, x(this).val()) + } else { + t = i + } + if (t == null) { + t = "" + } else if (typeof t === "number") { + t += "" + } else if (Array.isArray(t)) { + t = x.map(t, function (e) { + return e == null ? "" : e + "" + }) + } + n = x.valHooks[this.type] || x.valHooks[this.nodeName.toLowerCase()]; + if (!n || !("set" in n) || n.set(this, t, "value") === undefined) { + this.value = t + } + }) + } + }); + x.extend({ + valHooks: { + option: { + get: function (e) { + var t = x.find.attr(e, "value"); + return t != null ? t : wt(x.text(e)) + } + }, select: { + get: function (e) { + var t, i, n, r = e.options, o = e.selectedIndex, a = e.type === "select-one", + s = a ? null : [], l = a ? o + 1 : r.length; + if (o < 0) { + n = l + } else { + n = a ? o : 0 + } + for (; n < l; n++) { + i = r[n]; + if ((i.selected || n === o) && !i.disabled && (!i.parentNode.disabled || !k(i.parentNode, "optgroup"))) { + t = x(i).val(); + if (a) { + return t + } + s.push(t) + } + } + return s + }, set: function (e, t) { + var i, n, r = e.options, o = x.makeArray(t), a = r.length; + while (a--) { + n = r[a]; + if (n.selected = x.inArray(x.valHooks.option.get(n), o) > -1) { + i = true + } + } + if (!i) { + e.selectedIndex = -1 + } + return o + } + } + } + }); + x.each(["radio", "checkbox"], function () { + x.valHooks[this] = { + set: function (e, t) { + if (Array.isArray(t)) { + return e.checked = x.inArray(x(e).val(), t) > -1 + } + } + }; + if (!m.checkOn) { + x.valHooks[this].get = function (e) { + return e.getAttribute("value") === null ? "on" : e.value + } + } + }); + m.focusin = "onfocusin" in P; + var xt = /^(?:focusinfocus|focusoutblur)$/, Tt = function (e) { + e.stopPropagation() + }; + x.extend(x.event, { + trigger: function (e, t, i, n) { + var r, o, a, s, l, u, f, h, c = [i || C], d = y.call(e, "type") ? e.type : e, + p = y.call(e, "namespace") ? e.namespace.split(".") : []; + o = h = a = i = i || C; + if (i.nodeType === 3 || i.nodeType === 8) { + return + } + if (xt.test(d + x.event.triggered)) { + return + } + if (d.indexOf(".") > -1) { + p = d.split("."); + d = p.shift(); + p.sort() + } + l = d.indexOf(":") < 0 && "on" + d; + e = e[x.expando] ? e : new x.Event(d, typeof e === "object" && e); + e.isTrigger = n ? 2 : 3; + e.namespace = p.join("."); + e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; + e.result = undefined; + if (!e.target) { + e.target = i + } + t = t == null ? [e] : x.makeArray(t, [e]); + f = x.event.special[d] || {}; + if (!n && f.trigger && f.trigger.apply(i, t) === false) { + return + } + if (!n && !f.noBubble && !S(i)) { + s = f.delegateType || d; + if (!xt.test(s + d)) { + o = o.parentNode + } + for (; o; o = o.parentNode) { + c.push(o); + a = o + } + if (a === (i.ownerDocument || C)) { + c.push(a.defaultView || a.parentWindow || P) + } + } + r = 0; + while ((o = c[r++]) && !e.isPropagationStopped()) { + h = o; + e.type = r > 1 ? s : f.bindType || d; + u = ($.get(o, "events") || Object.create(null))[e.type] && $.get(o, "handle"); + if (u) { + u.apply(o, t) + } + u = l && o[l]; + if (u && u.apply && J(o)) { + e.result = u.apply(o, t); + if (e.result === false) { + e.preventDefault() + } + } + } + e.type = d; + if (!n && !e.isDefaultPrevented()) { + if ((!f._default || f._default.apply(c.pop(), t) === false) && J(i)) { + if (l && g(i[d]) && !S(i)) { + a = i[l]; + if (a) { + i[l] = null + } + x.event.triggered = d; + if (e.isPropagationStopped()) { + h.addEventListener(d, Tt) + } + i[d](); + if (e.isPropagationStopped()) { + h.removeEventListener(d, Tt) + } + x.event.triggered = undefined; + if (a) { + i[l] = a + } + } + } + } + return e.result + }, simulate: function (e, t, i) { + var n = x.extend(new x.Event, i, {type: e, isSimulated: true}); + x.event.trigger(n, null, t) + } + }); + x.fn.extend({ + trigger: function (e, t) { + return this.each(function () { + x.event.trigger(e, t, this) + }) + }, triggerHandler: function (e, t) { + var i = this[0]; + if (i) { + return x.event.trigger(e, t, i, true) + } + } + }); + if (!m.focusin) { + x.each({focus: "focusin", blur: "focusout"}, function (i, n) { + var r = function (e) { + x.event.simulate(n, e.target, x.event.fix(e)) + }; + x.event.special[n] = { + setup: function () { + var e = this.ownerDocument || this.document || this, t = $.access(e, n); + if (!t) { + e.addEventListener(i, r, true) + } + $.access(e, n, (t || 0) + 1) + }, teardown: function () { + var e = this.ownerDocument || this.document || this, t = $.access(e, n) - 1; + if (!t) { + e.removeEventListener(i, r, true); + $.remove(e, n) + } else { + $.access(e, n, t) + } + } + } + }) + } + var kt = P.location; + var Dt = {guid: Date.now()}; + var Mt = /\?/; + x.parseXML = function (e) { + var t; + if (!e || typeof e !== "string") { + return null + } + try { + t = (new P.DOMParser).parseFromString(e, "text/xml") + } catch (e) { + t = undefined + } + if (!t || t.getElementsByTagName("parsererror").length) { + x.error("Invalid XML: " + e) + } + return t + }; + var Rt = /\[\]$/, Et = /\r?\n/g, It = /^(?:submit|button|image|reset|file)$/i, + zt = /^(?:input|select|textarea|keygen)/i; + + function At(i, e, n, r) { + var t; + if (Array.isArray(e)) { + x.each(e, function (e, t) { + if (n || Rt.test(i)) { + r(i, t) + } else { + At(i + "[" + (typeof t === "object" && t != null ? e : "") + "]", t, n, r) + } + }) + } else if (!n && w(e) === "object") { + for (t in e) { + At(i + "[" + t + "]", e[t], n, r) + } + } else { + r(i, e) + } + } + + x.param = function (e, t) { + var i, n = [], r = function (e, t) { + var i = g(t) ? t() : t; + n[n.length] = encodeURIComponent(e) + "=" + encodeURIComponent(i == null ? "" : i) + }; + if (e == null) { + return "" + } + if (Array.isArray(e) || e.jquery && !x.isPlainObject(e)) { + x.each(e, function () { + r(this.name, this.value) + }) + } else { + for (i in e) { + At(i, e[i], t, r) + } + } + return n.join("&") + }; + x.fn.extend({ + serialize: function () { + return x.param(this.serializeArray()) + }, serializeArray: function () { + return this.map(function () { + var e = x.prop(this, "elements"); + return e ? x.makeArray(e) : this + }).filter(function () { + var e = this.type; + return this.name && !x(this).is(":disabled") && zt.test(this.nodeName) && !It.test(e) && (this.checked || !pe.test(e)) + }).map(function (e, t) { + var i = x(this).val(); + if (i == null) { + return null + } + if (Array.isArray(i)) { + return x.map(i, function (e) { + return {name: t.name, value: e.replace(Et, "\r\n")} + }) + } + return {name: t.name, value: i.replace(Et, "\r\n")} + }).get() + } + }); + var Ot = /%20/g, Ft = /#.*$/, Bt = /([?&])_=[^&]*/, Lt = /^(.*?):[ \t]*([^\r\n]*)$/gm, + qt = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Nt = /^(?:GET|HEAD)$/, Ht = /^\/\//, + jt = {}, Ut = {}, Wt = "*/".concat("*"), Gt = C.createElement("a"); + Gt.href = kt.href; + + function Vt(o) { + return function (e, t) { + if (typeof e !== "string") { + t = e; + e = "*" + } + var i, n = 0, r = e.toLowerCase().match(F) || []; + if (g(t)) { + while (i = r[n++]) { + if (i[0] === "+") { + i = i.slice(1) || "*"; + (o[i] = o[i] || []).unshift(t) + } else { + (o[i] = o[i] || []).push(t) + } + } + } + } + } + + function Yt(t, r, o, a) { + var s = {}, l = t === Ut; + + function u(e) { + var n; + s[e] = true; + x.each(t[e] || [], function (e, t) { + var i = t(r, o, a); + if (typeof i === "string" && !l && !s[i]) { + r.dataTypes.unshift(i); + u(i); + return false + } else if (l) { + return !(n = i) + } + }); + return n + } + + return u(r.dataTypes[0]) || !s["*"] && u("*") + } + + function Xt(e, t) { + var i, n, r = x.ajaxSettings.flatOptions || {}; + for (i in t) { + if (t[i] !== undefined) { + (r[i] ? e : n || (n = {}))[i] = t[i] + } + } + if (n) { + x.extend(true, e, n) + } + return e + } + + function Jt(e, t, i) { + var n, r, o, a, s = e.contents, l = e.dataTypes; + while (l[0] === "*") { + l.shift(); + if (n === undefined) { + n = e.mimeType || t.getResponseHeader("Content-Type") + } + } + if (n) { + for (r in s) { + if (s[r] && s[r].test(n)) { + l.unshift(r); + break + } + } + } + if (l[0] in i) { + o = l[0] + } else { + for (r in i) { + if (!l[0] || e.converters[r + " " + l[0]]) { + o = r; + break + } + if (!a) { + a = r + } + } + o = o || a + } + if (o) { + if (o !== l[0]) { + l.unshift(o) + } + return i[o] + } + } + + function Kt(e, t, i, n) { + var r, o, a, s, l, u = {}, f = e.dataTypes.slice(); + if (f[1]) { + for (a in e.converters) { + u[a.toLowerCase()] = e.converters[a] + } + } + o = f.shift(); + while (o) { + if (e.responseFields[o]) { + i[e.responseFields[o]] = t + } + if (!l && n && e.dataFilter) { + t = e.dataFilter(t, e.dataType) + } + l = o; + o = f.shift(); + if (o) { + if (o === "*") { + o = l + } else if (l !== "*" && l !== o) { + a = u[l + " " + o] || u["* " + o]; + if (!a) { + for (r in u) { + s = r.split(" "); + if (s[1] === o) { + a = u[l + " " + s[0]] || u["* " + s[0]]; + if (a) { + if (a === true) { + a = u[r] + } else if (u[r] !== true) { + o = s[0]; + f.unshift(s[1]) + } + break + } + } + } + } + if (a !== true) { + if (a && e.throws) { + t = a(t) + } else { + try { + t = a(t) + } catch (e) { + return { + state: "parsererror", + error: a ? e : "No conversion from " + l + " to " + o + } + } + } + } + } + } + } + return {state: "success", data: t} + } + + x.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: kt.href, + type: "GET", + isLocal: qt.test(kt.protocol), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + accepts: { + "*": Wt, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + contents: {xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/}, + responseFields: {xml: "responseXML", text: "responseText", json: "responseJSON"}, + converters: {"* text": String, "text html": true, "text json": JSON.parse, "text xml": x.parseXML}, + flatOptions: {url: true, context: true} + }, + ajaxSetup: function (e, t) { + return t ? Xt(Xt(e, x.ajaxSettings), t) : Xt(x.ajaxSettings, e) + }, + ajaxPrefilter: Vt(jt), + ajaxTransport: Vt(Ut), + ajax: function (e, t) { + if (typeof e === "object") { + t = e; + e = undefined + } + t = t || {}; + var f, h, c, i, d, n, p, v, r, o, y = x.ajaxSetup({}, t), m = y.context || y, + g = y.context && (m.nodeType || m.jquery) ? x(m) : x.event, S = x.Deferred(), + b = x.Callbacks("once memory"), w = y.statusCode || {}, a = {}, s = {}, l = "canceled", _ = { + readyState: 0, getResponseHeader: function (e) { + var t; + if (p) { + if (!i) { + i = {}; + while (t = Lt.exec(c)) { + i[t[1].toLowerCase() + " "] = (i[t[1].toLowerCase() + " "] || []).concat(t[2]) + } + } + t = i[e.toLowerCase() + " "] + } + return t == null ? null : t.join(", ") + }, getAllResponseHeaders: function () { + return p ? c : null + }, setRequestHeader: function (e, t) { + if (p == null) { + e = s[e.toLowerCase()] = s[e.toLowerCase()] || e; + a[e] = t + } + return this + }, overrideMimeType: function (e) { + if (p == null) { + y.mimeType = e + } + return this + }, statusCode: function (e) { + var t; + if (e) { + if (p) { + _.always(e[_.status]) + } else { + for (t in e) { + w[t] = [w[t], e[t]] + } + } + } + return this + }, abort: function (e) { + var t = e || l; + if (f) { + f.abort(t) + } + u(0, t); + return this + } + }; + S.promise(_); + y.url = ((e || y.url || kt.href) + "").replace(Ht, kt.protocol + "//"); + y.type = t.method || t.type || y.method || y.type; + y.dataTypes = (y.dataType || "*").toLowerCase().match(F) || [""]; + if (y.crossDomain == null) { + n = C.createElement("a"); + try { + n.href = y.url; + n.href = n.href; + y.crossDomain = Gt.protocol + "//" + Gt.host !== n.protocol + "//" + n.host + } catch (e) { + y.crossDomain = true + } + } + if (y.data && y.processData && typeof y.data !== "string") { + y.data = x.param(y.data, y.traditional) + } + Yt(jt, y, t, _); + if (p) { + return _ + } + v = x.event && y.global; + if (v && x.active++ === 0) { + x.event.trigger("ajaxStart") + } + y.type = y.type.toUpperCase(); + y.hasContent = !Nt.test(y.type); + h = y.url.replace(Ft, ""); + if (!y.hasContent) { + o = y.url.slice(h.length); + if (y.data && (y.processData || typeof y.data === "string")) { + h += (Mt.test(h) ? "&" : "?") + y.data; + delete y.data + } + if (y.cache === false) { + h = h.replace(Bt, "$1"); + o = (Mt.test(h) ? "&" : "?") + "_=" + Dt.guid++ + o + } + y.url = h + o + } else if (y.data && y.processData && (y.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) { + y.data = y.data.replace(Ot, "+") + } + if (y.ifModified) { + if (x.lastModified[h]) { + _.setRequestHeader("If-Modified-Since", x.lastModified[h]) + } + if (x.etag[h]) { + _.setRequestHeader("If-None-Match", x.etag[h]) + } + } + if (y.data && y.hasContent && y.contentType !== false || t.contentType) { + _.setRequestHeader("Content-Type", y.contentType) + } + _.setRequestHeader("Accept", y.dataTypes[0] && y.accepts[y.dataTypes[0]] ? y.accepts[y.dataTypes[0]] + (y.dataTypes[0] !== "*" ? ", " + Wt + "; q=0.01" : "") : y.accepts["*"]); + for (r in y.headers) { + _.setRequestHeader(r, y.headers[r]) + } + if (y.beforeSend && (y.beforeSend.call(m, _, y) === false || p)) { + return _.abort() + } + l = "abort"; + b.add(y.complete); + _.done(y.success); + _.fail(y.error); + f = Yt(Ut, y, t, _); + if (!f) { + u(-1, "No Transport") + } else { + _.readyState = 1; + if (v) { + g.trigger("ajaxSend", [_, y]) + } + if (p) { + return _ + } + if (y.async && y.timeout > 0) { + d = P.setTimeout(function () { + _.abort("timeout") + }, y.timeout) + } + try { + p = false; + f.send(a, u) + console.log('5488',a,u) + } catch (e) { + if (p) { + throw e + } + u(-1, e) + } + } + + function u(e, t, i, n) { + var r, o, a, s, l, u = t; + if (p) { + return + } + p = true; + if (d) { + P.clearTimeout(d) + } + f = undefined; + c = n || ""; + _.readyState = e > 0 ? 4 : 0; + r = e >= 200 && e < 300 || e === 304; + if (i) { + s = Jt(y, _, i) + } + if (!r && x.inArray("script", y.dataTypes) > -1) { + y.converters["text script"] = function () { + } + } + s = Kt(y, s, _, r); + if (r) { + if (y.ifModified) { + l = _.getResponseHeader("Last-Modified"); + if (l) { + x.lastModified[h] = l + } + l = _.getResponseHeader("etag"); + if (l) { + x.etag[h] = l + } + } + if (e === 204 || y.type === "HEAD") { + u = "nocontent" + } else if (e === 304) { + u = "notmodified" + } else { + u = s.state; + o = s.data; + a = s.error; + r = !a + } + } else { + a = u; + if (e || !u) { + u = "error"; + if (e < 0) { + e = 0 + } + } + } + _.status = e; + _.statusText = (t || u) + ""; + if (r) { + S.resolveWith(m, [o, u, _]) + } else { + S.rejectWith(m, [_, u, a]) + } + _.statusCode(w); + w = undefined; + if (v) { + g.trigger(r ? "ajaxSuccess" : "ajaxError", [_, y, r ? o : a]) + } + b.fireWith(m, [_, u]); + if (v) { + g.trigger("ajaxComplete", [_, y]); + if (!--x.active) { + x.event.trigger("ajaxStop") + } + } + } + + return _ + }, + getJSON: function (e, t, i) { + return x.get(e, t, i, "json") + }, + getScript: function (e, t) { + return x.get(e, undefined, t, "script") + } + }); + x.each(["get", "post"], function (e, r) { + x[r] = function (e, t, i, n) { + if (g(t)) { + n = n || i; + i = t; + t = undefined + } + return x.ajax(x.extend({ + url: e, + type: r, + dataType: n, + data: t, + success: i + }, x.isPlainObject(e) && e)) + } + }); + x.ajaxPrefilter(function (e) { + var t; + for (t in e.headers) { + if (t.toLowerCase() === "content-type") { + e.contentType = e.headers[t] || "" + } + } + }); + x._evalUrl = function (e, t, i) { + return x.ajax({ + url: e, + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + converters: { + "text script": function () { + } + }, + dataFilter: function (e) { + x.globalEval(e, t, i) + } + }) + }; + x.fn.extend({ + wrapAll: function (e) { + var t; + if (this[0]) { + if (g(e)) { + e = e.call(this[0]) + } + t = x(e, this[0].ownerDocument).eq(0).clone(true); + if (this[0].parentNode) { + t.insertBefore(this[0]) + } + t.map(function () { + var e = this; + while (e.firstElementChild) { + e = e.firstElementChild + } + return e + }).append(this) + } + return this + }, wrapInner: function (i) { + if (g(i)) { + return this.each(function (e) { + x(this).wrapInner(i.call(this, e)) + }) + } + return this.each(function () { + var e = x(this), t = e.contents(); + if (t.length) { + t.wrapAll(i) + } else { + e.append(i) + } + }) + }, wrap: function (t) { + var i = g(t); + return this.each(function (e) { + x(this).wrapAll(i ? t.call(this, e) : t) + }) + }, unwrap: function (e) { + this.parent(e).not("body").each(function () { + x(this).replaceWith(this.childNodes) + }); + return this + } + }); + x.expr.pseudos.hidden = function (e) { + return !x.expr.pseudos.visible(e) + }; + x.expr.pseudos.visible = function (e) { + return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) + }; + x.ajaxSettings.xhr = function () { + try { + return new P.XMLHttpRequest + } catch (e) { + } + }; + var $t = {0: 200, 1223: 204}, Zt = x.ajaxSettings.xhr(); + m.cors = !!Zt && "withCredentials" in Zt; + m.ajax = Zt = !!Zt; + x.ajaxTransport(function (r) { + var o, a; + if (m.cors || Zt && !r.crossDomain) { + return { + send: function (e, t) { + var i, n = r.xhr(); + n.open(r.type, r.url, r.async, r.username, r.password); + if (r.xhrFields) { + for (i in r.xhrFields) { + n[i] = r.xhrFields[i] + } + } + if (r.mimeType && n.overrideMimeType) { + n.overrideMimeType(r.mimeType) + } + if (!r.crossDomain && !e["X-Requested-With"]) { + e["X-Requested-With"] = "XMLHttpRequest" + } + for (i in e) { + n.setRequestHeader(i, e[i]) + } + o = function (e) { + return function () { + if (o) { + o = a = n.onload = n.onerror = n.onabort = n.ontimeout = n.onreadystatechange = null; + if (e === "abort") { + n.abort() + } else if (e === "error") { + if (typeof n.status !== "number") { + t(0, "error") + } else { + t(n.status, n.statusText) + } + } else { + t($t[n.status] || n.status, n.statusText, (n.responseType || "text") !== "text" || typeof n.responseText !== "string" ? {binary: n.response} : {text: n.responseText}, n.getAllResponseHeaders()) + } + } + } + }; + n.onload = o(); + a = n.onerror = n.ontimeout = o("error"); + if (n.onabort !== undefined) { + n.onabort = a + } else { + n.onreadystatechange = function () { + if (n.readyState === 4) { + P.setTimeout(function () { + if (o) { + a() + } + }) + } + } + } + o = o("abort"); + try { + n.send(r.hasContent && r.data || null) + console.log('5737',(r.hasContent && r.data || null)) + } catch (e) { + if (o) { + throw e + } + } + }, abort: function () { + if (o) { + o() + } + } + } + } + }); + x.ajaxPrefilter(function (e) { + if (e.crossDomain) { + e.contents.script = false + } + }); + x.ajaxSetup({ + accepts: {script: "text/javascript, application/javascript, " + "application/ecmascript, application/x-ecmascript"}, + contents: {script: /\b(?:java|ecma)script\b/}, + converters: { + "text script": function (e) { + x.globalEval(e); + return e + } + } + }); + x.ajaxPrefilter("script", function (e) { + if (e.cache === undefined) { + e.cache = false + } + if (e.crossDomain) { + e.type = "GET" + } + }); + x.ajaxTransport("script", function (i) { + if (i.crossDomain || i.scriptAttrs) { + var n, r; + return { + send: function (e, t) { + n = x(" + + + +