--- /srv/reproducible-results/rbuild-debian/r-b-build.4GWt4M5Y/b1/jsjac_1.3.4+dfsg-3_i386.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.4GWt4M5Y/b2/jsjac_1.3.4+dfsg-3_i386.changes ├── Files │ @@ -1,2 +1,2 @@ │ │ - 30d0e28207664376d0169773239e2d58 82516 javascript optional libjs-jac_1.3.4+dfsg-3_all.deb │ + 47f063f2dd8247111de76b4fa2274c2d 90280 javascript optional libjs-jac_1.3.4+dfsg-3_all.deb ├── libjs-jac_1.3.4+dfsg-3_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2021-01-04 23:02:43.000000 debian-binary │ │ --rw-r--r-- 0 0 0 2688 2021-01-04 23:02:43.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 79636 2021-01-04 23:02:43.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 2680 2021-01-04 23:02:43.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 87408 2021-01-04 23:02:43.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── file list │ │ │ │ @@ -1,3 +1,3 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 760 2021-01-04 23:02:43.000000 ./control │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 761 2021-01-04 23:02:43.000000 ./control │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6529 2021-01-04 23:02:43.000000 ./md5sums │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: libjs-jac │ │ │ │ Source: jsjac │ │ │ │ Version: 1.3.4+dfsg-3 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian XMPP Maintainers │ │ │ │ -Installed-Size: 993 │ │ │ │ +Installed-Size: 1034 │ │ │ │ Recommends: javascript-common │ │ │ │ Suggests: ejabberd │ │ │ │ Section: javascript │ │ │ │ Priority: optional │ │ │ │ Homepage: https://github.com/sstrigler/JSJaC │ │ │ │ Description: JavaScript Jabber Client Library │ │ │ │ JSJaC is a jabber client library written in JavaScript to ease implementation │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -76,11 +76,11 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6305 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/overview-tree.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 660 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/overview-xmlextras.js.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1583 2021-01-04 23:02:43.000000 ./usr/share/doc/libjs-jac/doc/stylesheet.css │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2011-03-14 00:20:43.000000 ./usr/share/doc/libjs-jac/examples/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9874 2011-03-14 00:20:43.000000 ./usr/share/doc/libjs-jac/examples/simpleclient.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10685 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52546 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 164096 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.uncompressed.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.js -> jsjac.uncompressed.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2021-01-04 23:02:43.000000 ./usr/share/javascript/jsjac/jsjac.packed.js -> jsjac.min.js │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Date.html │ │ │ │ @@ -362,10 +362,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -52,8 +52,8 @@ │ │ │ │ │ o A javascript Date object corresponding to the jabber DateTime given │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  PPRREEVV CCLLAASSSS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Document.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -14,8 +14,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/GLOBALS.html │ │ │ │ @@ -1609,10 +1609,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -228,8 +228,8 @@ │ │ │ │ │ Object uuttff88tt22dd(t) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCConnection.html │ │ │ │ @@ -1054,10 +1054,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -257,8 +257,8 @@ │ │ │ │ │ void uunnrreeggiisstteerrHHaannddlleerr(event,handler) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCConsoleLogger.html │ │ │ │ @@ -448,10 +448,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -75,8 +75,8 @@ │ │ │ │ │ * Empty function for API compatibility │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCCookie.html │ │ │ │ @@ -911,10 +911,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -181,8 +181,8 @@ │ │ │ │ │ o - CookieException when cookie with given name could not be found │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCCookieException.html │ │ │ │ @@ -308,10 +308,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -42,8 +42,8 @@ │ │ │ │ │ o msg - The message to pass to the exception │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCHttpBindingConnection.html │ │ │ │ @@ -416,10 +416,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -66,8 +66,8 @@ │ │ │ │ │ o timerval - the interval in seconds │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCHttpPollingConnection.html │ │ │ │ @@ -350,10 +350,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -59,8 +59,8 @@ │ │ │ │ │ o true if this is a polling connection, false otherwise. │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCIQ.html │ │ │ │ @@ -542,10 +542,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -98,8 +98,8 @@ │ │ │ │ │ o The query node │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJID.html │ │ │ │ @@ -747,10 +747,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -133,8 +133,8 @@ │ │ │ │ │ o A string representing the jid │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJIDInvalidException.html │ │ │ │ @@ -309,10 +309,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -46,8 +46,8 @@ │ │ │ │ │ o message - The message associated with this Exception │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCJSON.html │ │ │ │ @@ -330,10 +330,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -38,8 +38,8 @@ │ │ │ │ │ Object ttooSSttrriinngg(obj) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCKeys.html │ │ │ │ @@ -444,10 +444,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -69,8 +69,8 @@ │ │ │ │ │ o Number of keys created │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCMessage.html │ │ │ │ @@ -579,10 +579,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -101,8 +101,8 @@ │ │ │ │ │ o this message │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCPacket.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ Direct Known Subclasses: │ │ │ │
│ │ │ │ - JSJaCMessage, JSJaCPresence, JSJaCIQ │ │ │ │ + JSJaCPresence, JSJaCMessage, JSJaCIQ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ @@ -1332,10 +1332,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -5,15 +5,15 @@ │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** CCllaassss JJSSJJaaCCPPaacckkeett ********** │ │ │ │ │ Object │ │ │ │ │ | │ │ │ │ │ +--JJSSJJaaCCPPaacckkeett │ │ │ │ │ DDiirreecctt KKnnoowwnn SSuubbccllaasssseess:: │ │ │ │ │ - _J_S_J_a_C_M_e_s_s_a_g_e, _J_S_J_a_C_P_r_e_s_e_n_c_e, _J_S_J_a_C_I_Q │ │ │ │ │ + _J_S_J_a_C_P_r_e_s_e_n_c_e, _J_S_J_a_C_M_e_s_s_a_g_e, _J_S_J_a_C_I_Q │ │ │ │ │ =============================================================================== │ │ │ │ │ class JJSSJJaaCCPPaacckkeett │ │ │ │ │ │ │ │ │ │ Somewhat abstract base class for all kinds of specialised packets │ │ │ │ │ Defined in _J_S_J_a_C_P_a_c_k_e_t_._j_s │ │ │ │ │ │ │ │ │ │ =============================================================================== │ │ │ │ │ @@ -269,8 +269,8 @@ │ │ │ │ │ returned. │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/JSJaCPresence.html │ │ │ │ @@ -639,10 +639,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -119,8 +119,8 @@ │ │ │ │ │ o this │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Node.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -14,8 +14,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/Number.html │ │ │ │ @@ -309,10 +309,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -34,8 +34,8 @@ │ │ │ │ │ Object mmiinn(A, B) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/STANZA_ERROR.html │ │ │ │ @@ -314,10 +314,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -44,8 +44,8 @@ │ │ │ │ │ SSTTAANNZZAA__EERRRROORR(code, type, cond) │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  _FF_ii_ll_ee   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/String.html │ │ │ │ @@ -265,10 +265,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -26,8 +26,8 @@ │ │ │ │ │ o The string with chars encoded for HTML │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  _NN_EE_XX_TT_ _CC_LL_AA_SS_SS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/XMLDocument.html │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -14,8 +14,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File   CCllaassss  _TT_rr_ee_ee  _II_nn_dd_ee_xx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  _PP_RR_EE_VV_ _CC_LL_AA_SS_SS  NNEEXXTT CCLLAASSSS _FF_RR_AA_MM_EE_SS    NNOO FFRRAAMMEESS     /TR> │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ SUMMARY: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D DETAIL: _F_I_E_L_D | _C_O_N_S_T_R | _M_E_T_H_O_D │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/help-doc.html │ │ │ │ @@ -151,10 +151,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -33,8 +33,8 @@ │ │ │ │ │ TThhiiss hheellpp ffiillee aapppplliieess ttoo AAPPII ddooccuummeennttaattiioonn ggeenneerraatteedd uussiinngg tthhee ssttaannddaarrdd │ │ │ │ │ ddoocclleett.. │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File  Class  _TT_rr_ee_ee  _II_nn_dd_ee_xx   HHeellpp  JJSSJJaaCC │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS     │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/index-all.html │ │ │ │ @@ -1379,10 +1379,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -436,8 +436,8 @@ │ │ │ │ │   │ │ │ │ │ =============================================================================== │ │ │ │ │  _A _B _C _D _E _G _H _I _J _L _M _N _O _P _R _S _T _U _V _W _X │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww  File  Class  _TT_rr_ee_ee   IInnddeexx  _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS     │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaC.js.html │ │ │ │ @@ -76,16 +76,16 @@ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Magic dependency loading. Taken from script.aculo.us │ │ │ │ and modified to break it. │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -200,10 +200,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** JJSSJJaaCC..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ Magic dependency loading. Taken from script.aculo.us and modified to break it. │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ /** │ │ │ │ │ * @fileoverview Magic dependency loading. Taken from script.aculo.us │ │ │ │ │ * and modified to break it. │ │ │ │ │ * @author Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ * @version $Revision$ │ │ │ │ │ */ │ │ │ │ │ @@ -66,8 +66,8 @@ │ │ │ │ │ JSJaC.load(); │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCBuilder.js.html │ │ │ │ @@ -277,10 +277,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -143,8 +143,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConfig.js.html │ │ │ │ @@ -172,10 +172,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -36,8 +36,8 @@ │ │ │ │ │ /*** END CONFIG ***/ │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConnection.js.html │ │ │ │ @@ -1454,10 +1454,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1338,8 +1338,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConsoleLogger.js.html │ │ │ │ @@ -239,10 +239,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -90,8 +90,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCConstants.js.html │ │ │ │ @@ -259,10 +259,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -110,8 +110,8 @@ │ │ │ │ │ STANZA_ERROR("400", "wait", "unexpected-request"); │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCCookie.js.html │ │ │ │ @@ -81,16 +81,16 @@ │ │ │ │ OO interface to handle cookies. │ │ │ │ Taken from http://www.quirksmode.org/js/cookies.html │ │ │ │ Regarding licensing of this code the author states: │ │ │ │ │ │ │ │ "You may copy, tweak, rewrite, sell or lease any code example on │ │ │ │ this site, with one single exception." │ │ │ │ │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -392,10 +392,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -6,17 +6,17 @@ │ │ │ │ │ ********** JJSSJJaaCCCCooookkiiee..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ OO interface to handle cookies. Taken from _h_t_t_p_:_/_/_w_w_w_._q_u_i_r_k_s_m_o_d_e_._o_r_g_/_j_s_/ │ │ │ │ │ _c_o_o_k_i_e_s_._h_t_m_l Regarding licensing of this code the author states: "You may copy, │ │ │ │ │ tweak, rewrite, sell or lease any code example on this site, with one single │ │ │ │ │ exception." │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler │ │ │ │ │ =============================================================================== │ │ │ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ │ │ │ │ │ |_CC_ll_aa_ss_ss_ _SS_uu_mm_mm_aa_rr_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_CC_oo_oo_kk_ii_ee |Class representing browser cookies for storing small| │ │ │ │ │ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_a_m_o_u_n_t_s_ _o_f_ _d_a_t_a_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_CC_oo_oo_kk_ii_ee_EE_xx_cc_ee_pp_tt_ii_oo_nn_|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ =============================================================================== │ │ │ │ │ @@ -238,8 +238,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCError.js.html │ │ │ │ @@ -161,10 +161,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -25,8 +25,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCHttpBindingConnection.js.html │ │ │ │ @@ -695,10 +695,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -567,8 +567,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCHttpPollingConnection.js.html │ │ │ │ @@ -75,16 +75,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ All stuff related to HTTP Polling │ │ │ │ -

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
Version: $Revision$

│ │ │ │ +

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -498,10 +498,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** JJSSJJaaCCHHttttppPPoolllliinnggCCoonnnneeccttiioonn..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ All stuff related to HTTP Polling │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ │ │ │ │ │ |_CC_ll_aa_ss_ss_ _SS_uu_mm_mm_aa_rr_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_HH_tt_tt_pp_PP_oo_ll_ll_ii_nn_gg_CC_oo_nn_nn_ee_cc_tt_ii_oo_nn_|_I_m_p_l_e_m_e_n_t_a_t_i_o_n_ _o_f_ _H_T_T_P_ _P_o_l_l_i_n_g| │ │ │ │ │ =============================================================================== │ │ │ │ │ /** │ │ │ │ │ * @fileoverview All stuff related to HTTP Polling │ │ │ │ │ @@ -359,8 +359,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCJID.js.html │ │ │ │ @@ -76,16 +76,16 @@ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ This file contains all things that make life easier when │ │ │ │ dealing with JIDs │ │ │ │ -

Version: $Revision$

Author: Stefan Strigler │ │ │ │ -
│ │ │ │ +

Author: Stefan Strigler │ │ │ │ +
Version: $Revision$

│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -370,10 +370,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** JJSSJJaaCCJJIIDD..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ This file contains all things that make life easier when dealing with JIDs │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler │ │ │ │ │ =============================================================================== │ │ │ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ │ │ │ │ │ |_CC_ll_aa_ss_ss_ _SS_uu_mm_mm_aa_rr_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_JJ_II_DD_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_J_S_J_a_C_J_I_D_ _m_o_d_e_l_s_ _x_m_p_p_ _j_i_d_ _o_b_j_e_c_t_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_JJ_II_DD_II_nn_vv_aa_ll_ii_dd_EE_xx_cc_ee_pp_tt_ii_oo_nn_|_E_x_c_e_p_t_i_o_n_ _t_o_ _i_n_d_i_c_a_t_e_ _i_n_v_a_l_i_d_ _v_a_l_u_e_s_ _f_o_r_ _a_ _j_i_d| │ │ │ │ │ =============================================================================== │ │ │ │ │ /** │ │ │ │ │ @@ -217,8 +217,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCJSON.js.html │ │ │ │ @@ -295,10 +295,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -148,8 +148,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCKeys.js.html │ │ │ │ @@ -229,10 +229,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -80,8 +80,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-JSJaCPacket.js.html │ │ │ │ @@ -75,16 +75,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

Summary

│ │ │ │

│ │ │ │ │ │ │ │ Contains all Jabber/XMPP packet related classes. │ │ │ │ -

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ -
Version: $Revision$

│ │ │ │ +

Version: $Revision$

Author: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ +
│ │ │ │ │ │ │ │

│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -908,10 +908,10 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -3,17 +3,17 @@ │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ ********** JJSSJJaaCCPPaacckkeett..jjss ********** │ │ │ │ │ ****** SSuummmmaarryy ****** │ │ │ │ │ Contains all Jabber/XMPP packet related classes. │ │ │ │ │ │ │ │ │ │ -AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ VVeerrssiioonn:: $Revision$ │ │ │ │ │ │ │ │ │ │ +AAuutthhoorr:: Stefan Strigler steve@zeank.in-berlin.de │ │ │ │ │ =============================================================================== │ │ │ │ │ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ │ │ │ │ │ |_CC_ll_aa_ss_ss_ _SS_uu_mm_mm_aa_rr_yy_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_II_QQ_ _ _ _ _ _ _|_M_o_d_e_l_s_ _t_h_e_ _X_M_P_P_ _n_o_t_i_o_n_ _o_f_ _a_n_ _'_i_q_'_ _p_a_c_k_e_t_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_MM_ee_ss_ss_aa_gg_ee_ _|_M_o_d_e_l_s_ _t_h_e_ _X_M_P_P_ _n_o_t_i_o_n_ _o_f_ _a_n_ _'_m_e_s_s_a_g_e_'_ _p_a_c_k_e_t_ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ |_JJ_SS_JJ_aa_CC_PP_aa_cc_kk_ee_tt |Somewhat abstract base class for all kinds of specialised| │ │ │ │ │ |_ _ _ _ _ _ _ _ _ _ _ _ _ _|_p_a_c_k_e_t_s_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ @@ -767,8 +767,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-crypt.js.html │ │ │ │ @@ -1523,10 +1523,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -759,8 +759,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-header.js.html │ │ │ │ @@ -155,10 +155,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -20,8 +20,8 @@ │ │ │ │ │ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-jsextras.js.html │ │ │ │ @@ -239,10 +239,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -107,8 +107,8 @@ │ │ │ │ │ }; │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary-xmlextras.js.html │ │ │ │ @@ -383,10 +383,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -250,8 +250,8 @@ │ │ │ │ │ } │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww   FFiillee  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-summary.html │ │ │ │ @@ -258,10 +258,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -37,8 +37,8 @@ │ │ │ │ │ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_c_o_m_p_l_i_a_n_c_e_)_._ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | │ │ │ │ │ =============================================================================== │ │ │ │ │  OOvveerrvviieeww  File  Class  _TT_rr_ee_ee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │   │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/doc/libjs-jac/doc/overview-tree.html │ │ │ │ @@ -133,10 +133,10 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
Documentation generated by JSDoc on Sun Mar 22 14:18:13 2026
│ │ │ │ +
Documentation generated by JSDoc on Tue Feb 18 09:56:14 2025
│ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -28,8 +28,8 @@ │ │ │ │ │ o _XX_MM_LL_DD_oo_cc_uu_mm_ee_nn_tt │ │ │ │ │ =============================================================================== │ │ │ │ │ _OO_vv_ee_rr_vv_ii_ee_ww File  Class   TTrreeee  ->IInnddeexx _HH_ee_ll_pp  JJSSJJaaCC │ │ │ │ │     │ │ │ │ │  PREV   NEXT _FF_RR_AA_MM_EE_SS    _NN_OO_ _FF_RR_AA_MM_EE_SS    │ │ │ │ │ _AA_ll_ll_ _CC_ll_aa_ss_ss_ee_ss │ │ │ │ │ =============================================================================== │ │ │ │ │ -Documentation generated by _J_S_D_o_c on Sun Mar 22 14:18:13 2026 │ │ │ │ │ +Documentation generated by _J_S_D_o_c on Tue Feb 18 09:56:14 2025 │ │ │ ├── ./usr/share/javascript/jsjac/jsjac.min.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,7 +1,20 @@ │ │ │ │ │ +JSJAC_HAVEKEYS = true; │ │ │ │ │ +JSJAC_NKEYS = 16; │ │ │ │ │ +JSJAC_INACTIVITY = 300; │ │ │ │ │ +JSJAC_ERR_COUNT = 10; │ │ │ │ │ +JSJAC_ALLOW_PLAIN = true; │ │ │ │ │ +JSJAC_CHECKQUEUEINTERVAL = 1; │ │ │ │ │ +JSJAC_CHECKINQUEUEINTERVAL = 1; │ │ │ │ │ +JSJAC_TIMERVAL = 2000; │ │ │ │ │ +JSJACHBC_MAX_HOLD = 1; │ │ │ │ │ +JSJACHBC_MAX_WAIT = 300; │ │ │ │ │ +JSJACHBC_BOSH_VERSION = "1.6"; │ │ │ │ │ +JSJACHBC_USE_BOSH_VER = true; │ │ │ │ │ +JSJACHBC_MAXPAUSE = 120; │ │ │ │ │ String.prototype.htmlEnc = function() { │ │ │ │ │ var a = this.replace(/&/g, "&"); │ │ │ │ │ a = a.replace(//g, ">"); │ │ │ │ │ a = a.replace(/\"/g, """); │ │ │ │ │ a = a.replace(/\n/g, "
"); │ │ │ │ │ return a │ │ │ │ │ @@ -523,8 +536,1862 @@ │ │ │ │ │ function cnonce(b) { │ │ │ │ │ var c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; │ │ │ │ │ var d = ""; │ │ │ │ │ for (var a = 0; a < b; a++) { │ │ │ │ │ d += c.charAt(Math.round(Math.random(new Date().getTime()) * (c.length - 1))) │ │ │ │ │ } │ │ │ │ │ return d │ │ │ │ │ +} │ │ │ │ │ + │ │ │ │ │ +function JSJaCJSON() {} │ │ │ │ │ +JSJaCJSON.toString = function(c) { │ │ │ │ │ + var a = { │ │ │ │ │ + "\b": "\\b", │ │ │ │ │ + "\t": "\\t", │ │ │ │ │ + "\n": "\\n", │ │ │ │ │ + "\f": "\\f", │ │ │ │ │ + "\r": "\\r", │ │ │ │ │ + '"': '\\"', │ │ │ │ │ + "\\": "\\\\" │ │ │ │ │ + }, │ │ │ │ │ + b = { │ │ │ │ │ + array: function(g) { │ │ │ │ │ + var j = ["["], │ │ │ │ │ + d, n, m, h = g.length, │ │ │ │ │ + k; │ │ │ │ │ + for (m = 0; m < h; m += 1) { │ │ │ │ │ + k = g[m]; │ │ │ │ │ + n = b[typeof k]; │ │ │ │ │ + if (n) { │ │ │ │ │ + try { │ │ │ │ │ + k = n(k); │ │ │ │ │ + if (typeof k == "string") { │ │ │ │ │ + if (d) { │ │ │ │ │ + j[j.length] = "," │ │ │ │ │ + } │ │ │ │ │ + j[j.length] = k; │ │ │ │ │ + d = true │ │ │ │ │ + } │ │ │ │ │ + } catch (o) {} │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + j[j.length] = "]"; │ │ │ │ │ + return j.join("") │ │ │ │ │ + }, │ │ │ │ │ + "boolean": function(d) { │ │ │ │ │ + return String(d) │ │ │ │ │ + }, │ │ │ │ │ + "null": function(d) { │ │ │ │ │ + return "null" │ │ │ │ │ + }, │ │ │ │ │ + number: function(d) { │ │ │ │ │ + return isFinite(d) ? String(d) : "null" │ │ │ │ │ + }, │ │ │ │ │ + object: function(g) { │ │ │ │ │ + if (g) { │ │ │ │ │ + if (g instanceof Array) { │ │ │ │ │ + return b.array(g) │ │ │ │ │ + } │ │ │ │ │ + var h = ["{"], │ │ │ │ │ + d, l, k, j; │ │ │ │ │ + for (k in g) { │ │ │ │ │ + if (g.hasOwnProperty(k)) { │ │ │ │ │ + j = g[k]; │ │ │ │ │ + l = b[typeof j]; │ │ │ │ │ + if (l) { │ │ │ │ │ + try { │ │ │ │ │ + j = l(j); │ │ │ │ │ + if (typeof j == "string") { │ │ │ │ │ + if (d) { │ │ │ │ │ + h[h.length] = "," │ │ │ │ │ + } │ │ │ │ │ + h.push(b.string(k), ":", j); │ │ │ │ │ + d = true │ │ │ │ │ + } │ │ │ │ │ + } catch (m) {} │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + h[h.length] = "}"; │ │ │ │ │ + return h.join("") │ │ │ │ │ + } │ │ │ │ │ + return "null" │ │ │ │ │ + }, │ │ │ │ │ + string: function(d) { │ │ │ │ │ + if (/["\\\x00-\x1f]/.test(d)) { │ │ │ │ │ + d = d.replace(/([\x00-\x1f\\"])/g, function(f, e) { │ │ │ │ │ + var g = a[e]; │ │ │ │ │ + if (g) { │ │ │ │ │ + return g │ │ │ │ │ + } │ │ │ │ │ + g = e.charCodeAt(); │ │ │ │ │ + return "\\u00" + Math.floor(g / 16).toString(16) + (g % 16).toString(16) │ │ │ │ │ + }) │ │ │ │ │ + } │ │ │ │ │ + return '"' + d + '"' │ │ │ │ │ + } │ │ │ │ │ + }; │ │ │ │ │ + switch (typeof(c)) { │ │ │ │ │ + case "object": │ │ │ │ │ + return b.object(c); │ │ │ │ │ + case "array": │ │ │ │ │ + return b.array(c) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJSON.parse = function(str) { │ │ │ │ │ + try { │ │ │ │ │ + return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(str.replace(/"(\\.|[^"\\])*"/g, ""))) && eval("(" + str + ")") │ │ │ │ │ + } catch (e) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function XmlHttp() {} │ │ │ │ │ +XmlHttp.create = function() { │ │ │ │ │ + try { │ │ │ │ │ + if (window.XMLHttpRequest) { │ │ │ │ │ + var b = new XMLHttpRequest(); │ │ │ │ │ + if (b.readyState == null) { │ │ │ │ │ + b.readyState = 1; │ │ │ │ │ + b.addEventListener("load", function() { │ │ │ │ │ + b.readyState = 4; │ │ │ │ │ + if (typeof b.onreadystatechange == "function") { │ │ │ │ │ + b.onreadystatechange() │ │ │ │ │ + } │ │ │ │ │ + }, false) │ │ │ │ │ + } │ │ │ │ │ + return b │ │ │ │ │ + } │ │ │ │ │ + if (window.ActiveXObject) { │ │ │ │ │ + return new ActiveXObject(XmlHttp.getPrefix() + ".XmlHttp") │ │ │ │ │ + } │ │ │ │ │ + } catch (a) {} │ │ │ │ │ + throw new Error("Your browser does not support XmlHttp objects") │ │ │ │ │ +}; │ │ │ │ │ +XmlHttp.getPrefix = function() { │ │ │ │ │ + if (XmlHttp.prefix) { │ │ │ │ │ + return XmlHttp.prefix │ │ │ │ │ + } │ │ │ │ │ + var c = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]; │ │ │ │ │ + var d; │ │ │ │ │ + for (var b = 0; b < c.length; b++) { │ │ │ │ │ + try { │ │ │ │ │ + d = new ActiveXObject(c[b] + ".XmlHttp"); │ │ │ │ │ + return XmlHttp.prefix = c[b] │ │ │ │ │ + } catch (a) {} │ │ │ │ │ + } │ │ │ │ │ + throw new Error("Could not find an installed XML parser") │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function XmlDocument() {} │ │ │ │ │ +XmlDocument.create = function(b, d) { │ │ │ │ │ + b = b || "foo"; │ │ │ │ │ + d = d || ""; │ │ │ │ │ + try { │ │ │ │ │ + var e; │ │ │ │ │ + if (document.implementation && document.implementation.createDocument) { │ │ │ │ │ + e = document.implementation.createDocument(d, b, null); │ │ │ │ │ + if (e.readyState == null) { │ │ │ │ │ + e.readyState = 1; │ │ │ │ │ + e.addEventListener("load", function() { │ │ │ │ │ + e.readyState = 4; │ │ │ │ │ + if (typeof e.onreadystatechange == "function") { │ │ │ │ │ + e.onreadystatechange() │ │ │ │ │ + } │ │ │ │ │ + }, false) │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + if (window.ActiveXObject) { │ │ │ │ │ + e = new ActiveXObject(XmlDocument.getPrefix() + ".DomDocument") │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (!e.documentElement || e.documentElement.tagName != b || (e.documentElement.namespaceURI && e.documentElement.namespaceURI != d)) { │ │ │ │ │ + try { │ │ │ │ │ + if (d != "") { │ │ │ │ │ + e.appendChild(e.createElement(b)).setAttribute("xmlns", d) │ │ │ │ │ + } else { │ │ │ │ │ + e.appendChild(e.createElement(b)) │ │ │ │ │ + } │ │ │ │ │ + } catch (a) { │ │ │ │ │ + e = document.implementation.createDocument(d, b, null); │ │ │ │ │ + if (e.documentElement == null) { │ │ │ │ │ + e.appendChild(e.createElement(b)) │ │ │ │ │ + } │ │ │ │ │ + if (d != "" && e.documentElement.getAttribute("xmlns") != d) { │ │ │ │ │ + e.documentElement.setAttribute("xmlns", d) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return e │ │ │ │ │ + } catch (c) {} │ │ │ │ │ + throw new Error("Your browser does not support XmlDocument objects") │ │ │ │ │ +}; │ │ │ │ │ +XmlDocument.getPrefix = function() { │ │ │ │ │ + if (XmlDocument.prefix) { │ │ │ │ │ + return XmlDocument.prefix │ │ │ │ │ + } │ │ │ │ │ + var c = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]; │ │ │ │ │ + var d; │ │ │ │ │ + for (var b = 0; b < c.length; b++) { │ │ │ │ │ + try { │ │ │ │ │ + d = new ActiveXObject(c[b] + ".DomDocument"); │ │ │ │ │ + return XmlDocument.prefix = c[b] │ │ │ │ │ + } catch (a) {} │ │ │ │ │ + } │ │ │ │ │ + throw new Error("Could not find an installed XML parser") │ │ │ │ │ +}; │ │ │ │ │ +if (typeof(Document) != "undefined" && window.DOMParser) { │ │ │ │ │ + Document.prototype.loadXML = function(b) { │ │ │ │ │ + var c = (new DOMParser()).parseFromString(b, "text/xml"); │ │ │ │ │ + while (this.hasChildNodes()) { │ │ │ │ │ + this.removeChild(this.lastChild) │ │ │ │ │ + } │ │ │ │ │ + for (var a = 0; a < c.childNodes.length; a++) { │ │ │ │ │ + this.appendChild(this.importNode(c.childNodes[a], true)) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +if (window.XMLSerializer && window.Node && Node.prototype && Node.prototype.__defineGetter__) { │ │ │ │ │ + XMLDocument.prototype.__defineGetter__("xml", function() { │ │ │ │ │ + return (new XMLSerializer()).serializeToString(this) │ │ │ │ │ + }); │ │ │ │ │ + Document.prototype.__defineGetter__("xml", function() { │ │ │ │ │ + return (new XMLSerializer()).serializeToString(this) │ │ │ │ │ + }); │ │ │ │ │ + Node.prototype.__defineGetter__("xml", function() { │ │ │ │ │ + return (new XMLSerializer()).serializeToString(this) │ │ │ │ │ + }) │ │ │ │ │ +} │ │ │ │ │ +var JSJaCBuilder = { │ │ │ │ │ + buildNode: function(d, a) { │ │ │ │ │ + var b, c = arguments[4]; │ │ │ │ │ + if (arguments[2]) { │ │ │ │ │ + if (JSJaCBuilder._isStringOrNumber(arguments[2]) || (arguments[2] instanceof Array)) { │ │ │ │ │ + b = this._createElement(d, a, c); │ │ │ │ │ + JSJaCBuilder._children(d, b, arguments[2]) │ │ │ │ │ + } else { │ │ │ │ │ + c = arguments[2]["xmlns"] || c; │ │ │ │ │ + b = this._createElement(d, a, c); │ │ │ │ │ + for (attr in arguments[2]) { │ │ │ │ │ + if (arguments[2].hasOwnProperty(attr) && attr != "xmlns") { │ │ │ │ │ + b.setAttribute(attr, arguments[2][attr]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + b = this._createElement(d, a, c) │ │ │ │ │ + } │ │ │ │ │ + if (arguments[3]) { │ │ │ │ │ + JSJaCBuilder._children(d, b, arguments[3], c) │ │ │ │ │ + } │ │ │ │ │ + return b │ │ │ │ │ + }, │ │ │ │ │ + _createElement: function(e, a, d) { │ │ │ │ │ + try { │ │ │ │ │ + if (d) { │ │ │ │ │ + return e.createElementNS(d, a) │ │ │ │ │ + } │ │ │ │ │ + } catch (b) {} │ │ │ │ │ + var c = e.createElement(a); │ │ │ │ │ + if (d) { │ │ │ │ │ + c.setAttribute("xmlns", d) │ │ │ │ │ + } │ │ │ │ │ + return c │ │ │ │ │ + }, │ │ │ │ │ + _text: function(a, b) { │ │ │ │ │ + return a.createTextNode(b) │ │ │ │ │ + }, │ │ │ │ │ + _children: function(h, c, b, d) { │ │ │ │ │ + if (typeof b == "object") { │ │ │ │ │ + for (var a in b) { │ │ │ │ │ + if (b.hasOwnProperty(a)) { │ │ │ │ │ + var g = b[a]; │ │ │ │ │ + if (typeof g == "object") { │ │ │ │ │ + if (g instanceof Array) { │ │ │ │ │ + var f = JSJaCBuilder.buildNode(h, g[0], g[1], g[2], d); │ │ │ │ │ + c.appendChild(f) │ │ │ │ │ + } else { │ │ │ │ │ + c.appendChild(g) │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + if (JSJaCBuilder._isStringOrNumber(g)) { │ │ │ │ │ + c.appendChild(JSJaCBuilder._text(h, g)) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + if (JSJaCBuilder._isStringOrNumber(b)) { │ │ │ │ │ + c.appendChild(JSJaCBuilder._text(h, b)) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + }, │ │ │ │ │ + _attributes: function(a) { │ │ │ │ │ + var b = []; │ │ │ │ │ + for (attribute in a) { │ │ │ │ │ + if (a.hasOwnProperty(attribute)) { │ │ │ │ │ + b.push(attribute + '="' + a[attribute].toString().htmlEnc() + '"') │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return b.join(" ") │ │ │ │ │ + }, │ │ │ │ │ + _isStringOrNumber: function(a) { │ │ │ │ │ + return (typeof a == "string" || typeof a == "number") │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +var NS_DISCO_ITEMS = "http://jabber.org/protocol/disco#items"; │ │ │ │ │ +var NS_DISCO_INFO = "http://jabber.org/protocol/disco#info"; │ │ │ │ │ +var NS_VCARD = "vcard-temp"; │ │ │ │ │ +var NS_AUTH = "jabber:iq:auth"; │ │ │ │ │ +var NS_AUTH_ERROR = "jabber:iq:auth:error"; │ │ │ │ │ +var NS_REGISTER = "jabber:iq:register"; │ │ │ │ │ +var NS_SEARCH = "jabber:iq:search"; │ │ │ │ │ +var NS_ROSTER = "jabber:iq:roster"; │ │ │ │ │ +var NS_PRIVACY = "jabber:iq:privacy"; │ │ │ │ │ +var NS_PRIVATE = "jabber:iq:private"; │ │ │ │ │ +var NS_VERSION = "jabber:iq:version"; │ │ │ │ │ +var NS_TIME = "jabber:iq:time"; │ │ │ │ │ +var NS_LAST = "jabber:iq:last"; │ │ │ │ │ +var NS_XDATA = "jabber:x:data"; │ │ │ │ │ +var NS_IQDATA = "jabber:iq:data"; │ │ │ │ │ +var NS_DELAY = "jabber:x:delay"; │ │ │ │ │ +var NS_EXPIRE = "jabber:x:expire"; │ │ │ │ │ +var NS_EVENT = "jabber:x:event"; │ │ │ │ │ +var NS_XCONFERENCE = "jabber:x:conference"; │ │ │ │ │ +var NS_STATS = "http://jabber.org/protocol/stats"; │ │ │ │ │ +var NS_MUC = "http://jabber.org/protocol/muc"; │ │ │ │ │ +var NS_MUC_USER = "http://jabber.org/protocol/muc#user"; │ │ │ │ │ +var NS_MUC_ADMIN = "http://jabber.org/protocol/muc#admin"; │ │ │ │ │ +var NS_MUC_OWNER = "http://jabber.org/protocol/muc#owner"; │ │ │ │ │ +var NS_PUBSUB = "http://jabber.org/protocol/pubsub"; │ │ │ │ │ +var NS_PUBSUB_EVENT = "http://jabber.org/protocol/pubsub#event"; │ │ │ │ │ +var NS_PUBSUB_OWNER = "http://jabber.org/protocol/pubsub#owner"; │ │ │ │ │ +var NS_PUBSUB_NMI = "http://jabber.org/protocol/pubsub#node-meta-info"; │ │ │ │ │ +var NS_COMMANDS = "http://jabber.org/protocol/commands"; │ │ │ │ │ +var NS_STREAM = "http://etherx.jabber.org/streams"; │ │ │ │ │ +var NS_STANZAS = "urn:ietf:params:xml:ns:xmpp-stanzas"; │ │ │ │ │ +var NS_STREAMS = "urn:ietf:params:xml:ns:xmpp-streams"; │ │ │ │ │ +var NS_TLS = "urn:ietf:params:xml:ns:xmpp-tls"; │ │ │ │ │ +var NS_SASL = "urn:ietf:params:xml:ns:xmpp-sasl"; │ │ │ │ │ +var NS_SESSION = "urn:ietf:params:xml:ns:xmpp-session"; │ │ │ │ │ +var NS_BIND = "urn:ietf:params:xml:ns:xmpp-bind"; │ │ │ │ │ +var NS_FEATURE_IQAUTH = "http://jabber.org/features/iq-auth"; │ │ │ │ │ +var NS_FEATURE_IQREGISTER = "http://jabber.org/features/iq-register"; │ │ │ │ │ +var NS_FEATURE_COMPRESS = "http://jabber.org/features/compress"; │ │ │ │ │ +var NS_COMPRESS = "http://jabber.org/protocol/compress"; │ │ │ │ │ + │ │ │ │ │ +function STANZA_ERROR(c, b, a) { │ │ │ │ │ + if (window == this) { │ │ │ │ │ + return new STANZA_ERROR(c, b, a) │ │ │ │ │ + } │ │ │ │ │ + this.code = c; │ │ │ │ │ + this.type = b; │ │ │ │ │ + this.cond = a │ │ │ │ │ +} │ │ │ │ │ +var ERR_BAD_REQUEST = STANZA_ERROR("400", "modify", "bad-request"); │ │ │ │ │ +var ERR_CONFLICT = STANZA_ERROR("409", "cancel", "conflict"); │ │ │ │ │ +var ERR_FEATURE_NOT_IMPLEMENTED = STANZA_ERROR("501", "cancel", "feature-not-implemented"); │ │ │ │ │ +var ERR_FORBIDDEN = STANZA_ERROR("403", "auth", "forbidden"); │ │ │ │ │ +var ERR_GONE = STANZA_ERROR("302", "modify", "gone"); │ │ │ │ │ +var ERR_INTERNAL_SERVER_ERROR = STANZA_ERROR("500", "wait", "internal-server-error"); │ │ │ │ │ +var ERR_ITEM_NOT_FOUND = STANZA_ERROR("404", "cancel", "item-not-found"); │ │ │ │ │ +var ERR_JID_MALFORMED = STANZA_ERROR("400", "modify", "jid-malformed"); │ │ │ │ │ +var ERR_NOT_ACCEPTABLE = STANZA_ERROR("406", "modify", "not-acceptable"); │ │ │ │ │ +var ERR_NOT_ALLOWED = STANZA_ERROR("405", "cancel", "not-allowed"); │ │ │ │ │ +var ERR_NOT_AUTHORIZED = STANZA_ERROR("401", "auth", "not-authorized"); │ │ │ │ │ +var ERR_PAYMENT_REQUIRED = STANZA_ERROR("402", "auth", "payment-required"); │ │ │ │ │ +var ERR_RECIPIENT_UNAVAILABLE = STANZA_ERROR("404", "wait", "recipient-unavailable"); │ │ │ │ │ +var ERR_REDIRECT = STANZA_ERROR("302", "modify", "redirect"); │ │ │ │ │ +var ERR_REGISTRATION_REQUIRED = STANZA_ERROR("407", "auth", "registration-required"); │ │ │ │ │ +var ERR_REMOTE_SERVER_NOT_FOUND = STANZA_ERROR("404", "cancel", "remote-server-not-found"); │ │ │ │ │ +var ERR_REMOTE_SERVER_TIMEOUT = STANZA_ERROR("504", "wait", "remote-server-timeout"); │ │ │ │ │ +var ERR_RESOURCE_CONSTRAINT = STANZA_ERROR("500", "wait", "resource-constraint"); │ │ │ │ │ +var ERR_SERVICE_UNAVAILABLE = STANZA_ERROR("503", "cancel", "service-unavailable"); │ │ │ │ │ +var ERR_SUBSCRIPTION_REQUIRED = STANZA_ERROR("407", "auth", "subscription-required"); │ │ │ │ │ +var ERR_UNEXPECTED_REQUEST = STANZA_ERROR("400", "wait", "unexpected-request"); │ │ │ │ │ + │ │ │ │ │ +function JSJaCConsoleLogger(a) { │ │ │ │ │ + this.level = a || 4; │ │ │ │ │ + this.start = function() {}; │ │ │ │ │ + this.log = function(c, d) { │ │ │ │ │ + d = d || 0; │ │ │ │ │ + if (d > this.level) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (typeof(console) == "undefined") { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + try { │ │ │ │ │ + switch (d) { │ │ │ │ │ + case 0: │ │ │ │ │ + console.warn(c); │ │ │ │ │ + break; │ │ │ │ │ + case 1: │ │ │ │ │ + console.error(c); │ │ │ │ │ + break; │ │ │ │ │ + case 2: │ │ │ │ │ + console.info(c); │ │ │ │ │ + break; │ │ │ │ │ + case 4: │ │ │ │ │ + console.debug(c); │ │ │ │ │ + break; │ │ │ │ │ + default: │ │ │ │ │ + console.log(c); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } catch (b) { │ │ │ │ │ + try { │ │ │ │ │ + console.log(c) │ │ │ │ │ + } catch (b) {} │ │ │ │ │ + } │ │ │ │ │ + }; │ │ │ │ │ + this.setLevel = function(b) { │ │ │ │ │ + this.level = b; │ │ │ │ │ + return this │ │ │ │ │ + }; │ │ │ │ │ + this.getLevel = function() { │ │ │ │ │ + return this.level │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ + │ │ │ │ │ +function JSJaCCookie(a, d, b, c, e) { │ │ │ │ │ + if (window == this) { │ │ │ │ │ + return new JSJaCCookie(a, d, b, c, e) │ │ │ │ │ + } │ │ │ │ │ + this.name = a; │ │ │ │ │ + this.value = d; │ │ │ │ │ + this.secs = b; │ │ │ │ │ + this.domain = c; │ │ │ │ │ + this.path = e; │ │ │ │ │ + this.write = function() { │ │ │ │ │ + if (this.secs) { │ │ │ │ │ + var g = new Date(); │ │ │ │ │ + g.setTime(g.getTime() + (this.secs * 1000)); │ │ │ │ │ + var f = "; expires=" + g.toGMTString() │ │ │ │ │ + } else { │ │ │ │ │ + var f = "" │ │ │ │ │ + } │ │ │ │ │ + var h = this.domain ? "; domain=" + this.domain : ""; │ │ │ │ │ + var i = this.path ? "; path=" + this.path : "; path=/"; │ │ │ │ │ + document.cookie = this.getName() + "=" + JSJaCCookie._escape(this.getValue()) + f + h + i │ │ │ │ │ + }; │ │ │ │ │ + this.erase = function() { │ │ │ │ │ + var f = new JSJaCCookie(this.getName(), "", -1); │ │ │ │ │ + f.write() │ │ │ │ │ + }; │ │ │ │ │ + this.getName = function() { │ │ │ │ │ + return this.name │ │ │ │ │ + }; │ │ │ │ │ + this.setName = function(f) { │ │ │ │ │ + this.name = f; │ │ │ │ │ + return this │ │ │ │ │ + }; │ │ │ │ │ + this.getValue = function() { │ │ │ │ │ + return this.value │ │ │ │ │ + }; │ │ │ │ │ + this.setValue = function(f) { │ │ │ │ │ + this.value = f; │ │ │ │ │ + return this │ │ │ │ │ + }; │ │ │ │ │ + this.setDomain = function(f) { │ │ │ │ │ + this.domain = f; │ │ │ │ │ + return this │ │ │ │ │ + }; │ │ │ │ │ + this.setPath = function(f) { │ │ │ │ │ + this.path = f; │ │ │ │ │ + return this │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +JSJaCCookie.read = function(b) { │ │ │ │ │ + var e = b + "="; │ │ │ │ │ + var a = document.cookie.split(";"); │ │ │ │ │ + for (var d = 0; d < a.length; d++) { │ │ │ │ │ + var f = a[d]; │ │ │ │ │ + while (f.charAt(0) == " ") { │ │ │ │ │ + f = f.substring(1, f.length) │ │ │ │ │ + } │ │ │ │ │ + if (f.indexOf(e) == 0) { │ │ │ │ │ + return new JSJaCCookie(b, JSJaCCookie._unescape(f.substring(e.length, f.length))) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + throw new JSJaCCookieException("Cookie not found") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCCookie.get = function(a) { │ │ │ │ │ + return JSJaCCookie.read(a).getValue() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCCookie.remove = function(a) { │ │ │ │ │ + JSJaCCookie.read(a).erase() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCCookie._escape = function(a) { │ │ │ │ │ + return a.replace(/;/g, "%3AB") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCCookie._unescape = function(a) { │ │ │ │ │ + return a.replace(/%3AB/g, ";") │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCCookieException(a) { │ │ │ │ │ + this.message = a; │ │ │ │ │ + this.name = "CookieException" │ │ │ │ │ +} │ │ │ │ │ + │ │ │ │ │ +function JSJaCError(c, b, d) { │ │ │ │ │ + var a = XmlDocument.create("error", "jsjac"); │ │ │ │ │ + a.documentElement.setAttribute("code", c); │ │ │ │ │ + a.documentElement.setAttribute("type", b); │ │ │ │ │ + if (d) { │ │ │ │ │ + a.documentElement.appendChild(a.createElement(d)).setAttribute("xmlns", "urn:ietf:params:xml:ns:xmpp-stanzas") │ │ │ │ │ + } │ │ │ │ │ + return a.documentElement │ │ │ │ │ +} │ │ │ │ │ +var JSJACJID_FORBIDDEN = ['"', " ", "&", "'", "/", ":", "<", ">", "@"]; │ │ │ │ │ + │ │ │ │ │ +function JSJaCJID(a) { │ │ │ │ │ + this._node = ""; │ │ │ │ │ + this._domain = ""; │ │ │ │ │ + this._resource = ""; │ │ │ │ │ + if (typeof(a) == "string") { │ │ │ │ │ + if (a.indexOf("@") != -1) { │ │ │ │ │ + this.setNode(a.substring(0, a.indexOf("@"))); │ │ │ │ │ + a = a.substring(a.indexOf("@") + 1) │ │ │ │ │ + } │ │ │ │ │ + if (a.indexOf("/") != -1) { │ │ │ │ │ + this.setResource(a.substring(a.indexOf("/") + 1)); │ │ │ │ │ + a = a.substring(0, a.indexOf("/")) │ │ │ │ │ + } │ │ │ │ │ + this.setDomain(a) │ │ │ │ │ + } else { │ │ │ │ │ + this.setNode(a.node); │ │ │ │ │ + this.setDomain(a.domain); │ │ │ │ │ + this.setResource(a.resource) │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +JSJaCJID.prototype.getNode = function() { │ │ │ │ │ + return this._node │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.getDomain = function() { │ │ │ │ │ + return this._domain │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.getResource = function() { │ │ │ │ │ + return this._resource │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.setNode = function(a) { │ │ │ │ │ + JSJaCJID._checkNodeName(a); │ │ │ │ │ + this._node = a || ""; │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.setDomain = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + throw new JSJaCJIDInvalidException("domain name missing") │ │ │ │ │ + } │ │ │ │ │ + JSJaCJID._checkNodeName(a); │ │ │ │ │ + this._domain = a; │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.setResource = function(a) { │ │ │ │ │ + this._resource = a || ""; │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.toString = function() { │ │ │ │ │ + var a = ""; │ │ │ │ │ + if (this.getNode() && this.getNode() != "") { │ │ │ │ │ + a = this.getNode() + "@" │ │ │ │ │ + } │ │ │ │ │ + a += this.getDomain(); │ │ │ │ │ + if (this.getResource() && this.getResource() != "") { │ │ │ │ │ + a += "/" + this.getResource() │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.removeResource = function() { │ │ │ │ │ + return this.setResource() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.clone = function() { │ │ │ │ │ + return new JSJaCJID(this.toString()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID.prototype.isEntity = function(a) { │ │ │ │ │ + if (typeof a == "string") { │ │ │ │ │ + a = (new JSJaCJID(a)) │ │ │ │ │ + } │ │ │ │ │ + a.removeResource(); │ │ │ │ │ + return (this.clone().removeResource().toString() === a.toString()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCJID._checkNodeName = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + for (var b = 0; b < JSJACJID_FORBIDDEN.length; b++) { │ │ │ │ │ + if (a.indexOf(JSJACJID_FORBIDDEN[b]) != -1) { │ │ │ │ │ + throw new JSJaCJIDInvalidException("forbidden char in nodename: " + JSJACJID_FORBIDDEN[b]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCJIDInvalidException(a) { │ │ │ │ │ + this.message = a; │ │ │ │ │ + this.name = "JSJaCJIDInvalidException" │ │ │ │ │ +} │ │ │ │ │ + │ │ │ │ │ +function JSJaCKeys(d, c) { │ │ │ │ │ + var a = Math.random(); │ │ │ │ │ + this._k = new Array(); │ │ │ │ │ + this._k[0] = a.toString(); │ │ │ │ │ + if (c) { │ │ │ │ │ + this.oDbg = c │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg = {}; │ │ │ │ │ + this.oDbg.log = function() {} │ │ │ │ │ + } │ │ │ │ │ + if (d) { │ │ │ │ │ + for (var b = 1; b < JSJAC_NKEYS; b++) { │ │ │ │ │ + this._k[b] = d(this._k[b - 1]); │ │ │ │ │ + c.log(b + ": " + this._k[b], 4) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this._indexAt = JSJAC_NKEYS - 1; │ │ │ │ │ + this.getKey = function() { │ │ │ │ │ + return this._k[this._indexAt--] │ │ │ │ │ + }; │ │ │ │ │ + this.lastKey = function() { │ │ │ │ │ + return (this._indexAt == 0) │ │ │ │ │ + }; │ │ │ │ │ + this.size = function() { │ │ │ │ │ + return this._k.length │ │ │ │ │ + }; │ │ │ │ │ + this._getSuspendVars = function() { │ │ │ │ │ + return ("_k,_indexAt").split(",") │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +var JSJACPACKET_USE_XMLNS = true; │ │ │ │ │ + │ │ │ │ │ +function JSJaCPacket(a) { │ │ │ │ │ + this.name = a; │ │ │ │ │ + if (typeof(JSJACPACKET_USE_XMLNS) != "undefined" && JSJACPACKET_USE_XMLNS) { │ │ │ │ │ + this.doc = XmlDocument.create(a, "jabber:client") │ │ │ │ │ + } else { │ │ │ │ │ + this.doc = XmlDocument.create(a, "") │ │ │ │ │ + } │ │ │ │ │ +} │ │ │ │ │ +JSJaCPacket.prototype.pType = function() { │ │ │ │ │ + return this.name │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getDoc = function() { │ │ │ │ │ + return this.doc │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getNode = function() { │ │ │ │ │ + if (this.getDoc() && this.getDoc().documentElement) { │ │ │ │ │ + return this.getDoc().documentElement │ │ │ │ │ + } else { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setTo = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("to") │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof(a) == "string") { │ │ │ │ │ + this.getNode().setAttribute("to", a) │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("to", a.toString()) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setFrom = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("from") │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof(a) == "string") { │ │ │ │ │ + this.getNode().setAttribute("from", a) │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("from", a.toString()) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setID = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("id") │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("id", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setType = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("type") │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("type", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.setXMLLang = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + this.getNode().removeAttribute("xml:lang") │ │ │ │ │ + } else { │ │ │ │ │ + this.getNode().setAttribute("xml:lang", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getTo = function() { │ │ │ │ │ + return this.getNode().getAttribute("to") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getFrom = function() { │ │ │ │ │ + return this.getNode().getAttribute("from") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getToJID = function() { │ │ │ │ │ + return new JSJaCJID(this.getTo()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getFromJID = function() { │ │ │ │ │ + return new JSJaCJID(this.getFrom()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getID = function() { │ │ │ │ │ + return this.getNode().getAttribute("id") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getType = function() { │ │ │ │ │ + return this.getNode().getAttribute("type") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getXMLLang = function() { │ │ │ │ │ + return this.getNode().getAttribute("xml:lang") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getXMLNS = function() { │ │ │ │ │ + return this.getNode().namespaceURI || this.getNode().getAttribute("xmlns") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getChild = function(b, d) { │ │ │ │ │ + if (!this.getNode()) { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ + b = b || "*"; │ │ │ │ │ + d = d || "*"; │ │ │ │ │ + if (this.getNode().getElementsByTagNameNS) { │ │ │ │ │ + return this.getNode().getElementsByTagNameNS(d, b).item(0) │ │ │ │ │ + } │ │ │ │ │ + var a = this.getNode().getElementsByTagName(b); │ │ │ │ │ + if (d != "*") { │ │ │ │ │ + for (var c = 0; c < a.length; c++) { │ │ │ │ │ + if (a.item(c).namespaceURI == d || a.item(c).getAttribute("xmlns") == d) { │ │ │ │ │ + return a.item(c) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + return a.item(0) │ │ │ │ │ + } │ │ │ │ │ + return null │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.getChildVal = function(b, d) { │ │ │ │ │ + var e = this.getChild(b, d); │ │ │ │ │ + var a = ""; │ │ │ │ │ + if (e && e.hasChildNodes()) { │ │ │ │ │ + for (var c = 0; c < e.childNodes.length; c++) { │ │ │ │ │ + if (e.childNodes.item(c).nodeValue) { │ │ │ │ │ + a += e.childNodes.item(c).nodeValue │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.clone = function() { │ │ │ │ │ + return JSJaCPacket.wrapNode(this.getNode()) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.isError = function() { │ │ │ │ │ + return (this.getType() == "error") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.errorReply = function(a) { │ │ │ │ │ + var b = this.clone(); │ │ │ │ │ + b.setTo(this.getFrom()); │ │ │ │ │ + b.setFrom(); │ │ │ │ │ + b.setType("error"); │ │ │ │ │ + b.appendNode("error", { │ │ │ │ │ + code: a.code, │ │ │ │ │ + type: a.type │ │ │ │ │ + }, [ │ │ │ │ │ + [a.cond] │ │ │ │ │ + ]); │ │ │ │ │ + return b │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.xml = typeof XMLSerializer != "undefined" ? function() { │ │ │ │ │ + var a = (new XMLSerializer()).serializeToString(this.getNode()); │ │ │ │ │ + if (typeof(a) == "undefined") { │ │ │ │ │ + a = (new XMLSerializer()).serializeToString(this.doc) │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +} : function() { │ │ │ │ │ + return this.getDoc().xml │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype._getAttribute = function(a) { │ │ │ │ │ + return this.getNode().getAttribute(a) │ │ │ │ │ +}; │ │ │ │ │ +if (document.ELEMENT_NODE == null) { │ │ │ │ │ + document.ELEMENT_NODE = 1; │ │ │ │ │ + document.ATTRIBUTE_NODE = 2; │ │ │ │ │ + document.TEXT_NODE = 3; │ │ │ │ │ + document.CDATA_SECTION_NODE = 4; │ │ │ │ │ + document.ENTITY_REFERENCE_NODE = 5; │ │ │ │ │ + document.ENTITY_NODE = 6; │ │ │ │ │ + document.PROCESSING_INSTRUCTION_NODE = 7; │ │ │ │ │ + document.COMMENT_NODE = 8; │ │ │ │ │ + document.DOCUMENT_NODE = 9; │ │ │ │ │ + document.DOCUMENT_TYPE_NODE = 10; │ │ │ │ │ + document.DOCUMENT_FRAGMENT_NODE = 11; │ │ │ │ │ + document.NOTATION_NODE = 12 │ │ │ │ │ +} │ │ │ │ │ +JSJaCPacket.prototype._importNode = function(f, b) { │ │ │ │ │ + switch (f.nodeType) { │ │ │ │ │ + case document.ELEMENT_NODE: │ │ │ │ │ + if (this.getDoc().createElementNS) { │ │ │ │ │ + var e = this.getDoc().createElementNS(f.namespaceURI, f.nodeName) │ │ │ │ │ + } else { │ │ │ │ │ + var e = this.getDoc().createElement(f.nodeName) │ │ │ │ │ + } │ │ │ │ │ + if (f.attributes && f.attributes.length > 0) { │ │ │ │ │ + for (var d = 0, c = f.attributes.length; d < c; d++) { │ │ │ │ │ + var a = f.attributes.item(d); │ │ │ │ │ + if (a.nodeName == "xmlns" && e.getAttribute("xmlns") != null) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + if (e.setAttributeNS && a.namespaceURI) { │ │ │ │ │ + e.setAttributeNS(a.namespaceURI, a.nodeName, a.nodeValue) │ │ │ │ │ + } else { │ │ │ │ │ + e.setAttribute(a.nodeName, a.nodeValue) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (b && f.childNodes && f.childNodes.length > 0) { │ │ │ │ │ + for (var d = 0, c = f.childNodes.length; d < c; d++) { │ │ │ │ │ + e.appendChild(this._importNode(f.childNodes.item(d), b)) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return e; │ │ │ │ │ + break; │ │ │ │ │ + case document.TEXT_NODE: │ │ │ │ │ + case document.CDATA_SECTION_NODE: │ │ │ │ │ + case document.COMMENT_NODE: │ │ │ │ │ + return this.getDoc().createTextNode(f.nodeValue); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype._setChildNode = function(g, b) { │ │ │ │ │ + var a = this.getChild(g); │ │ │ │ │ + var d = this.getDoc().createTextNode(b); │ │ │ │ │ + if (a) { │ │ │ │ │ + try { │ │ │ │ │ + a.replaceChild(d, a.firstChild) │ │ │ │ │ + } catch (f) {} │ │ │ │ │ + } else { │ │ │ │ │ + try { │ │ │ │ │ + a = this.getDoc().createElementNS(this.getNode().namespaceURI, g) │ │ │ │ │ + } catch (c) { │ │ │ │ │ + a = this.getDoc().createElement(g) │ │ │ │ │ + } │ │ │ │ │ + this.getNode().appendChild(a); │ │ │ │ │ + a.appendChild(d) │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.buildNode = function(a) { │ │ │ │ │ + return JSJaCBuilder.buildNode(this.getDoc(), a, arguments[1], arguments[2]) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.prototype.appendNode = function(a) { │ │ │ │ │ + if (typeof a == "object") { │ │ │ │ │ + return this.getNode().appendChild(a) │ │ │ │ │ + } else { │ │ │ │ │ + return this.getNode().appendChild(this.buildNode(a, arguments[1], arguments[2], null, this.getNode().namespaceURI)) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCPresence() { │ │ │ │ │ + this.base = JSJaCPacket; │ │ │ │ │ + this.base("presence") │ │ │ │ │ +} │ │ │ │ │ +JSJaCPresence.prototype = new JSJaCPacket; │ │ │ │ │ +JSJaCPresence.prototype.setStatus = function(a) { │ │ │ │ │ + this._setChildNode("status", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.setShow = function(a) { │ │ │ │ │ + if (a == "chat" || a == "away" || a == "xa" || a == "dnd") { │ │ │ │ │ + this._setChildNode("show", a) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.setPriority = function(a) { │ │ │ │ │ + this._setChildNode("priority", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.setPresence = function(b, a, c) { │ │ │ │ │ + if (b) { │ │ │ │ │ + this.setShow(b) │ │ │ │ │ + } │ │ │ │ │ + if (a) { │ │ │ │ │ + this.setStatus(a) │ │ │ │ │ + } │ │ │ │ │ + if (c) { │ │ │ │ │ + this.setPriority(c) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.getStatus = function() { │ │ │ │ │ + return this.getChildVal("status") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.getShow = function() { │ │ │ │ │ + return this.getChildVal("show") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPresence.prototype.getPriority = function() { │ │ │ │ │ + return this.getChildVal("priority") │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCIQ() { │ │ │ │ │ + this.base = JSJaCPacket; │ │ │ │ │ + this.base("iq") │ │ │ │ │ +} │ │ │ │ │ +JSJaCIQ.prototype = new JSJaCPacket; │ │ │ │ │ +JSJaCIQ.prototype.setIQ = function(c, a, b) { │ │ │ │ │ + if (c) { │ │ │ │ │ + this.setTo(c) │ │ │ │ │ + } │ │ │ │ │ + if (a) { │ │ │ │ │ + this.setType(a) │ │ │ │ │ + } │ │ │ │ │ + if (b) { │ │ │ │ │ + this.setID(b) │ │ │ │ │ + } │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.setQuery = function(c) { │ │ │ │ │ + var a; │ │ │ │ │ + try { │ │ │ │ │ + a = this.getDoc().createElementNS(c, "query") │ │ │ │ │ + } catch (b) { │ │ │ │ │ + a = this.getDoc().createElement("query"); │ │ │ │ │ + a.setAttribute("xmlns", c) │ │ │ │ │ + } │ │ │ │ │ + this.getNode().appendChild(a); │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.getQuery = function() { │ │ │ │ │ + return this.getNode().getElementsByTagName("query").item(0) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.getQueryXMLNS = function() { │ │ │ │ │ + if (this.getQuery()) { │ │ │ │ │ + return this.getQuery().namespaceURI || this.getQuery().getAttribute("xmlns") │ │ │ │ │ + } else { │ │ │ │ │ + return null │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCIQ.prototype.reply = function(d) { │ │ │ │ │ + var b = this.clone(); │ │ │ │ │ + b.setTo(this.getFrom()); │ │ │ │ │ + b.setFrom(); │ │ │ │ │ + b.setType("result"); │ │ │ │ │ + if (d) { │ │ │ │ │ + if (typeof d == "string") { │ │ │ │ │ + b.getChild().appendChild(b.getDoc().loadXML(d)) │ │ │ │ │ + } else { │ │ │ │ │ + if (d.constructor == Array) { │ │ │ │ │ + var c = b.getChild(); │ │ │ │ │ + for (var a = 0; a < d.length; a++) { │ │ │ │ │ + if (typeof d[a] == "string") { │ │ │ │ │ + c.appendChild(b.getDoc().loadXML(d[a])) │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof d[a] == "object") { │ │ │ │ │ + c.appendChild(d[a]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + if (typeof d == "object") { │ │ │ │ │ + b.getChild().appendChild(d) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return b │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCMessage() { │ │ │ │ │ + this.base = JSJaCPacket; │ │ │ │ │ + this.base("message") │ │ │ │ │ +} │ │ │ │ │ +JSJaCMessage.prototype = new JSJaCPacket; │ │ │ │ │ +JSJaCMessage.prototype.setBody = function(a) { │ │ │ │ │ + this._setChildNode("body", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.setSubject = function(a) { │ │ │ │ │ + this._setChildNode("subject", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.setThread = function(a) { │ │ │ │ │ + this._setChildNode("thread", a); │ │ │ │ │ + return this │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.getThread = function() { │ │ │ │ │ + return this.getChildVal("thread") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.getBody = function() { │ │ │ │ │ + return this.getChildVal("body") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCMessage.prototype.getSubject = function() { │ │ │ │ │ + return this.getChildVal("subject") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCPacket.wrapNode = function(b) { │ │ │ │ │ + var a = null; │ │ │ │ │ + switch (b.nodeName.toLowerCase()) { │ │ │ │ │ + case "presence": │ │ │ │ │ + a = new JSJaCPresence(); │ │ │ │ │ + break; │ │ │ │ │ + case "message": │ │ │ │ │ + a = new JSJaCMessage(); │ │ │ │ │ + break; │ │ │ │ │ + case "iq": │ │ │ │ │ + a = new JSJaCIQ(); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + if (a) { │ │ │ │ │ + a.getDoc().replaceChild(a._importNode(b, true), a.getNode()) │ │ │ │ │ + } │ │ │ │ │ + return a │ │ │ │ │ +}; │ │ │ │ │ + │ │ │ │ │ +function JSJaCConnection(a) { │ │ │ │ │ + if (a && a.oDbg && a.oDbg.log) { │ │ │ │ │ + this.oDbg = a.oDbg │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg = new Object(); │ │ │ │ │ + this.oDbg.log = function() {} │ │ │ │ │ + } │ │ │ │ │ + if (a && a.timerval) { │ │ │ │ │ + this.setPollInterval(a.timerval) │ │ │ │ │ + } else { │ │ │ │ │ + this.setPollInterval(JSJAC_TIMERVAL) │ │ │ │ │ + } │ │ │ │ │ + if (a && a.httpbase) { │ │ │ │ │ + this._httpbase = a.httpbase │ │ │ │ │ + } │ │ │ │ │ + if (a && a.allow_plain) { │ │ │ │ │ + this.allow_plain = a.allow_plain │ │ │ │ │ + } else { │ │ │ │ │ + this.allow_plain = JSJAC_ALLOW_PLAIN │ │ │ │ │ + } │ │ │ │ │ + if (a && a.cookie_prefix) { │ │ │ │ │ + this._cookie_prefix = a.cookie_prefix │ │ │ │ │ + } else { │ │ │ │ │ + this._cookie_prefix = "" │ │ │ │ │ + } │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this._events = new Array(); │ │ │ │ │ + this._keys = null; │ │ │ │ │ + this._ID = 0; │ │ │ │ │ + this._inQ = new Array(); │ │ │ │ │ + this._pQueue = new Array(); │ │ │ │ │ + this._regIDs = new Array(); │ │ │ │ │ + this._req = new Array(); │ │ │ │ │ + this._status = "intialized"; │ │ │ │ │ + this._errcnt = 0; │ │ │ │ │ + this._inactivity = JSJAC_INACTIVITY; │ │ │ │ │ + this._sendRawCallbacks = new Array() │ │ │ │ │ +} │ │ │ │ │ +JSJaCConnection.prototype.connect = function(a) { │ │ │ │ │ + this._setStatus("connecting"); │ │ │ │ │ + this.domain = a.domain || "localhost"; │ │ │ │ │ + this.username = a.username; │ │ │ │ │ + this.resource = a.resource; │ │ │ │ │ + this.pass = a.pass; │ │ │ │ │ + this.register = a.register; │ │ │ │ │ + this.authhost = a.authhost || this.domain; │ │ │ │ │ + this.authtype = a.authtype || "sasl"; │ │ │ │ │ + if (a.xmllang && a.xmllang != "") { │ │ │ │ │ + this._xmllang = a.xmllang │ │ │ │ │ + } │ │ │ │ │ + this.host = a.host || this.domain; │ │ │ │ │ + this.port = a.port || 5222; │ │ │ │ │ + if (a.secure) { │ │ │ │ │ + this.secure = "true" │ │ │ │ │ + } else { │ │ │ │ │ + this.secure = "false" │ │ │ │ │ + } │ │ │ │ │ + if (a.wait) { │ │ │ │ │ + this._wait = a.wait │ │ │ │ │ + } │ │ │ │ │ + this.jid = this.username + "@" + this.domain; │ │ │ │ │ + this.fulljid = this.jid + "/" + this.resource; │ │ │ │ │ + this._rid = Math.round(100000.5 + (((900000.49999) - (100000.5)) * Math.random())); │ │ │ │ │ + var c = this._getFreeSlot(); │ │ │ │ │ + this._req[c] = this._setupRequest(true); │ │ │ │ │ + var b = this._getInitialRequestString(); │ │ │ │ │ + this.oDbg.log(b, 4); │ │ │ │ │ + this._req[c].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ + if (this._req[c].r.readyState == 4) { │ │ │ │ │ + this.oDbg.log("async recv: " + this._req[c].r.responseText, 4); │ │ │ │ │ + this._handleInitialResponse(c) │ │ │ │ │ + } │ │ │ │ │ + }, this); │ │ │ │ │ + if (typeof(this._req[c].r.onerror) != "undefined") { │ │ │ │ │ + this._req[c].r.onerror = JSJaC.bind(function(d) { │ │ │ │ │ + this.oDbg.log("XmlHttpRequest error", 1); │ │ │ │ │ + return false │ │ │ │ │ + }, this) │ │ │ │ │ + } │ │ │ │ │ + this._req[c].r.send(b) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.connected = function() { │ │ │ │ │ + return this._connected │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.disconnect = function() { │ │ │ │ │ + this._setStatus("disconnecting"); │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._connected = false; │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + if (this._timeout) { │ │ │ │ │ + clearTimeout(this._timeout) │ │ │ │ │ + } │ │ │ │ │ + var b = this._getFreeSlot(); │ │ │ │ │ + this._req[b] = this._setupRequest(false); │ │ │ │ │ + request = this._getRequestString(false, true); │ │ │ │ │ + this.oDbg.log("Disconnecting: " + request, 4); │ │ │ │ │ + this._req[b].r.send(request); │ │ │ │ │ + try { │ │ │ │ │ + JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").erase() │ │ │ │ │ + } catch (a) {} │ │ │ │ │ + this.oDbg.log("Disconnected: " + this._req[b].r.responseText, 2); │ │ │ │ │ + this._handleEvent("ondisconnect") │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.getPollInterval = function() { │ │ │ │ │ + return this._timerval │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.registerHandler = function(event) { │ │ │ │ │ + event = event.toLowerCase(); │ │ │ │ │ + var eArg = { │ │ │ │ │ + handler: arguments[arguments.length - 1], │ │ │ │ │ + childName: "*", │ │ │ │ │ + childNS: "*", │ │ │ │ │ + type: "*" │ │ │ │ │ + }; │ │ │ │ │ + if (arguments.length > 2) { │ │ │ │ │ + eArg.childName = arguments[1] │ │ │ │ │ + } │ │ │ │ │ + if (arguments.length > 3) { │ │ │ │ │ + eArg.childNS = arguments[2] │ │ │ │ │ + } │ │ │ │ │ + if (arguments.length > 4) { │ │ │ │ │ + eArg.type = arguments[3] │ │ │ │ │ + } │ │ │ │ │ + if (!this._events[event]) { │ │ │ │ │ + this._events[event] = new Array(eArg) │ │ │ │ │ + } else { │ │ │ │ │ + this._events[event] = this._events[event].concat(eArg) │ │ │ │ │ + } │ │ │ │ │ + this._events[event] = this._events[event].sort(function(a, b) { │ │ │ │ │ + var aRank = 0; │ │ │ │ │ + var bRank = 0; │ │ │ │ │ + with(a) { │ │ │ │ │ + if (type == "*") { │ │ │ │ │ + aRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childNS == "*") { │ │ │ │ │ + aRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childName == "*") { │ │ │ │ │ + aRank++ │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + with(b) { │ │ │ │ │ + if (type == "*") { │ │ │ │ │ + bRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childNS == "*") { │ │ │ │ │ + bRank++ │ │ │ │ │ + } │ │ │ │ │ + if (childName == "*") { │ │ │ │ │ + bRank++ │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (aRank > bRank) { │ │ │ │ │ + return 1 │ │ │ │ │ + } │ │ │ │ │ + if (aRank < bRank) { │ │ │ │ │ + return -1 │ │ │ │ │ + } │ │ │ │ │ + return 0 │ │ │ │ │ + }); │ │ │ │ │ + this.oDbg.log("registered handler for event '" + event + "'", 2) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.unregisterHandler = function(e, d) { │ │ │ │ │ + e = e.toLowerCase(); │ │ │ │ │ + if (!this._events[e]) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var a = this._events[e], │ │ │ │ │ + c = new Array(); │ │ │ │ │ + for (var b = 0; b < a.length; b++) { │ │ │ │ │ + if (a[b].handler != d) { │ │ │ │ │ + c.push(a[b]) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (a.length != c.length) { │ │ │ │ │ + this._events[e] = c; │ │ │ │ │ + this.oDbg.log("unregistered handler for event '" + e + "'", 2) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.registerIQGet = function(a, b, c) { │ │ │ │ │ + this.registerHandler("iq", a, b, "get", c) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.registerIQSet = function(a, b, c) { │ │ │ │ │ + this.registerHandler("iq", a, b, "set", c) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.resume = function() { │ │ │ │ │ + try { │ │ │ │ │ + var a = JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").getValue(); │ │ │ │ │ + this.oDbg.log("read cookie: " + a, 2); │ │ │ │ │ + JSJaCCookie.read(this._cookie_prefix + "JSJaC_State").erase(); │ │ │ │ │ + return this.resumeFromData(JSJaCJSON.parse(a)) │ │ │ │ │ + } catch (b) {} │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.resumeFromData = function(c) { │ │ │ │ │ + try { │ │ │ │ │ + this._setStatus("resuming"); │ │ │ │ │ + for (var b in c) { │ │ │ │ │ + if (c.hasOwnProperty(b)) { │ │ │ │ │ + this[b] = c[b] │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (this._keys) { │ │ │ │ │ + this._keys2 = new JSJaCKeys(); │ │ │ │ │ + var a = this._keys2._getSuspendVars(); │ │ │ │ │ + for (var b = 0; b < a.length; b++) { │ │ │ │ │ + this._keys2[a[b]] = this._keys[a[b]] │ │ │ │ │ + } │ │ │ │ │ + this._keys = this._keys2 │ │ │ │ │ + } │ │ │ │ │ + if (this._connected) { │ │ │ │ │ + this._handleEvent("onresume"); │ │ │ │ │ + setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()); │ │ │ │ │ + this._interval = setInterval(JSJaC.bind(this._checkQueue, this), JSJAC_CHECKQUEUEINTERVAL); │ │ │ │ │ + this._inQto = setInterval(JSJaC.bind(this._checkInQ, this), JSJAC_CHECKINQUEUEINTERVAL) │ │ │ │ │ + } │ │ │ │ │ + return (this._connected === true) │ │ │ │ │ + } catch (d) { │ │ │ │ │ + if (d.message) { │ │ │ │ │ + this.oDbg.log("Resume failed: " + d.message, 1) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("Resume failed: " + d, 1) │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.send = function(d, b, a) { │ │ │ │ │ + if (!d || !d.pType) { │ │ │ │ │ + this.oDbg.log("no packet: " + d, 1); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + if (b) { │ │ │ │ │ + if (!d.getID()) { │ │ │ │ │ + d.setID("JSJaCID_" + this._ID++) │ │ │ │ │ + } │ │ │ │ │ + this._registerPID(d.getID(), b, a) │ │ │ │ │ + } │ │ │ │ │ + try { │ │ │ │ │ + this._handleEvent(d.pType() + "_out", d); │ │ │ │ │ + this._handleEvent("packet_out", d); │ │ │ │ │ + this._pQueue = this._pQueue.concat(d.xml()) │ │ │ │ │ + } catch (c) { │ │ │ │ │ + this.oDbg.log(c.toString(), 1); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.sendIQ = function(e, c, a) { │ │ │ │ │ + if (!e || e.pType() != "iq") { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + c = c || {}; │ │ │ │ │ + var b = c.error_handler || JSJaC.bind(function(g) { │ │ │ │ │ + this.oDbg.log(g.xml(), 1) │ │ │ │ │ + }, this); │ │ │ │ │ + var d = c.result_handler || JSJaC.bind(function(g) { │ │ │ │ │ + this.oDbg.log(g.xml(), 2) │ │ │ │ │ + }, this); │ │ │ │ │ + var f = function(h, g) { │ │ │ │ │ + switch (h.getType()) { │ │ │ │ │ + case "error": │ │ │ │ │ + b(h); │ │ │ │ │ + break; │ │ │ │ │ + case "result": │ │ │ │ │ + d(h, g); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + }; │ │ │ │ │ + return this.send(e, f, a) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.setPollInterval = function(a) { │ │ │ │ │ + if (a && !isNaN(a)) { │ │ │ │ │ + this._timerval = a │ │ │ │ │ + } │ │ │ │ │ + return this._timerval │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.status = function() { │ │ │ │ │ + return this._status │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.suspend = function() { │ │ │ │ │ + var b = this.suspendToData(); │ │ │ │ │ + try { │ │ │ │ │ + var f = new JSJaCCookie(this._cookie_prefix + "JSJaC_State", JSJaCJSON.toString(b)); │ │ │ │ │ + this.oDbg.log("writing cookie: " + f.getValue() + "\n(length:" + f.getValue().length + ")", 2); │ │ │ │ │ + f.write(); │ │ │ │ │ + var a = JSJaCCookie.get(this._cookie_prefix + "JSJaC_State"); │ │ │ │ │ + if (f.getValue() != a) { │ │ │ │ │ + this.oDbg.log("Suspend failed writing cookie.\nread: " + a, 1); │ │ │ │ │ + f.erase(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ + } catch (d) { │ │ │ │ │ + this.oDbg.log("Failed creating cookie '" + this._cookie_prefix + "JSJaC_State': " + d.message, 1) │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype.suspendToData = function() { │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._suspend(); │ │ │ │ │ + var c = ("_connected,_keys,_ID,_inQ,_pQueue,_regIDs,_errcnt,_inactivity,domain,username,resource,jid,fulljid,_sid,_httpbase,_timerval,_is_polling").split(","); │ │ │ │ │ + c = c.concat(this._getSuspendVars()); │ │ │ │ │ + var e = new Object(); │ │ │ │ │ + for (var d = 0; d < c.length; d++) { │ │ │ │ │ + if (!this[c[d]]) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + if (this[c[d]]._getSuspendVars) { │ │ │ │ │ + var a = this[c[d]]._getSuspendVars(); │ │ │ │ │ + var f = new Object(); │ │ │ │ │ + for (var b = 0; b < a.length; b++) { │ │ │ │ │ + f[a[b]] = this[c[d]][a[b]] │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + var f = this[c[d]] │ │ │ │ │ + } │ │ │ │ │ + e[c[d]] = f │ │ │ │ │ + } │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this._setStatus("suspending"); │ │ │ │ │ + return e │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._abort = function() { │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this._setStatus("aborted"); │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("500", "cancel", "service-unavailable")) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._checkInQ = function() { │ │ │ │ │ + for (var a = 0; a < this._inQ.length && a < 10; a++) { │ │ │ │ │ + var b = this._inQ[0]; │ │ │ │ │ + this._inQ = this._inQ.slice(1, this._inQ.length); │ │ │ │ │ + var c = JSJaCPacket.wrapNode(b); │ │ │ │ │ + if (!c) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._handleEvent("packet_in", c); │ │ │ │ │ + if (c.pType && !this._handlePID(c)) { │ │ │ │ │ + this._handleEvent(c.pType() + "_in", c); │ │ │ │ │ + this._handleEvent(c.pType(), c) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._checkQueue = function() { │ │ │ │ │ + if (this._pQueue.length != 0) { │ │ │ │ │ + this._process() │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doAuth = function() { │ │ │ │ │ + if (this.has_sasl && this.authtype == "nonsasl") { │ │ │ │ │ + this.oDbg.log("Warning: SASL present but not used", 1) │ │ │ │ │ + } │ │ │ │ │ + if (!this._doSASLAuth() && !this._doLegacyAuth()) { │ │ │ │ │ + this.oDbg.log("Auth failed for authtype " + this.authtype, 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doInBandReg = function() { │ │ │ │ │ + if (this.authtype == "saslanon" || this.authtype == "anonymous") { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var a = new JSJaCIQ(); │ │ │ │ │ + a.setType("set"); │ │ │ │ │ + a.setID("reg1"); │ │ │ │ │ + a.appendNode("query", { │ │ │ │ │ + xmlns: "jabber:iq:register" │ │ │ │ │ + }, [ │ │ │ │ │ + ["username", this.username], │ │ │ │ │ + ["password", this.pass] │ │ │ │ │ + ]); │ │ │ │ │ + this.send(a, this._doInBandRegDone) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doInBandRegDone = function(a) { │ │ │ │ │ + if (a && a.getType() == "error") { │ │ │ │ │ + this.oDbg.log("registration failed for " + this.username, 0); │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log(this.username + " registered succesfully", 0); │ │ │ │ │ + this._doAuth() │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doLegacyAuth = function() { │ │ │ │ │ + if (this.authtype != "nonsasl" && this.authtype != "anonymous") { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + var a = new JSJaCIQ(); │ │ │ │ │ + a.setIQ(this.server, "get", "auth1"); │ │ │ │ │ + a.appendNode("query", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, [ │ │ │ │ │ + ["username", this.username] │ │ │ │ │ + ]); │ │ │ │ │ + this.send(a, this._doLegacyAuth2); │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doLegacyAuth2 = function(b) { │ │ │ │ │ + if (!b || b.getType() != "result") { │ │ │ │ │ + if (b && b.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", b.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var a = (b.getChild("digest") != null); │ │ │ │ │ + var b = new JSJaCIQ(); │ │ │ │ │ + b.setIQ(this.server, "set", "auth2"); │ │ │ │ │ + query = b.appendNode("query", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, [ │ │ │ │ │ + ["username", this.username], │ │ │ │ │ + ["resource", this.resource] │ │ │ │ │ + ]); │ │ │ │ │ + if (a) { │ │ │ │ │ + query.appendChild(b.buildNode("digest", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, hex_sha1(this.streamid + this.pass))) │ │ │ │ │ + } else { │ │ │ │ │ + if (this.allow_plain) { │ │ │ │ │ + query.appendChild(b.buildNode("password", { │ │ │ │ │ + xmlns: "jabber:iq:auth" │ │ │ │ │ + }, this.pass)) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("no valid login mechanism found", 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this.send(b, this._doLegacyAuthDone) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doLegacyAuthDone = function(a) { │ │ │ │ │ + if (a.getType() != "result") { │ │ │ │ │ + if (a.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + this.disconnect() │ │ │ │ │ + } else { │ │ │ │ │ + this._handleEvent("onconnect") │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuth = function() { │ │ │ │ │ + if (this.authtype == "nonsasl" || this.authtype == "anonymous") { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + if (this.authtype == "saslanon") { │ │ │ │ │ + if (this.mechs.ANONYMOUS) { │ │ │ │ │ + this.oDbg.log("SASL using mechanism 'ANONYMOUS'", 2); │ │ │ │ │ + return this._sendRaw("", this._doSASLAuthDone) │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("SASL ANONYMOUS requested but not supported", 1) │ │ │ │ │ + } else { │ │ │ │ │ + if (this.mechs["DIGEST-MD5"]) { │ │ │ │ │ + this.oDbg.log("SASL using mechanism 'DIGEST-MD5'", 2); │ │ │ │ │ + return this._sendRaw("", this._doSASLAuthDigestMd5S1) │ │ │ │ │ + } else { │ │ │ │ │ + if (this.allow_plain && this.mechs.PLAIN) { │ │ │ │ │ + this.oDbg.log("SASL using mechanism 'PLAIN'", 2); │ │ │ │ │ + var a = this.username + "@" + this.domain + String.fromCharCode(0) + this.username + String.fromCharCode(0) + this.pass; │ │ │ │ │ + this.oDbg.log("authenticating with '" + a + "'", 2); │ │ │ │ │ + a = btoa(a); │ │ │ │ │ + return this._sendRaw("" + a + "", this._doSASLAuthDone) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("No SASL mechanism applied", 1); │ │ │ │ │ + this.authtype = "nonsasl" │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuthDigestMd5S1 = function(e) { │ │ │ │ │ + if (e.nodeName != "challenge") { │ │ │ │ │ + this.oDbg.log("challenge missing", 1); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ + this.disconnect() │ │ │ │ │ + } else { │ │ │ │ │ + var d = atob(e.firstChild.nodeValue); │ │ │ │ │ + this.oDbg.log("got challenge: " + d, 2); │ │ │ │ │ + this._nonce = d.substring(d.indexOf("nonce=") + 7); │ │ │ │ │ + this._nonce = this._nonce.substring(0, this._nonce.indexOf('"')); │ │ │ │ │ + this.oDbg.log("nonce: " + this._nonce, 2); │ │ │ │ │ + if (this._nonce == "" || this._nonce.indexOf('"') != -1) { │ │ │ │ │ + this.oDbg.log("nonce not valid, aborting", 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._digest_uri = "xmpp/"; │ │ │ │ │ + this._digest_uri += this.domain; │ │ │ │ │ + this._cnonce = cnonce(14); │ │ │ │ │ + this._nc = "00000001"; │ │ │ │ │ + var c = str_md5(this.username + ":" + this.domain + ":" + this.pass) + ":" + this._nonce + ":" + this._cnonce; │ │ │ │ │ + var b = "AUTHENTICATE:" + this._digest_uri; │ │ │ │ │ + var a = hex_md5(hex_md5(c) + ":" + this._nonce + ":" + this._nc + ":" + this._cnonce + ":auth:" + hex_md5(b)); │ │ │ │ │ + var f = 'username="' + this.username + '",realm="' + this.domain + '",nonce="' + this._nonce + '",cnonce="' + this._cnonce + '",nc="' + this._nc + '",qop=auth,digest-uri="' + this._digest_uri + '",response="' + a + '",charset="utf-8"'; │ │ │ │ │ + this.oDbg.log("response: " + f, 2); │ │ │ │ │ + this._sendRaw("" + binb2b64(str2binb(f)) + "", this._doSASLAuthDigestMd5S2) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuthDigestMd5S2 = function(e) { │ │ │ │ │ + if (e.nodeName == "failure") { │ │ │ │ │ + if (e.xml) { │ │ │ │ │ + this.oDbg.log("auth error: " + e.xml, 1) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("auth error", 1) │ │ │ │ │ + } │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + var c = atob(e.firstChild.nodeValue); │ │ │ │ │ + this.oDbg.log("response: " + c, 2); │ │ │ │ │ + var f = c.substring(c.indexOf("rspauth=") + 8); │ │ │ │ │ + this.oDbg.log("rspauth: " + f, 2); │ │ │ │ │ + var d = str_md5(this.username + ":" + this.domain + ":" + this.pass) + ":" + this._nonce + ":" + this._cnonce; │ │ │ │ │ + var b = ":" + this._digest_uri; │ │ │ │ │ + var a = hex_md5(hex_md5(d) + ":" + this._nonce + ":" + this._nc + ":" + this._cnonce + ":auth:" + hex_md5(b)); │ │ │ │ │ + this.oDbg.log("rsptest: " + a, 2); │ │ │ │ │ + if (a != f) { │ │ │ │ │ + this.oDbg.log("SASL Digest-MD5: server repsonse with wrong rspauth", 1); │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (e.nodeName == "success") { │ │ │ │ │ + this._reInitStream(this.domain, this._doStreamBind) │ │ │ │ │ + } else { │ │ │ │ │ + this._sendRaw("", this._doSASLAuthDone) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doSASLAuthDone = function(a) { │ │ │ │ │ + if (a.nodeName != "success") { │ │ │ │ │ + this.oDbg.log("auth failed", 1); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("401", "auth", "not-authorized")); │ │ │ │ │ + this.disconnect() │ │ │ │ │ + } else { │ │ │ │ │ + this._reInitStream(this.domain, this._doStreamBind) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doStreamBind = function() { │ │ │ │ │ + var a = new JSJaCIQ(); │ │ │ │ │ + a.setIQ(null, "set", "bind_1"); │ │ │ │ │ + a.appendNode("bind", { │ │ │ │ │ + xmlns: "urn:ietf:params:xml:ns:xmpp-bind" │ │ │ │ │ + }, [ │ │ │ │ │ + ["resource", this.resource] │ │ │ │ │ + ]); │ │ │ │ │ + this.oDbg.log(a.xml()); │ │ │ │ │ + this.send(a, this._doXMPPSess) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doXMPPSess = function(a) { │ │ │ │ │ + if (a.getType() != "result" || a.getType() == "error") { │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + if (a.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.fulljid = a.getChildVal("jid"); │ │ │ │ │ + this.jid = this.fulljid.substring(0, this.fulljid.lastIndexOf("/")); │ │ │ │ │ + a = new JSJaCIQ(); │ │ │ │ │ + a.setIQ(this.domain, "set", "sess_1"); │ │ │ │ │ + a.appendNode("session", { │ │ │ │ │ + xmlns: "urn:ietf:params:xml:ns:xmpp-session" │ │ │ │ │ + }, []); │ │ │ │ │ + this.oDbg.log(a.xml()); │ │ │ │ │ + this.send(a, this._doXMPPSessDone) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._doXMPPSessDone = function(a) { │ │ │ │ │ + if (a.getType() != "result" || a.getType() == "error") { │ │ │ │ │ + this.disconnect(); │ │ │ │ │ + if (a.getType() == "error") { │ │ │ │ │ + this._handleEvent("onerror", a.getChild("error")) │ │ │ │ │ + } │ │ │ │ │ + return │ │ │ │ │ + } else { │ │ │ │ │ + this._handleEvent("onconnect") │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._handleEvent = function(d, a) { │ │ │ │ │ + d = d.toLowerCase(); │ │ │ │ │ + this.oDbg.log("incoming event '" + d + "'", 3); │ │ │ │ │ + if (!this._events[d]) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("handling event '" + d + "'", 2); │ │ │ │ │ + for (var b = 0; b < this._events[d].length; b++) { │ │ │ │ │ + var c = this._events[d][b]; │ │ │ │ │ + if (typeof c.handler == "function") { │ │ │ │ │ + try { │ │ │ │ │ + if (a) { │ │ │ │ │ + if (a.pType) { │ │ │ │ │ + if ((!a.getNode().hasChildNodes() && c.childName != "*") || (a.getNode().hasChildNodes() && !a.getChild(c.childName, c.childNS))) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + if (c.type != "*" && a.getType() != c.type) { │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log(c.childName + "/" + c.childNS + "/" + c.type + " => match for handler " + c.handler, 3) │ │ │ │ │ + } │ │ │ │ │ + if (c.handler(a)) { │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } else { │ │ │ │ │ + if (c.handler()) { │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } catch (f) { │ │ │ │ │ + if (f.fileName && f.lineNumber) { │ │ │ │ │ + this.oDbg.log(c.handler + "\n>>>" + f.name + ": " + f.message + " in " + f.fileName + " line " + f.lineNumber, 1) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log(c.handler + "\n>>>" + f.name + ": " + f.message, 1) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._handlePID = function(d) { │ │ │ │ │ + if (!d.getID()) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + for (var b in this._regIDs) { │ │ │ │ │ + if (this._regIDs.hasOwnProperty(b) && this._regIDs[b] && b == d.getID()) { │ │ │ │ │ + var a = d.getID(); │ │ │ │ │ + this.oDbg.log("handling " + a, 3); │ │ │ │ │ + try { │ │ │ │ │ + if (this._regIDs[b].cb.call(this, d, this._regIDs[b].arg) === false) { │ │ │ │ │ + return false │ │ │ │ │ + } else { │ │ │ │ │ + this._unregisterPID(a); │ │ │ │ │ + return true │ │ │ │ │ + } │ │ │ │ │ + } catch (c) { │ │ │ │ │ + this.oDbg.log(c.name + ": " + c.message, 1); │ │ │ │ │ + this._unregisterPID(a); │ │ │ │ │ + return true │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + return false │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._handleResponse = function(d) { │ │ │ │ │ + var c = this._parseResponse(d); │ │ │ │ │ + if (!c) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + for (var b = 0; b < c.childNodes.length; b++) { │ │ │ │ │ + if (this._sendRawCallbacks.length) { │ │ │ │ │ + var a = this._sendRawCallbacks[0]; │ │ │ │ │ + this._sendRawCallbacks = this._sendRawCallbacks.slice(1, this._sendRawCallbacks.length); │ │ │ │ │ + a.fn.call(this, c.childNodes.item(b), a.arg); │ │ │ │ │ + continue │ │ │ │ │ + } │ │ │ │ │ + this._inQ = this._inQ.concat(c.childNodes.item(b)) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._parseStreamFeatures = function(f) { │ │ │ │ │ + if (!f) { │ │ │ │ │ + this.oDbg.log("nothing to parse ... aborting", 1); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + var e; │ │ │ │ │ + if (f.getElementsByTagNameNS) { │ │ │ │ │ + e = f.getElementsByTagNameNS("http://etherx.jabber.org/streams", "error").item(0) │ │ │ │ │ + } else { │ │ │ │ │ + var g = f.getElementsByTagName("error"); │ │ │ │ │ + for (var b = 0; b < g.length; b++) { │ │ │ │ │ + if (g.item(b).namespaceURI == "http://etherx.jabber.org/streams") { │ │ │ │ │ + e = g.item(b); │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (e) { │ │ │ │ │ + this._setStatus("internal_server_error"); │ │ │ │ │ + clearTimeout(this._timeout); │ │ │ │ │ + clearInterval(this._interval); │ │ │ │ │ + clearInterval(this._inQto); │ │ │ │ │ + this._handleEvent("onerror", JSJaCError("503", "cancel", "session-terminate")); │ │ │ │ │ + this._connected = false; │ │ │ │ │ + this.oDbg.log("Disconnected.", 1); │ │ │ │ │ + this._handleEvent("ondisconnect"); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this.mechs = new Object(); │ │ │ │ │ + var d = f.getElementsByTagName("mechanisms"); │ │ │ │ │ + this.has_sasl = false; │ │ │ │ │ + for (var b = 0; b < d.length; b++) { │ │ │ │ │ + if (d.item(b).getAttribute("xmlns") == "urn:ietf:params:xml:ns:xmpp-sasl") { │ │ │ │ │ + this.has_sasl = true; │ │ │ │ │ + var c = d.item(b).getElementsByTagName("mechanism"); │ │ │ │ │ + for (var a = 0; a < c.length; a++) { │ │ │ │ │ + this.mechs[c.item(a).firstChild.nodeValue] = true │ │ │ │ │ + } │ │ │ │ │ + break │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + if (this.has_sasl) { │ │ │ │ │ + this.oDbg.log("SASL detected", 2) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("No support for SASL detected", 2); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._process = function(a) { │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + this.oDbg.log("Connection lost ...", 1); │ │ │ │ │ + if (this._interval) { │ │ │ │ │ + clearInterval(this._interval) │ │ │ │ │ + } │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this.setPollInterval(a); │ │ │ │ │ + if (this._timeout) { │ │ │ │ │ + clearTimeout(this._timeout) │ │ │ │ │ + } │ │ │ │ │ + var d = this._getFreeSlot(); │ │ │ │ │ + if (d < 0) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (typeof(this._req[d]) != "undefined" && typeof(this._req[d].r) != "undefined" && this._req[d].r.readyState != 4) { │ │ │ │ │ + this.oDbg.log("Slot " + d + " is not ready"); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (!this.isPolling() && this._pQueue.length == 0 && this._req[(d + 1) % 2] && this._req[(d + 1) % 2].r.readyState != 4) { │ │ │ │ │ + this.oDbg.log("all slots busy, standby ...", 2); │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (!this.isPolling()) { │ │ │ │ │ + this.oDbg.log("Found working slot at " + d, 2) │ │ │ │ │ + } │ │ │ │ │ + this._req[d] = this._setupRequest(true); │ │ │ │ │ + this._req[d].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (this._req[d].r.readyState == 4) { │ │ │ │ │ + this._setStatus("processing"); │ │ │ │ │ + this.oDbg.log("async recv: " + this._req[d].r.responseText, 4); │ │ │ │ │ + this._handleResponse(this._req[d]); │ │ │ │ │ + if (this._pQueue.length) { │ │ │ │ │ + this._timeout = setTimeout(JSJaC.bind(this._process, this), 100) │ │ │ │ │ + } else { │ │ │ │ │ + this.oDbg.log("scheduling next poll in " + this.getPollInterval() + " msec", 4); │ │ │ │ │ + this._timeout = setTimeout(JSJaC.bind(this._process, this), this.getPollInterval()) │ │ │ │ │ + } │ │ │ │ │ + } │ │ │ │ │ + }, this); │ │ │ │ │ + try { │ │ │ │ │ + this._req[d].r.onerror = JSJaC.bind(function() { │ │ │ │ │ + if (!this.connected()) { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + this._errcnt++; │ │ │ │ │ + this.oDbg.log("XmlHttpRequest error (" + this._errcnt + ")", 1); │ │ │ │ │ + if (this._errcnt > JSJAC_ERR_COUNT) { │ │ │ │ │ + this._abort(); │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this._setStatus("onerror_fallback"); │ │ │ │ │ + setTimeout(JSJaC.bind(this._resume, this), this.getPollInterval()); │ │ │ │ │ + return false │ │ │ │ │ + }, this) │ │ │ │ │ + } catch (b) {} │ │ │ │ │ + var c = this._getRequestString(); │ │ │ │ │ + if (typeof(this._rid) != "undefined") { │ │ │ │ │ + this._req[d].rid = this._rid │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("sending: " + c, 4); │ │ │ │ │ + this._req[d].r.send(c) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._registerPID = function(c, b, a) { │ │ │ │ │ + if (!c || !b) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this._regIDs[c] = new Object(); │ │ │ │ │ + this._regIDs[c].cb = b; │ │ │ │ │ + if (a) { │ │ │ │ │ + this._regIDs[c].arg = a │ │ │ │ │ + } │ │ │ │ │ + this.oDbg.log("registered " + c, 3); │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._sendEmpty = function JSJaCSendEmpty() { │ │ │ │ │ + var b = this._getFreeSlot(); │ │ │ │ │ + this._req[b] = this._setupRequest(true); │ │ │ │ │ + this._req[b].r.onreadystatechange = JSJaC.bind(function() { │ │ │ │ │ + if (this._req[b].r.readyState == 4) { │ │ │ │ │ + this.oDbg.log("async recv: " + this._req[b].r.responseText, 4); │ │ │ │ │ + this._getStreamID(b) │ │ │ │ │ + } │ │ │ │ │ + }, this); │ │ │ │ │ + if (typeof(this._req[b].r.onerror) != "undefined") { │ │ │ │ │ + this._req[b].r.onerror = JSJaC.bind(function(c) { │ │ │ │ │ + this.oDbg.log("XmlHttpRequest error", 1); │ │ │ │ │ + return false │ │ │ │ │ + }, this) │ │ │ │ │ + } │ │ │ │ │ + var a = this._getRequestString(); │ │ │ │ │ + this.oDbg.log("sending: " + a, 4); │ │ │ │ │ + this._req[b].r.send(a) │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._sendRaw = function(c, b, a) { │ │ │ │ │ + if (b) { │ │ │ │ │ + this._sendRawCallbacks.push({ │ │ │ │ │ + fn: b, │ │ │ │ │ + arg: a │ │ │ │ │ + }) │ │ │ │ │ + } │ │ │ │ │ + this._pQueue.push(c); │ │ │ │ │ + this._process(); │ │ │ │ │ + return true │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._setStatus = function(a) { │ │ │ │ │ + if (!a || a == "") { │ │ │ │ │ + return │ │ │ │ │ + } │ │ │ │ │ + if (a != this._status) { │ │ │ │ │ + this._status = a; │ │ │ │ │ + this._handleEvent("onstatuschanged", a); │ │ │ │ │ + this._handleEvent("status_changed", a) │ │ │ │ │ + } │ │ │ │ │ +}; │ │ │ │ │ +JSJaCConnection.prototype._unregisterPID = function(a) { │ │ │ │ │ + if (!this._regIDs[a]) { │ │ │ │ │ + return false │ │ │ │ │ + } │ │ │ │ │ + this._regIDs[a] = null; │ │ │ │ │ + this.oDbg.log("unregistered " + a, 3); │ │ │ │ │ + return true │ │ │ │ │ };