diff --git a/README.md b/README.md index 3f0792bf..5a796efb 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Calibre-Web is a web app providing a clean interface for browsing, reading and d - Support for public user registration - Send eBooks to Kindle devices with the click of a button - Sync your Kobo devices through Calibre-Web with your Calibre library -- Support for reading eBooks directly in the browser (.txt, .epub, .pdf, .cbr, .cbt, .cbz) +- Support for reading eBooks directly in the browser (.txt, .epub, .pdf, .cbr, .cbt, .cbz, .djvu) - Upload new books in many formats, including audio formats (.mp3, .m4a, .m4b) - Support for Calibre Custom Columns - Ability to hide content based on categories and Custom Column content per user diff --git a/cps/helper.py b/cps/helper.py index 1e9c0321..6008873a 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -187,7 +187,7 @@ def check_send_to_kindle(entry): # Check if a reader is existing for any of the book formats, if not, return empty list, otherwise return # list with supported formats def check_read_formats(entry): - EXTENSIONS_READER = {'TXT', 'PDF', 'EPUB', 'CBZ', 'CBT', 'CBR'} + EXTENSIONS_READER = {'TXT', 'PDF', 'EPUB', 'CBZ', 'CBT', 'CBR', 'DJVU'} bookformats = list() if len(entry.data): for ele in iter(entry.data): diff --git a/cps/static/js/libs/djvu_html5/Djvu_html5.css b/cps/static/js/libs/djvu_html5/Djvu_html5.css new file mode 100644 index 00000000..77e37c97 --- /dev/null +++ b/cps/static/js/libs/djvu_html5/Djvu_html5.css @@ -0,0 +1,194 @@ +body { + margin: 0px; +} + +#djvuContainer { + position: absolute; + width: 100%; + height: 100%; + max-width: 100%; + text-align: center; + overflow: hidden; +} + +.toolbar { + position: relative; + display: inline-block; + padding-top: 10px; + + transform: translate(0, 0); + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transition: transform 0.3s; + -webkit-transition: -webkit-transform 0.3s; +} + +.toolbarHidden { + transform: translate(0, -100%); + -webkit-transform: translate(0, -100%); + -ms-transform: translate(0, -100%); + transition: transform 1s; + -webkit-transition: transform 1s; +} + +.toolbarSquareButton { + float: left; + width: 40px; + height: 40px; + background-image: url("img/toolbar-buttons.png"); + background-repeat: no-repeat; + background-size: 500% 300%; +} + +.scrollbar { + position: absolute; + border-radius: 6px; + opacity: 0.6; + box-shadow: inset 0 0 0 1px black, inset 0 0 0 2px white, inset 0 0 0 10px #BBB; + transition: opacity 0.3s; +} +.scrollbar:hover { + box-shadow: inset 0 0 0 1px black, inset 0 0 0 2px white, inset 0 0 0 10px #999; +} +.scrollbarClicked, .scrollbarClicked:hover { + box-shadow: inset 0 0 0 1px black, inset 0 0 0 2px white, inset 0 0 0 10px #777; +} +.scrollbarHidden { + opacity: 0; + transition: opacity 0.6s; +} + +.scrollbarVertical { + right: 0px; + border-right: 1px solid transparent; + width: 13px; +} + +.scrollbarHorizontal { + bottom: 0px; + border-bottom: 1px solid transparent; + height: 13px; +} + +.content { + overflow: hidden; + position: absolute; + height: 100%; + width: 100%; +} + +.textLayer { + position: absolute; + height: 120%; + width: 120%; + overflow: scroll; + text-align: left; +} +_:-ms-lang(x), .textLayer { + height: 100%; + width: 100%; + -ms-overflow-style: none; +} +.textPage { + margin-top: 100vh; + margin-bottom: 100vh; + padding-right: 100vw; +} +.textPage span { + font-family: sans-serif; + color: #000; + color: rgba(0, 0, 0, 0); + white-space: nowrap; +} +.visibleTextPage span { + display: inline-block; + position: relative; + + top: 50%; + transform: translateY(-50%); + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + /* border: 1px solid red; /* for easy debug */ +} + +.buttonZoomIn { + background-position: 25% 0; +} +.buttonZoomIn:hover { + background-position: 25% 50%; +} +.buttonZoomIn:disabled { + background-position: 25% 100%; +} + +.buttonZoomOut { + background-position: 0 0; +} +.buttonZoomOut:hover { + background-position: 0 50%; +} +.buttonZoomOut:disabled { + background-position: 0 100%; +} + +.buttonPagePrev { + background-position: 50% 0; +} +.buttonPagePrev:hover { + background-position: 50% 50%; +} +.buttonPagePrev:disabled { + background-position: 50% 100%; +} + +.buttonPageNext { + background-position: 75% 0; +} +.buttonPageNext:hover { + background-position: 75% 50%; +} +.buttonPageNext:disabled { + background-position: 75% 100%; +} + +.toolbarItem { + display: inline-block; + margin: 0 10px; +} + +.comboBox { + float: left; + position: relative; +} + +.comboBoxSelection { + width: 8.25ex; + margin: 10px 12px 0px 12px; +} + +.comboBoxText { + width: 5ex; + border: none; + padding: 0px; + outline: none; + + position: absolute; + margin: 10px 0px 0px 12px; + top: 2px; + left: 3px; +} + +.statusImage { + position: absolute; + left: 50%; + top: 50%; + width: 128px; + height: 128px; + margin: -72px 0 0 -64px; + background-image: url("img/status.png"); + background-repeat: no-repeat; +} + +.blankImage { + background-image: url("img/blank.jpg"); +} \ No newline at end of file diff --git a/cps/static/js/libs/djvu_html5/djvu_html5/091ECB3AE852C68866FBC86AA8FCDB1F.cache.js b/cps/static/js/libs/djvu_html5/djvu_html5/091ECB3AE852C68866FBC86AA8FCDB1F.cache.js new file mode 100644 index 00000000..602edae2 --- /dev/null +++ b/cps/static/js/libs/djvu_html5/djvu_html5/091ECB3AE852C68866FBC86AA8FCDB1F.cache.js @@ -0,0 +1,8 @@ +djvu_html5.onScriptDownloaded(["var $wnd = $wnd || window.parent;var __gwtModuleFunction = $wnd.djvu_html5;var $sendStats = __gwtModuleFunction.__sendStats;$sendStats('moduleStartup', 'moduleEvalStart');var $gwt_version = \"2.8.1\";var $strongName = '091ECB3AE852C68866FBC86AA8FCDB1F';var $gwt = {};var $doc = $wnd.document;var $moduleName, $moduleBase;function __gwtStartLoadingFragment(frag) {var fragFile = 'deferredjs/' + $strongName + '/' + frag + '.cache.js';return __gwtModuleFunction.__startLoadingFragment(fragFile);}function __gwtInstallCode(code) {return __gwtModuleFunction.__installRunAsyncCode(code);}function __gwt_isKnownPropertyValue(propName, propValue) {return __gwtModuleFunction.__gwt_isKnownPropertyValue(propName, propValue);}function __gwt_getMetaProperty(name) {return __gwtModuleFunction.__gwt_getMetaProperty(name);}var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent && $wnd.__gwtStatsEvent(a);} : null;var $sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;function Lp(){}\nfunction Hp(){}\nfunction ub(){}\nfunction zd(){}\nfunction Gd(){}\nfunction jd(){}\nfunction dc(){}\nfunction nf(){}\nfunction sf(){}\nfunction zf(){}\nfunction Jf(){}\nfunction Of(){}\nfunction Tf(){}\nfunction Yf(){}\nfunction bg(){}\nfunction gg(){}\nfunction mg(){}\nfunction ug(){}\nfunction zg(){}\nfunction Eg(){}\nfunction Jg(){}\nfunction Ng(){}\nfunction ah(){}\nfunction _p(){}\nfunction oq(){}\nfunction qq(){}\nfunction Mq(){}\nfunction Mr(){}\nfunction Kr(){}\nfunction zs(){}\nfunction Bs(){}\nfunction ut(){}\nfunction gu(){}\nfunction vu(){}\nfunction Gx(){}\nfunction Mx(){}\nfunction Yx(){}\nfunction Sz(){}\nfunction XH(){}\nfunction eI(){}\nfunction NJ(){}\nfunction RJ(){}\nfunction FL(){}\nfunction HL(){}\nfunction bM(){}\nfunction dM(){}\nfunction fM(){}\nfunction hM(){}\nfunction jM(){}\nfunction lM(){}\nfunction nM(){}\nfunction pM(){}\nfunction rM(){}\nfunction iO(){}\nfunction EP(){}\nfunction JP(){}\nfunction OP(){}\nfunction cq(a){}\nfunction xu(a){}\nfunction Lz(a){}\nfunction Wz(a){}\nfunction jc(a){ic=a}\nfunction _q(){$q()}\nfunction EO(){AO()}\nfunction zu(){xu(this)}\nfunction Zz(){Wz(this)}\nfunction Ot(){this.a=0}\nfunction Op(a,b){a.a=b}\nfunction gf(a,b){a.a=b}\nfunction ef(a,b){a.d=b}\nfunction hf(a,b){a.b=b}\nfunction Pp(a,b){a.b=b}\nfunction ZB(a,b){a.b=b}\nfunction $B(a,b){a.c=b}\nfunction Xx(a,b){a.c=b}\nfunction Xr(a,b){a.a=b}\nfunction zM(a,b){a.a=b}\nfunction Ib(a,b){a.n=b}\nfunction pQ(a,b){a.e=b}\nfunction uD(a){this.a=a}\nfunction od(a){this.a=a}\nfunction qd(a){this.a=a}\nfunction Xp(a){this.a=a}\nfunction bq(a){this.a=a}\nfunction CB(a){this.a=a}\nfunction zC(a){this.a=a}\nfunction HF(a){this.a=a}\nfunction UF(a){this.d=a}\nfunction dt(a){this.c=a}\nfunction uH(a){this.c=a}\nfunction rx(a){this.b=a}\nfunction kI(a){this.b=a}\nfunction zI(a){this.b=a}\nfunction XI(a){this.c=a}\nfunction gG(a){this.a=a}\nfunction mG(a){this.a=a}\nfunction qG(a){this.a=a}\nfunction vG(a){this.a=a}\nfunction xJ(a){this.a=a}\nfunction BJ(a){this.a=a}\nfunction rL(a){this.a=a}\nfunction RM(a){this.a=a}\nfunction CN(a){this.a=a}\nfunction JN(a){this.a=a}\nfunction JQ(a){this.a=a}\nfunction LQ(a){this.a=a}\nfunction VQ(a){this.a=a}\nfunction XQ(a){this.a=a}\nfunction gO(a){this.a=a}\nfunction MO(a){this.a=a}\nfunction eP(a){this.a=a}\nfunction CP(a){this.a=a}\nfunction DR(a){this.a=a}\nfunction HR(a){this.a=a}\nfunction IR(a){this.a=a}\nfunction KR(a){this.a=a}\nfunction LR(a){this.a=a}\nfunction NR(a){this.a=a}\nfunction OR(a){this.a=a}\nfunction QR(a){this.a=a}\nfunction rg(){this.a={}}\nfunction $G(){KG(this)}\nfunction hK(){tF(this)}\nfunction ac(a){Ib(this,a)}\nfunction Hb(a,b){Ib(a,b)}\nfunction lg(a,b){zQ(b,a)}\nfunction Nt(a,b){a.a=b.a}\nfunction he(b,a){b.src=a}\nfunction rq(b,a){b.set(a)}\nfunction MN(a){return a}\nfunction yO(a){qO();oO=a}\nfunction Az(a){xz(this,a)}\nfunction hc(){this.a=Lc()}\nfunction Ff(){this.c=++Cf}\nfunction IC(){IC=Hp;IC()}\nfunction Vr(){Vr=Hp;we()}\nfunction Js(){Js=Hp;Qs()}\nfunction Wr(){Wr=Hp;new hK}\nfunction JA(){BA();new ZA}\nfunction fC(a){a.a=new uC}\nfunction rC(a){a.b=new zz}\nfunction Bq(a){return true}\nfunction ps(a,b){ie(a.n,b)}\nfunction Jb(a,b){Od(a.n,b)}\nfunction Kb(a,b){Mb(a.n,b)}\nfunction SA(a,b){MG(a.b,b)}\nfunction QN(a,b){MG(a.b,b)}\nfunction RN(a,b){MG(a.d,b)}\nfunction SN(a,b){MG(a.j,b)}\nfunction TN(a,b){MG(a.k,b)}\nfunction $P(a,b){MG(a.b,b)}\nfunction hs(a,b){Rr(a.d,b)}\nfunction JO(a,b){DO(a.a,b)}\nfunction qg(a,b,c){a.a[b]=c}\nfunction vD(a){this.a=Iz(a)}\nfunction th(){this.c=new dL}\nfunction Ey(){this.g=new ZA}\nfunction ZA(){this.b=new $G}\nfunction _B(){this.a=new $G}\nfunction GB(){this.e=new Yw}\nfunction zz(){xz(this,null)}\nfunction It(){Bt();Ct(this)}\nfunction kD(){zc.call(this)}\nfunction ND(){zc.call(this)}\nfunction pD(){zc.call(this)}\nfunction rD(){zc.call(this)}\nfunction CC(){zc.call(this)}\nfunction GC(){zc.call(this)}\nfunction IE(){zc.call(this)}\nfunction XJ(){zc.call(this)}\nfunction JL(){zc.call(this)}\nfunction KB(){GB.call(this)}\nfunction LB(){GB.call(this)}\nfunction WB(){GB.call(this)}\nfunction EC(){CC.call(this)}\nfunction HK(){HK=Hp;GK=JK()}\nfunction nK(){this.a=new hK}\nfunction xM(){this.a=new hK}\nfunction iP(){this.d=new $G}\nfunction ud(a){td();sd.jb(a)}\nfunction rO(a){qO();MG(pO,a)}\nfunction Jq(a){lr();tr(a,kT)}\nfunction Fq(a){return kr(a)}\nfunction kd(a){return a.hb()}\nfunction jN(a){cN(a);return a}\nfunction Cr(a,b){xr(a,b,a.n)}\nfunction Tr(a,b){xr(a,b,a.n)}\nfunction Xs(a,b){Zs(a,b,a.c)}\nfunction ks(a,b){os(a,b,b,-1)}\nfunction GO(a,b){_N(a.a.d,b)}\nfunction HO(a,b){aO(a.a.d,b)}\nfunction LO(a,b){dO(a.a.d,b)}\nfunction Dq(a,b){lr();tr(a,b)}\nfunction DM(a,b){!!b&&(a.c=b)}\nfunction Ju(a){return btoa(a)}\nfunction Ac(a){yc.call(this,a)}\nfunction OD(a){Cc.call(this,a)}\nfunction PD(a){Ac.call(this,a)}\nfunction eh(a){bh.call(this,a)}\nfunction dq(a){cq.call(this,a)}\nfunction Ir(a){eh.call(this,a)}\nfunction Or(a){ac.call(this,a)}\nfunction Gs(a){ac.call(this,a)}\nfunction LH(a){cN(a);this.a=a}\nfunction TH(){TH=Hp;SH=new XH}\nfunction Ec(){Ec=Hp;Dc=new ub}\nfunction _c(){_c=Hp;$c=new jd}\nfunction Vp(){Vp=Hp;Up=new _p}\nfunction $q(){$q=Hp;Zq=new Ff}\nfunction Gu(){Gu=Hp;Fu=new hK}\nfunction dI(){dI=Hp;cI=new eI}\nfunction Eu(){Eu=Hp;GE();Du=FE}\nfunction wC(a){yc.call(this,a)}\nfunction DC(a){Ac.call(this,a)}\nfunction HC(a){Ac.call(this,a)}\nfunction qD(a){Ac.call(this,a)}\nfunction sD(a){Ac.call(this,a)}\nfunction MD(a){Ac.call(this,a)}\nfunction JE(a){Ac.call(this,a)}\nfunction EE(a){DC.call(this,a)}\nfunction FC(a){DC.call(this,a)}\nfunction WD(a){qD.call(this,a)}\nfunction oJ(a){kI.call(this,a)}\nfunction IJ(a){DI.call(this,a)}\nfunction sJ(a){oJ.call(this,a)}\nfunction SM(a){RM.call(this,a)}\nfunction xE(){zC.call(this,'')}\nfunction CE(){zC.call(this,'')}\nfunction KL(){Ac.call(this,UT)}\nfunction Bp(){zp==null&&(zp=[])}\nfunction yI(){throw dp(new IE)}\nfunction WI(){throw dp(new IE)}\nfunction Qc(){Qc=Hp;!!(td(),sd)}\nfunction sN(){sN=Hp;pN={};rN={}}\nfunction UC(a){TC(a);return a.k}\nfunction Qd(a){a=qE(a);return a}\nfunction rh(a,b){a.e=b;return a}\nfunction Mt(a,b){a.a=b<<24>>24}\nfunction Pt(a){this.a=a<<24>>24}\nfunction ID(a){return a<0?-a:a}\nfunction je(a,b){return a.c-b.c}\nfunction pg(a,b){return a.a[b]}\nfunction Dh(a,b){return aD(a,b)}\nfunction JD(a,b){return a>b?a:b}\nfunction KD(a,b){return a0}\nfunction _v(a,b){a.d.e[a.c+a.b]=b}\nfunction $v(a,b){a.d.e[a.c+a.a]=b}\nfunction bw(a,b){a.d.e[a.c+a.e]=b}\nfunction qx(a,b,c){a.b.c[b+a.a]=c}\nfunction uF(a){return a.d.c+a.e.c}\nfunction lK(a,b){return lF(a.a,b)}\nfunction Bc(a,b){rc.call(this,a,b)}\nfunction ir(){Tg.call(this,null)}\nfunction Mz(){Lz(this);this.a=0}\nfunction Nz(){Lz(this);this.a=0}\nfunction ke(a,b){this.b=a;this.c=b}\nfunction xe(a,b){ke.call(this,a,b)}\nfunction Ne(a,b){ke.call(this,a,b)}\nfunction Pe(){Ne.call(this,'PX',0)}\nfunction Re(){Ne.call(this,'EM',2)}\nfunction Se(){Ne.call(this,'EX',3)}\nfunction Te(){Ne.call(this,'PT',4)}\nfunction Ue(){Ne.call(this,'PC',5)}\nfunction Ve(){Ne.call(this,'IN',6)}\nfunction We(){Ne.call(this,'CM',7)}\nfunction Xe(){Ne.call(this,'MM',8)}\nfunction _e(a,b){ke.call(this,a,b)}\nfunction Ah(a,b){ke.call(this,a,b)}\nfunction jp(a,b){return gp(a,b)==0}\nfunction mp(a,b){return gp(a,b)>=0}\nfunction pp(a,b){return gp(a,b)<=0}\nfunction dd(a){return !!a.a||!!a.f}\nfunction LK(){HK();return new GK}\nfunction $x(){$x=Hp;Zx=new uD(-1)}\nfunction zr(){this.f=new at(this)}\nfunction cs(a,b){this.a=a;this.b=b}\nfunction av(a,b){this.a=a;this.b=b}\nfunction cv(a,b){this.b=a;this.a=b}\nfunction Bx(a,b){this.b=a;this.a=b}\nfunction eA(a,b){this.a=a;this.b=b}\nfunction BB(a,b){this.b=a;this.a=b}\nfunction GG(a,b){this.d=a;this.e=b}\nfunction Qy(){this.b=0;this.a=null}\nfunction Rs(a,b){ke.call(this,a,b)}\nfunction jt(a,b){rc.call(this,a,b)}\nfunction gP(a,b){this.a=a;this.b=b}\nfunction mP(a,b){this.i=a;this.e=b}\nfunction oP(a,b){this.a=a;this.b=b}\nfunction qP(a,b){this.a=a;this.b=b}\nfunction HQ(a,b){this.a=a;this.b=b}\nfunction bS(a,b){this.b=a;this.a=b}\nfunction ae(a,b){a.innerText=b||''}\nfunction Od(b,a){b.className=a||''}\nfunction nt(b,a){b.responseType=a}\nfunction ie(b,a){b.selectedIndex=a}\nfunction JM(a,b,c){a.splice(b,0,c)}\nfunction tD(a,b){return wD(a.a,b.a)}\nfunction NK(a,b){return a.a.get(b)}\nfunction nE(a,b){return a.substr(b)}\nfunction dE(a,b){return cN(a),a===b}\nfunction wz(b,a){return b.array[a]}\nfunction Bi(a){return typeof a===jS}\nfunction Ci(a){return typeof a===kS}\nfunction Fi(a){return typeof a===lS}\nfunction np(a){return typeof a===kS}\nfunction Rw(a){return a.ymax-a.ymin}\nfunction Xw(a){return a.xmax-a.xmin}\nfunction FO(a){AO();console.log(a)}\nfunction Yc(a){$wnd.clearTimeout(a)}\nfunction Oq(a){$wnd.clearTimeout(a)}\nfunction xC(){wC.call(this,'UTF-8')}\nfunction Qe(){Ne.call(this,'PCT',1)}\nfunction UM(){RM.call(this,'UTF-8')}\nfunction Zc(){Mc!=0&&(Mc=0);Pc=-1}\nfunction lr(){if(!jr){sr();jr=true}}\nfunction AK(a){this.a=LK();this.b=a}\nfunction QK(a){this.a=LK();this.b=a}\nfunction AE(a,b){a.a+=''+b;return a}\nfunction BE(a,b){a.a+=''+b;return a}\nfunction _b(a,b){a.n['disabled']=!b}\nfunction gc(c,a,b){c.translate(a,b)}\nfunction KE(a,b){return bE(a.a,b.a)}\nfunction fE(a,b){return a.indexOf(b)}\nfunction vE(a){return wE(a,a.length)}\nfunction Hi(a){return a==null?null:a}\nfunction my(a,b){return nA(a.d,b)!=0}\nfunction ih(a){fh(ZS,a);return jh(a)}\nfunction Nq(a){$wnd.clearInterval(a)}\nfunction $E(a){return !a?null:a.wc()}\nfunction Fv(a,b){a.c=b;a.b=sv(a,a.k)}\nfunction lQ(a,b){b.a==a.n&&qQ(a,b.a)}\nfunction Tx(a,b){a.a=a.a+(b<<16>>16)}\nfunction Ux(a,b){a.a=a.a-(b<<16>>16)}\nfunction Wx(a,b){a.b=a.b-(b<<16>>16)}\nfunction Vx(a,b){a.b=a.b+(b<<16>>16)}\nfunction KG(a){a.a=Hh(ym,gS,1,0,5,1)}\nfunction kc(a){a.i=Hh(Am,gS,60,0,0,1)}\nfunction Be(){xe.call(this,'LEFT',2)}\nfunction Vs(){Rs.call(this,'LEFT',2)}\nfunction Ws(){Rs.call(this,'RIGHT',3)}\nfunction Ce(){xe.call(this,'RIGHT',3)}\nfunction Cs(){vs.call(this,$doc.body)}\nfunction uC(){Yw.call(this);rC(this)}\nfunction vB(a){ZA.call(this);this.a=a}\nfunction Tg(a){this.a=new _g;this.b=a}\nfunction Xz(a,b){a.a=b;a.c=0;return a}\nfunction qA(a,b){a.k=b;oA(a);return a}\nfunction Fs(a,b){a.n[zT]=b!=null?b:''}\nfunction ML(a){return a!=null?Ab(a):0}\nfunction Ph(a){return Qh(a.l,a.m,a.h)}\nfunction nD(a){return dE(kS,typeof a)}\nfunction gE(a){return dE(lS,typeof a)}\nfunction LD(a,b){return gp(a,b)<0?a:b}\nfunction lN(a,b){return parseInt(a,b)}\nfunction wD(a,b){return ab?1:0}\nfunction cK(a){return a<10?'0'+a:''+a}\nfunction xz(b,a){b.array=a?a.array:[]}\nfunction XG(a,b){HH(a.a,a.a.length,b)}\nfunction bL(a,b){if(a.a){nL(b);mL(b)}}\nfunction xN(a){if(!a.c)return;a.b=true}\nfunction xQ(a){this.a=a;Mq.call(this)}\nfunction _R(a){this.a=a;Mq.call(this)}\nfunction YA(a){dB(true);a.b.a.length=0}\nfunction dp(a){return a.backingJsObject}\nfunction _D(a,b){return a.charCodeAt(b)}\nfunction kP(a,b){a.a=b;IO(a.i.a,a.e,b)}\nfunction VJ(a,b){var c;c=a[yU];b[yU]=c}\nfunction ze(){xe.call(this,'CENTER',0)}\nfunction Ts(){Rs.call(this,'CENTER',0)}\nfunction cf(){_e.call(this,'HIDDEN',1)}\nfunction Hv(){tv.call(this,3,3,3,true)}\nfunction DE(a){zC.call(this,(cN(a),a))}\nfunction Ae(){xe.call(this,'JUSTIFY',1)}\nfunction bf(){_e.call(this,'VISIBLE',0)}\nfunction WM(a){if(!a){throw dp(new pD)}}\nfunction $M(a){if(!a){throw dp(new GC)}}\nfunction aN(a){if(!a){throw dp(new JL)}}\nfunction gN(a){if(!a){throw dp(new rD)}}\nfunction iN(a){if(!a){throw dp(new kD)}}\nfunction $e(){$e=Hp;Ze=new bf;Ye=new cf}\nfunction sq(a){return new Int16Array(a)}\nfunction tq(a){return new Int32Array(a)}\nfunction wq(a){return new Uint8Array(a)}\nfunction xq(a){return new Uint8Array(a)}\nfunction oN(a){return a.$H||(a.$H=++nN)}\nfunction Zh(a){return a.l+a.m*bT+a.h*cT}\nfunction Qh(a,b,c){return {l:a,m:b,h:c}}\nfunction kN(a,b){return a==b?0:a>1))}\nfunction Hq(a){zq=a;lr();a.setCapture()}\nfunction SI(a){zI.call(this,a);this.a=a}\nfunction DI(a){kI.call(this,a);this.a=a}\nfunction Us(){Rs.call(this,'JUSTIFY',1)}\nfunction Kv(){Kv=Hp;Jv=new Ov(-1,-1,-1)}\nfunction LJ(){LJ=Hp;JJ=new NJ;KJ=new RJ}\nfunction Hr(){Hr=Hp;Fr=new Kr;Gr=new Mr}\nfunction EL(){EL=Hp;CL=new FL;DL=new HL}\nfunction qO(){qO=Hp;nO=new Yw;pO=new $G}\nfunction ex(a,b){a.c=new hu(b);return a}\nfunction IP(a,b,c){a.c=b;a.d=c;return a}\nfunction aw(a,b,c){a.c=(sv(a.d,b)+c)*qv}\nfunction mK(a,b){return sF(a.a,b)!=null}\nfunction hE(a,b){return a.lastIndexOf(b)}\nfunction Ai(a,b){return a!=null&&ui(a,b)}\nfunction Id(b,a){return b.appendChild(a)}\nfunction Jd(b,a){return b.removeChild(a)}\nfunction Ld(b,a){return parseInt(b[a])|0}\nfunction hq(c,a,b){return a.replace(c,b)}\nfunction Su(a,b){return vi(oF(a.e,b),54)}\nfunction ou(a,b){return vi(oF(a.b,b),34)}\nfunction YG(a){return HM(a.a,a.a.length)}\nfunction oL(a){pL.call(this,a,null,null)}\nfunction bQ(a){this.a=a;TP.call(this,a)}\nfunction _g(){this.d=new hK;this.c=false}\nfunction Ig(){Ig=Hp;Hg=new Gf(WS,new Jg)}\nfunction Xf(){Xf=Hp;Wf=new Gf(JS,new Yf)}\nfunction TC(a){if(a.k!=null){return}eD(a)}\nfunction Ic(a){return a==null?null:a.name}\nfunction VN(a){return a.e?a.e.a.length:1}\nfunction oE(a,b,c){return a.substr(b,c-b)}\nfunction vq(c,a,b){return c.subarray(a,b)}\nfunction iv(a,b){return jv(a,qu(a.c,b).b)}\nfunction sv(a,b){return b*a.Sb()+a.border}\nfunction ec(d,a,b,c){d.drawImage(a,b,c)}\nfunction Zr(a,b){Yr(a,(mq(),new iq(b)))}\nfunction Qt(a,b){b-a.a.length>0&&Rt(a,b)}\nfunction lC(a,b){a.b=gC(b);a.c=a.b.buffer}\nfunction ON(a,b){this.order=a;this.data=b}\nfunction zc(){kc(this);mc(this);this.fb()}\nfunction Ny(){Ey.call(this);this.a=new ZA}\nfunction QB(){GB.call(this);this.d=new ZA}\nfunction QE(a){qD.call(this,a==null?rS:a)}\nfunction RE(a){qD.call(this,a==null?rS:a)}\nfunction wO(a){qO();if(lO!=a){lO=a;sO()}}\nfunction xd(a){td();return parseInt(a)||-1}\nfunction LC(a,b){IC();return a==b?0:a?1:-1}\nfunction KC(a){IC();return dE(jS,typeof a)}\nfunction jQ(a){return Ii(a.r/a.s*100+0.5)}\nfunction $O(a){return !a.i?0:a.i.a.length}\nfunction _K(a){tF(a.c);a.b.b=a.b;a.b.a=a.b}\nfunction WJ(a){var b;b=a[yU]|0;a[yU]=b+1}\nfunction Py(a,b){a.b=b;a.a=new Hv;return a}\nfunction yi(a){iN(a==null||Fi(a));return a}\nfunction $J(a){this.a=new $wnd.Date(wp(a))}\nfunction Tt(){this.a=Hh(Ji,GT,11,32,15,1)}\nfunction GD(){GD=Hp;FD=Hh(sm,gS,18,256,0,1)}\nfunction Xq(){Sq&&Pg((!Tq&&(Tq=new ir),Tq))}\nfunction Nv(){Kv();this.f=this.g=this.i=-51}\nfunction mN(b,c,d){try{b[c]=d}catch(a){}}\nfunction cE(a,b,c,d){return vE(d.Ac(a,b,c))}\nfunction iE(a,b,c){return a.lastIndexOf(b,c)}\nfunction Ei(a,b){return a&&b&&a instanceof b}\nfunction Rc(a,b,c){return a.apply(b,c);var d}\nfunction ee(b,a){return b.getElementById(a)}\nfunction Hc(a){return a==null?null:a.message}\nfunction Rg(a,b,c){return Vg(a.a,b,c),new ah}\nfunction Rq(a,b){return $wnd.setTimeout(a,b)}\nfunction ot(){return new $wnd.XMLHttpRequest}\nfunction mf(){mf=Hp;lf=new Gf('blur',new nf)}\nfunction Wd(a,b){a.fireEvent('on'+b.type,b)}\nfunction hd(a,b){a.a=ld(a.a,[b,true]);ed(a)}\nfunction gd(a,b){a.a=ld(a.a,[b,false]);ed(a)}\nfunction Xt(a,b){a.d=b;a.c=0;a.a=mS;return a}\nfunction zG(a,b){var c;c=a.e;a.e=b;return c}\nfunction RG(a,b){return SG(a,b,a.a.length-1)}\nfunction yH(a,b,c){return zH(a,a.length,b,c)}\nfunction fc(e,a,b,c,d){e.fillRect(a,b,c,d)}\nfunction LP(a){KP.call(this,a.a,a.b,a.c,a.d)}\nfunction BC(){Ac.call(this,'divide by zero')}\nfunction xw(){pw();tv.call(this,0,1,2,false)}\nfunction yN(a){hd((_c(),$c),a);return false}\nfunction GR(a,b){Fs(a.a.e.e,b+'%');rR(a.a.e)}\nfunction Ug(a,b){!a.a&&(a.a=new $G);MG(a.a,b)}\nfunction Pg(a){var b;if(Mg){b=new Ng;Sg(a,b)}}\nfunction XM(a,b){if(!a){throw dp(new qD(b))}}\nfunction _M(a,b){if(!a){throw dp(new HC(b))}}\nfunction dB(a){if(!a){throw dp(new FC('0'))}}\nfunction gs(a){this.n=a;this.d=new Sr(this.n)}\nfunction XK(a,b,c){this.a=a;this.b=b;this.c=c}\nfunction st(a,b,c){ke.call(this,a,b);this.a=c}\nfunction pL(a,b,c){this.c=a;GG.call(this,b,c)}\nfunction HH(a,b,c){YM(b,a.length);FH(a,0,b,c)}\nfunction WA(a,b){cB(b,a.b.a.length);TG(a.b,b)}\nfunction KM(a,b,c){IM(c,0,a,b,c.length,false)}\nfunction _d(a,b,c){c?a.add(b,c.index):a.add(b)}\nfunction FN(b,a){b.djvuWorker.postMessage(a)}\nfunction Pw(a){a.xmin=a.xmax=a.ymin=a.ymax=0}\nfunction hy(a,b){a.U[0]=a.U[1]=a.U[2]=b;a.V=0}\nfunction MG(a,b){a.a[a.a.length]=b;return true}\nfunction vi(a,b){iN(a==null||ui(a,b));return a}\nfunction lR(a,b){a.a=b;pQ(b,new HR(a));rR(a.e)}\nfunction QJ(a,b){return cN(b),MC(b,(cN(a),a))}\nfunction MJ(a,b){return cN(a),MC(a,(cN(b),b))}\nfunction JC(a,b){return LC((cN(a),a),(cN(b),b))}\nfunction mD(a,b){return oD((cN(a),a),(cN(b),b))}\nfunction aE(a,b){return kN((cN(a),a),(cN(b),b))}\nfunction AM(a){this.c=a;this.b=(GE(),kp(MM()))}\nfunction Jx(a){a.j=a.e=a.a=null;a.i=a.g=0;Eu()}\nfunction nv(){ev();this.b=new hK;this.c=new su}\nfunction zy(){$x();ly.call(this);this.e=new Ot}\nfunction yf(){yf=Hp;xf=new Gf('click',new zf)}\nfunction rf(){rf=Hp;qf=new Gf('change',new sf)}\nfunction If(){If=Hp;Hf=new Gf('keydown',new Jf)}\nfunction tg(){tg=Hp;sg=new Gf('scroll',new ug)}\nfunction fg(){fg=Hp;eg=new Gf('mouseup',new gg)}\nfunction tp(a,b){return hp(gi(np(a)?vp(a):a,b))}\nfunction Pq(a,b){return cS(function(){a.Bb(b)})}\nfunction LG(a,b,c){eN(b,a.a.length);JM(a.a,b,c)}\nfunction PG(a,b){bN(b,a.a.length);return a.a[b]}\nfunction IH(a,b){bN(b,a.a.length);return a.a[b]}\nfunction vw(a,b,c,d){a.k=c;a.i=d;a.e=b;return a}\nfunction GN(a){!a.border&&(a.border=0);return a}\nfunction Np(a){if(a.b){return a.b}return ZL(),QL}\nfunction rQ(a,b){if(!a.o)return;gQ(a,b*a.s/100)}\nfunction Gv(a,b){if(b!=a.k){a.k=b;a.b=sv(a,a.k)}}\nfunction wA(a,b){a.c=b.c;a.b=b.b;a.d=b.d;a.a=b.a}\nfunction nL(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null}\nfunction rR(a){_b(a.b,a.Ec(-1));_b(a.c,a.Ec(1))}\nfunction aH(a){KG(this);KM(this.a,0,a.toArray())}\nfunction wQ(a){$wnd.history.replaceState(a,'',a)}\nfunction ws(a){us();try{Sb(a)}finally{mK(ts,a)}}\nfunction Kz(a){return Ci(a)?Ii((cN(a),a)):a.hc()}\nfunction Jh(a){return Array.isArray(a)&&a.Jc===Lp}\nfunction Wg(a,b,c,d){var e;e=Yg(a,b,c);e.add(d)}\nfunction Fh(a,b,c,d,e,f){return Gh(a,b,c,d,e,0,f)}\nfunction yg(){yg=Hp;xg=new Gf('touchend',new zg)}\nfunction Dg(){Dg=Hp;Cg=new Gf('touchmove',new Eg)}\nfunction ag(){ag=Hp;_f=new Gf('mouseover',new bg)}\nfunction Sf(){Sf=Hp;Rf=new Gf('mousemove',new Tf)}\nfunction Nf(){Nf=Hp;Mf=new Gf('mousedown',new Of)}\nfunction GE(){GE=Hp;FE=new dq(null);new dq(null)}\nfunction us(){us=Hp;rs=new zs;ss=new hK;ts=new nK}\nfunction EM(a){this.b=a;this.d=true;this.a=new $G}\nfunction at(a){this.b=a;this.a=Hh(Rk,gS,20,4,0,1)}\nfunction js(a){gs.call(this,(eE('span',$d(a)),a))}\nfunction lF(a,b){return Fi(b)?pF(a,b):!!xK(a.d,b)}\nfunction MK(a,b){return !(a.a.get(b)===undefined)}\nfunction WN(a,b){return a.e?vi(IH(a.e,b),38):null}\nfunction XN(a,b){return a.f?vi(IH(a.f,b),61):null}\nfunction Di(a){return a!=null&&Gi(a)&&!(a.Jc===Lp)}\nfunction zi(a){return !Array.isArray(a)&&a.Jc===Lp}\nfunction Gi(a){return typeof a===dS||typeof a===iS}\nfunction HD(a,b){return gp(a,b)<0?-1:gp(a,b)>0?1:0}\nfunction ru(a,b){return gA(a.c,vi(UA(a.d,b),34).b)}\nfunction Uq(a){Wq();return Vq(Mg?Mg:(Mg=new Ff),a)}\nfunction dN(a,b){if(a==null){throw dp(new PD(b))}}\nfunction kh(a,b){if(a==null){throw dp(new qD(b))}}\nfunction cB(a,b){if(a<0||a>=b){throw dp(new EC)}}\nfunction XA(a,b,c){cB(c,a.b.a.length);WG(a.b,c,b)}\nfunction ld(a,b){!a&&(a=[]);a[a.length]=b;return a}\nfunction YC(a,b,c){var d;d=XC(a,b);iD(c,d);return d}\nfunction nF(a,b){return Fi(b)?oF(a,b):$E(xK(a.d,b))}\nfunction ai(a,b){return Qh(a.l&b.l,a.m&b.m,a.h&b.h)}\nfunction fi(a,b){return Qh(a.l|b.l,a.m|b.m,a.h|b.h)}\nfunction li(a,b){return Qh(a.l^b.l,a.m^b.m,a.h^b.h)}\nfunction FP(a,b,c,d){GP(a,b,c*a.b,d.width,d.height)}\nfunction VA(a,b,c){cB(c,a.b.a.length+1);LG(a.b,c,b)}\nfunction UJ(a,b){if(b[yU]!=a[yU]){throw dp(new XJ)}}\nfunction cN(a){if(a==null){throw dp(new ND)}return a}\nfunction vN(){if(qN==256){pN=rN;rN={};qN=0}++qN}\nfunction yc(a){kc(this);this.f=a;mc(this);this.fb()}\nfunction uA(a){iA();tA.call(this);this.k=a;oA(this)}\nfunction Ur(){zr.call(this);Hb(this,Vd($doc,'div'))}\nfunction fq(a){dq.call(this,new cq(null));this.a=a}\nfunction Md(b,a){return b[a]==null?null:String(b[a])}\nfunction TA(a,b){return cB(b,a.b.a.length),PG(a.b,b)}\nfunction UA(a,b){cB(b,a.b.a.length);return PG(a.b,b)}\nfunction HM(a,b){var c;c=a.slice(0,b);return Mh(c,a)}\nfunction kK(a,b){var c;c=qF(a.a,b,a);return c==null}\nfunction XC(a,b){var c;c=new VC;c.g=a;c.d=b;return c}\nfunction yE(a,b){a.a+=String.fromCharCode(b);return a}\nfunction Kh(a,b,c){$M(c==null||Ch(a,c));return a[b]=c}\nfunction yy(a,b,c,d){a.c=c;a.d=new uA(b);a.a=d;a.b=0}\nfunction eu(a,b){var c;c=a.c+b;op(c,a.a)&&(a.a=xp(c))}\nfunction $C(a,b){var c;c=XC('',a);c.j=b;c.f=1;return c}\nfunction Ds(a){var b;b=Md(a.n,zT).length;b>0&&Es(a,b)}\nfunction hh(a){fh('decodedURL',a);return encodeURI(a)}\nfunction xp(a){if(np(a)){return a|0}return a.l|a.m<<22}\nfunction Uw(a){return a.xmin>=a.xmax||a.ymin>=a.ymax}\nfunction Xd(a){return Math.round(-a.wheelDelta/40)||0}\nfunction KA(a){return a==null||a.length==0?-1:LA(a,MT)}\nfunction Vq(a,b){return Rg((!Tq&&(Tq=new ir),Tq),a,b)}\nfunction qF(a,b,c){return Fi(b)?rF(a,b,c):yK(a.d,b,c)}\nfunction af(){$e();return Lh(Dh(qj,1),gS,80,0,[Ze,Ye])}\nfunction tt(){rt();return Lh(Dh(Tk,1),gS,106,0,[qt,pt])}\nfunction Qp(){Op(this,new bq(true));Pp(this,(ZL(),QL))}\nfunction Sp(){Op(this,new bq(false));Pp(this,(ZL(),QL))}\nfunction su(){this.b=new hK;this.a=new ZA;this.d=new ZA}\nfunction yL(a){this.c=a;this.b=a.a.b.a;VJ(a.a.c,this)}\nfunction Yw(){this.xmin=this.xmax=this.ymin=this.ymax=0}\nfunction XD(a,b,c){this.a=hS;this.d=a;this.b=b;this.c=c}\nfunction Yt(a,b){a.d=Yz(new Zz,b);a.c=0;a.a=mS;return a}\nfunction fv(a){var b;b=a.a;!b&&(a.a=b=new _B);return b}\nfunction wK(a,b){var c;c=a.a.get(b);return c==null?[]:c}\nfunction LL(a,b){return Hi(a)===Hi(b)||a!=null&&wb(a,b)}\nfunction pc(a,b){a.backingJsObject=b;b!=null&&mN(b,nS,a)}\nfunction Yp(a){a.a=wM(yM(),'');a.a.d=false;$p();Zp(a.a)}\nfunction vs(a){zr.call(this);this.n=a,undefined;Qb(this)}\nfunction Ov(a,b,c){Kv();this.Xb(a);this.Yb(b);this.Zb(c)}\nfunction $z(a){Wz(this);this.a=a.a;this.c=a.c;this.b=a.b}\nfunction xA(a,b,c,d){this.c=a;this.b=b;this.d=c;this.a=d}\nfunction xr(a,b,c){Tb(b);Xs(a.f,b);Id(c,Cq(b.n));Vb(b,a)}\nfunction Lv(a,b){$v(a,b.Tb());_v(a,b.Ub());bw(a,b.Vb())}\nfunction pF(a,b){return b==null?!!xK(a.d,null):MK(a.e,b)}\nfunction rE(a){return String.fromCharCode.apply(null,a)}\nfunction PC(a){return /\\d/.test(String.fromCharCode(a))}\nfunction Cq(a){return a.__gwt_resolve?a.__gwt_resolve():a}\nfunction WH(a){TH();return Ai(a,82)?new IJ(a):new DI(a)}\nfunction Bh(){zh();return Lh(Dh(Vj,1),gS,89,0,[yh,xh,wh])}\nfunction mC(){eC();fC(this);lC(this,Hh(Ji,GT,11,0,15,1))}\nfunction KP(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d}\nfunction vt(a,b,c){this.a=a;this.d=b;this.c=null;this.b=c}\nfunction xK(a,b){return vK(a,b,wK(a,b==null?0:a.b.sc(b)))}\nfunction AH(a,b){ZM(b);return BH(a,Hh(Ji,GT,11,b,15,1),b)}\nfunction Wc(a){$wnd.setTimeout(function(){throw a},0)}\nfunction Hz(a){return dE(kS,typeof a)||a instanceof Number}\nfunction HA(a){switch(a){case 4:case 2:case 5:return;}}\nfunction EA(a){switch(a){case 1:case 2:case 3:return;}}\nfunction xi(a){iN(a==null||Gi(a)&&!(a.Jc===Lp));return a}\nfunction gv(a,b){var c,d;c=qu(a.c,b).b;d=hv(a,c);return d}\nfunction Qr(a){var b;b=a.c?Sd(a.a):a.a;return b.innerText}\nfunction qc(a,b){var c;c=UC(a.Hc);return b==null?c:c+': '+b}\nfunction oF(a,b){return b==null?$E(xK(a.d,null)):NK(a.e,b)}\nfunction bE(a,b){return aE(a.toLowerCase(),b.toLowerCase())}\nfunction fp(a,b){return hp(ai(np(a)?vp(a):a,np(b)?vp(b):b))}\nfunction sp(a,b){return hp(fi(np(a)?vp(a):a,np(b)?vp(b):b))}\nfunction yp(a,b){return hp(li(np(a)?vp(a):a,np(b)?vp(b):b))}\nfunction hN(a,b){if(a>b||a<0){throw dp(new EE(yS+a+zS+b))}}\nfunction Yr(a,b){!!a.a&&(a.n[wT]='',undefined);he(a.n,b.a)}\nfunction es(a,b){!!a.a&&(a.n[wT]='',undefined);he(a.n,b.a)}\nfunction FR(a,b){Fs(a.a.b.e,b+1+'');ps(a.a.b.d,b);rR(a.a.b)}\nfunction Ly(a){a.d=a.b=0;YA(a.a);Dy(a,null,false);YA(a.g)}\nfunction CK(a){this.e=a;this.b=this.e.a.entries();this.a=[]}\nfunction xs(){us();try{Jr(ts,rs)}finally{tF(ts.a);tF(ss)}}\nfunction Qs(){Qs=Hp;Ms=new Ts;Ns=new Us;Os=new Vs;Ps=new Ws}\nfunction we(){we=Hp;se=new ze;te=new Ae;ue=new Be;ve=new Ce}\nfunction kg(){kg=Hp;jg=new Gf(US,new mg);new Gf(VS,new mg)}\nfunction td(){td=Hp;var a,b;b=!yd();a=new Gd;sd=b?new zd:a}\nfunction Jy(a,b,c){var d;Ly(a);d=new zy;yy(d,b,c,a);return d}\nfunction Zp(a){var b,c;b=new Qp;MG(a.a,b);c=new Sp;MG(a.a,c)}\nfunction mL(a){var b;b=a.c.b.b;a.b=b;a.a=a.c.b;b.a=a.c.b.b=a}\nfunction vO(a){qO();a.xmin=a.xmax=a.ymin=a.ymax=0;Vw(a,a,nO)}\nfunction Ii(a){return Math.max(Math.min(a,mS),-2147483648)|0}\nfunction UQ(a,b){return wp(kp($wnd.Math.round((a+b/2)/b)))*b}\nfunction UE(a,b){return b===a?'(this Map)':b==null?rS:Kp(b)}\nfunction rF(a,b,c){return b==null?yK(a.d,null,c):OK(a.e,b,c)}\nfunction VG(a,b,c){var d;fN(b,c,a.a.length);d=c-b;LM(a.a,b,d)}\nfunction fu(a,b){var c;c=a.d.Ob(b);a.c=xp(ep(a.c,c));return c}\nfunction ZO(a,b){var c;c=vi(PG(a.i,b),51);return c.b?c.d:null}\nfunction aD(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.kc(b))}\nfunction PN(a,b){ON.call(this,'context-init',a);this.data2=b}\nfunction rc(a,b){kc(this);this.e=b;this.f=a;mc(this);this.fb()}\nfunction lh(a,b){if(a==null||a.length==0){throw dp(new qD(b))}}\nfunction qu(a,b){return b=a.n.options.length){throw dp(new CC)}}\nfunction uQ(a){if(!a.o)return;gQ(a,(null.Kc()-a.p*2)/a.o.width)}\nfunction YJ(a,b){return HD(kp(a.a.getTime()),kp(b.a.getTime()))}\nfunction YF(a,b){this.a=a;UF.call(this,a);eN(b,a.size());this.b=b}\nfunction aG(a,b,c){fN(b,c,a.size());this.c=a;this.a=b;this.b=c-b}\nfunction TF(a){gN(a.c!=-1);a.d.removeAtIndex(a.c);a.b=a.c;a.c=-1}\nfunction Ct(a){a.c=Hh(al,IT,29,300,0,1);a.g=Hh(Ji,GT,11,1,15,1)}\nfunction PQ(a,b){var c;c=WN(a.a.d,b);aR(OQ(a,b),c.width,c.height)}\nfunction kQ(a,b,c){var d;kR(b.j,c.a);d=JD(0,KD(c.a-1,a.n));qQ(a,d)}\nfunction CM(a,b,c){var d;ZL();d=new AM(b);d.d=c;zM(d,a.b);BM(a,d)}\nfunction kE(a,b,c){c=uE(c);return a.replace(new RegExp(b,'g'),c)}\nfunction GF(a,b){if(Ai(b,22)){return SE(a.a,vi(b,22))}return false}\nfunction qL(a,b){if(Ai(b,22)){return SE(a.a,vi(b,22))}return false}\nfunction fh(a,b){if(null==b){throw dp(new PD(a+' cannot be null'))}}\nfunction iq(a){if(a==null){throw dp(new PD('uri is null'))}this.a=a}\nfunction ZM(a){if(a<0){throw dp(new MD('Negative array size: '+a))}}\nfunction IA(a){switch(a){case -4:case -3:case -2:case -1:return;}}\nfunction tc(b){if(!('stack' in b)){try{throw b}catch(a){}}return b}\nfunction jC(a,b){var c;c=Wt(b);if(c){return kC(a,c)}hC(a,b);return a}\nfunction _s(a,b){var c;c=Ys(a,b);if(c==-1){throw dp(new JL)}$s(a,c)}\nfunction rJ(a,b){var c;for(c=0;c>8]:a.j[255&b]+8}\nfunction sF(a,b){return Fi(b)?b==null?zK(a.d,null):PK(a.e,b):zK(a.d,b)}\nfunction Kq(a){if(!a.d){return}++a.b;a.c?Nq(a.d.a):Oq(a.d.a);a.d=null}\nfunction NL(a,b){!a.a?(a.a=new DE(a.d)):BE(a.a,a.b);AE(a.a,b);return a}\nfunction WG(a,b,c){var d;d=(bN(b,a.a.length),a.a[b]);a.a[b]=c;return d}\nfunction SG(a,b,c){for(;c>=0;--c){if(LL(b,a.a[c])){return c}}return -1}\nfunction ny(a,b,c){var d;Mt(a.e,b[c]);d=nA(a.d,a.e);b[c]=a.e.a;return d}\nfunction TG(a,b){var c;c=(bN(b,a.a.length),a.a[b]);LM(a.a,b,1);return c}\nfunction Oh(a){var b,c,d;b=a&$S;c=a>>22&$S;d=a<0?_S:0;return Qh(b,c,d)}\nfunction jh(a){var b=/%20/g;return encodeURIComponent(a).replace(b,'+')}\n", +"function Lc(){if(Date.now){return Date.now()}return (new Date).getTime()}\nfunction Tc(b){Qc();return function(){return Uc(b,this,arguments);var a}}\nfunction SK(a){this.d=a;this.b=this.d.a.entries();this.a=this.b.next()}\nfunction zR(a){this.a=a;sR.call(this,'buttonPagePrev','buttonPageNext')}\nfunction mc(a){if(a.k){a.backingJsObject!==oS&&a.fb();a.i=null}return a}\nfunction fx(a){var b;if(!dx(a)){throw dp(new KL)}b=a.d;a.d=null;return b}\nfunction Td(a){var b=a.parentNode;(!b||b.nodeType!=1)&&(b=null);return b}\nfunction gh(a){var b=/\\+/g;return decodeURIComponent(a.replace(b,'%20'))}\nfunction Wp(){var a;Yp(Up);if(!ic){a=FM((TC(_j),_j.k));jc(new Xp(a))}}\nfunction Mp(){$wnd.setTimeout(cS(it));Eq();Vp();Wp();BO(new EO)}\nfunction oQ(a){if(!a.j)return;!a.k&&(a.k=new xQ(a));Kq(a.k);Lq(a.k,500)}\nfunction MM(){if(Date.now){return Date.now()}return (new Date).getTime()}\nfunction _G(a){KG(this);XM(a>=0,'Initial capacity must not be negative')}\nfunction is(){gs.call(this,Vd($doc,'div'));this.n.className='gwt-Label'}\nfunction OL(a,b){this.b=', ';this.d=a;this.e=b;this.c=this.d+(''+this.e)}\nfunction Zw(a,b,c,d){this.xmin=a;this.ymin=b;this.xmax=a+c;this.ymax=b+d}\nfunction hx(){cx();this.a=Hh(Ji,GT,11,4,15,1);this.b=Hh(Ji,GT,11,4,15,1)}\nfunction xO(a,b){qO();if(!Qw(nO,a)||mO!=b){Pw(nO);Vw(nO,nO,a);mO=b;sO()}}\nfunction JH(a,b,c){var d;d=(bN(b,a.a.length),a.a[b]);Kh(a.a,b,c);return d}\nfunction XO(a,b){var c;c=vi(oF(a.d,b),69);!c&&rF(a.d,b,c=new iP);return c}\nfunction $t(a){var b;if(a.c>=a.a)return -1;b=a.d.Lb();b>=0&&++a.c;return b}\nfunction xL(a){UJ(a.c.a.c,a);aN(a.b!=a.c.a.b);a.a=a.b;a.b=a.b.a;return a.a}\nfunction _N(a,b){var c,d;for(d=b.Db();d.Gb();){c=vi(d.Hb(),41);sF(a.o,c)}}\nfunction Vc(a){a&&bd((_c(),$c));--Mc;if(a){if(Pc!=-1){Yc(Pc);Pc=-1}}}\nfunction de(a,b){a.currentStyle.direction=='rtl'&&(b=-b);a.scrollLeft=b}\nfunction Dr(a){a.style['left']='';a.style['top']='';a.style['position']=''}\nfunction CO(){!cc&&(cc=new dc);throw dp(new Ac('Canvas not supported!'))}\nfunction eN(a,b){if(a<0||a>b){throw dp(new DC('Index: '+a+', Size: '+b))}}\nfunction bN(a,b){if(a<0||a>=b){throw dp(new DC('Index: '+a+', Size: '+b))}}\nfunction $N(a,b){if(kT==kr(b.type)){null.Kc().Kc();Jd((us(),ys(null)).n,a)}}\nfunction sP(a,b){if(b.b==12)return vi(nF(a.g,b),70);return vi(nF(a.a,b),70)}\nfunction fR(a){a.c.c==null&&(a.c.c=dR(a.n));null.Kc();return null.Kc().Kc()}\nfunction Yq(){var a;if(Sq){a=new _q;!!Tq&&Sg(Tq,a);return null}return null}\nfunction yM(){var a;if(!uM){uM=new xM;a=new EM('');ZL();vM(uM,a)}return uM}\nfunction Ys(a,b){var c;for(c=0;c=0?a.e[b*qv+3]:0;return (c*(a.a-1)+(a.a-2))/255|0}\nfunction cL(a,b){var c;c=vi(sF(a.c,b),73);if(c){nL(c);return c.e}return null}\nfunction rp(a){var b;if(np(a)){b=0-a;if(!isNaN(b)){return b}}return hp(ei(a))}\nfunction au(a){var b,c;c=$t(a);if(c<0){return c}b=$t(a);return b>=0?c<<8|b:-1}\nfunction bu(a){var b,c;c=au(a);if(c<0){return c}b=$t(a);return b>=0?c<<8|b:-1}\nfunction du(a,b){var c,d;c=cu(Vt(a,b));d=a.d.Ob(b);a.c=xp(ep(a.c,d));return c}\nfunction Yz(a,b){a.a=YO(Vz,b,null);!a.a&&YO(Vz,b,new eA(a,b));a.c=0;return a}\nfunction rv(a,b,c){a.e=wq(b*c*qv);a.f=a.e.buffer;a.dataWidth=b;a.dataHeight=c}\nfunction iR(a){var b;b=a.b.d.n.selectedIndex;!!a.a&&qQ(a.a,b);a.b.d.n.blur()}\nfunction ct(a){if(a.b>=a.c.c){throw dp(new JL)}a.a=a.c.a[a.b];++a.b;return a.a}\nfunction WK(a){if(a.a.d!=a.c){return NK(a.a,a.b.value[0])}return a.b.value[1]}\nfunction QG(a,b,c){for(;c0?(cE(a,0,a.length,(QM(),PM))+eU).substr(0,4):eU}\nfunction Eh(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$}\nfunction $p(){var a,b;b=hr('logLevel');a=b==null?null:_L(b);if(a);else{ZL()}}\nfunction gC(a){var b,c;c=wq(a.length);for(b=0;b0&&(a.i.n=true);KO(a.i.a,a.e,b)}\nfunction ki(a){if(bi(a,(qi(),pi))<0){return -Zh(ei(a))}return a.l+a.m*bT+a.h*cT}\nfunction qi(){qi=Hp;mi=Qh($S,$S,524287);ni=Qh(0,0,aT);oi=Oh(1);Oh(2);pi=Oh(0)}\nfunction zh(){zh=Hp;yh=new Ah('RTL',0);xh=new Ah('LTR',1);wh=new Ah('DEFAULT',2)}\nfunction QM(){QM=Hp;PM=new UM;OM=new SM('ISO-LATIN-1');NM=new SM('ISO-8859-1')}\nfunction Wt(a){var b;b=null;(a.b==null||a.b.length!=4)&&(b=ex(new hx,a));return b}\nfunction Sd(a){var b=a.firstChild;while(b&&b.nodeType!=1)b=b.nextSibling;return b}\nfunction FB(a){switch(a){case 1:case 2:case 3:case 4:case 5:case 6:return;}}\nfunction qs(){ac.call(this,Vd($doc,'select'));this.n.className='gwt-ListBox'}\nfunction Ks(){var a;Js();Ls.call(this,(a=$doc.createElement('INPUT'),a.type=AT,a))}\nfunction sO(){var a,b;for(b=new uH(pO);b.a=a.border||b=14&&b<=16)));return a}\nfunction BP(a){var b;b=Ii($wnd.Math.floor(1/a));b=1>(12>24}\nfunction MB(a,b,c){var d;d=Lh(Dh(Li,1),KT,11,15,[b,c]);SA(a.d,d);return a.d.b.a.length}\nfunction Gt(a,b){var c;a.i=qA(new tA,b);for(c=0;c>24}}\nfunction rt(){rt=Hp;qt=new st('Default',0,'');pt=new st('ArrayBuffer',1,'arraybuffer')}\nfunction px(){mx();this.c=new Int16Array(nT);this.b=new Int8Array(64);this.a=new rx(this)}\nfunction dL(){tF(this);this.b=new oL(this);this.c=new hK;this.b.b=this.b;this.b.a=this.b}\nfunction cw(a,b){Kv();Nv.call(this);this.d=a;this.c=b*qv;this.a=a.d;this.b=a.g;this.e=a.o}\nfunction Ub(a,b){a.g&&(a.n.__listener=null,undefined);!!a.n&&Gb(a.n,b);a.n=b;a.g&&nr(a.n,a)}\nfunction GA(a,b){b=qE(b);if(b.length==0){a.a=null}else if(!dE(b,a.a)){a.a=b;CA(new xB(a.a))}}\nfunction yC(a,b){var c;c=a.a.length;bc&&(a.a+=vE(Hh(Ki,GT,11,b-c,15,1)))}\nfunction HP(a,b,c,d){var e,f;f=(d.width+a.b-1)/a.b|0;e=(d.height+a.b-1)/a.b|0;GP(a,b,c,f,e)}\nfunction Et(a,b,c){var d,e,f;f=1;e=1<>22);e=a.h+b.h+(d>>22);return Qh(c&$S,d&$S,e&_S)}\nfunction ji(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return Qh(c&$S,d&$S,e&_S)}\nfunction fz(a,b){var c,d;for(c=0,d=a.size();cb){return 1}if(a==b){return 0}return isNaN(a)?isNaN(b)?0:1:-1}\nfunction NC(a){if(dE(typeof a,lS)){return true}return a!=null&&a.$implements__java_lang_CharSequence}\nfunction Lh(a,b,c,d,e){e.Hc=a;e.Ic=b;e.Jc=Lp;e.__elementTypeId$=c;e.__elementTypeCategory$=d;return e}\nfunction Zv(a,b,c,d){a.d.e[a.c+a.a]=b<<24>>24;a.d.e[a.c+a.b]=c<<24>>24;a.d.e[a.c+a.e]=d<<24>>24}\nfunction fQ(a,b,c,d){if(b>=0&&b0&&(a.c=mS);d<0?(a.d=0):d>0&&(a.d=mS);qQ(a,b)}}\nfunction ky(a,b,c){var d;d=a.T.b.a.length;if(d<=b){while(d++a){throw dp(new qD('fromIndex: 0 > toIndex: '+a))}if(a>b){throw dp(new FC(yS+a+zS+b))}}\nfunction Dv(a,b){if(b<2||b>256){throw dp(new qD('(GBitmap::set_grays) Illegal number of gray levels'))}a.a=b}\nfunction St(a,b,c){if(0>b.length||c<0||c-b.length>0){throw dp(new CC)}Qt(a,a.b+c);HE(b,0,a.a,a.b,c);a.b+=c}\nfunction Th(a,b,c,d,e){var f;f=hi(a,b);c&&Wh(f);if(e){a=Vh(a,b);d?(Nh=ei(a)):(Nh=Qh(a.l,a.m,a.h))}return f}\nfunction _t(a,b){var c;if(b.length==0)return 0;c=a.d.Mb(b);c=KD(c,a.a-a.c);if(c>0){a.c+=c;return c}return -1}\nfunction wE(a,b){var c,d,e;hN(b,a.length);e='';for(d=0;d=0&&(a.n.style[nU]=b+'px',undefined);c>=0&&(a.n.style[SU]=c+'px',undefined)}\nfunction $s(a,b){var c;if(b<0||b>=a.c){throw dp(new CC)}--a.c;for(c=b;c0.999&&b<1.001){return}c=zw(b);for(d=0;d>24}}\nfunction ED(a){var b,c;if(a>-129&&a<128){b=a+128;c=(GD(),FD)[b];!c&&(c=FD[b]=new uD(a));return c}return new uD(a)}\nfunction By(a){var b,c,d;d=0;for(c=new uH(a.g.b);c.a=a.f){c=vi(TA(a.g,b-a.f),71)}else if(a.e){c=Cy(a.e,b)}else{throw dp(new sD(iU))}return c}\nfunction Ev(a,b){var c;if(a.border>>0).toString(16)}return a.toString()}\nfunction Pr(){Or.call(this,$doc.createElement(\"