71#jnlp/sample/servlet/JnlpFileHandlerjava/lang/ObjectJNLP_MIME_TYPELjava/lang/String; ConstantValue application/x-java-jnlp-fileHEADER_LASTMOD  Last-Modified_servletContextLjavax/servlet/ServletContext;_logLorg/slf4j/Logger; _jnlpFilesLjava/util/HashMap;applicationManager>Lcom/dexels/navajo/tipi/dev/server/appmanager/AppStoreManager;q(Ljavax/servlet/ServletContext;Lorg/slf4j/Logger;Lcom/dexels/navajo/tipi/dev/server/appmanager/AppStoreManager;)VCode  ()V      "java/util/HashMap ! % LineNumberTableLocalVariableTablethis%Ljnlp/sample/servlet/JnlpFileHandler;servletContextlog getJnlpFileo(Ljnlp/sample/servlet/JnlpResource;Ljnlp/sample/servlet/DownloadRequest;)Ljnlp/sample/servlet/DownloadResponse; Exceptions0java/io/IOException 243 jnlp/sample/servlet/JnlpResource 56getPath()Ljava/lang/String; 28 9: getResource()Ljava/net/URL; 2< =>getLastModified()J@java/lang/StringBuilderBlastModified: ?D E(Ljava/lang/String;)V ?G HIappend(J)Ljava/lang/StringBuilder;K ?M HN-(Ljava/lang/String;)Ljava/lang/StringBuilder;Pjava/util/Date OR S(J)V ?U HV-(Ljava/lang/Object;)Ljava/lang/StringBuilder; ?X Y6toString []\org/slf4j/Logger ^Edebug`"servlet.log.warning.nolastmodified [b cdwarn'(Ljava/lang/String;Ljava/lang/Object;)V fhg#jnlp/sample/servlet/DownloadRequest ijgetHttpRequest)()Ljavax/servlet/http/HttpServletRequest; lnmjavax/servlet/http/HttpUtils op getRequestURLA(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/StringBuffer; rXsjava/lang/StringBuffer !u vwget&(Ljava/lang/Object;)Ljava/lang/Object;y1jnlp/sample/servlet/JnlpFileHandler$JnlpFileEntry x< x| }~ getResponse(()Ljnlp/sample/servlet/DownloadResponse;resourceResolver javax/servlet/ServletContext  getAttribute&(Ljava/lang/String;)Ljava/lang/Object;$jnlp/sample/servlet/ResourceResolver  getMimeType&(Ljava/lang/String;)Ljava/lang/String; r  java/net/URL openConnection()Ljava/net/URLConnection;java/io/BufferedReaderjava/io/InputStreamReader java/net/URLConnection getInputStream()Ljava/io/InputStream;UTF-8 *(Ljava/io/InputStream;Ljava/lang/String;)V (Ljava/io/Reader;)V 6readLineTS: java/lang/String  startsWith(Ljava/lang/String;)Z  substring(I)Ljava/lang/String;  parseTimeStamp(Ljava/lang/String;)J Timestamp: servlet.log.warning.notimestamp r H,(Ljava/lang/String;)Ljava/lang/StringBuffer;  specializeJnlpTemplate_(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; getBytes(Ljava/lang/String;)[B 2 6getReturnVersionId $jnlp/sample/servlet/DownloadResponse getFileDownloadResponseO([BLjava/lang/String;JLjava/lang/String;)Ljnlp/sample/servlet/DownloadResponse; x *(Ljnlp/sample/servlet/DownloadResponse;J)V ! put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;jnlpres"Ljnlp/sample/servlet/JnlpResource;dreq%Ljnlp/sample/servlet/DownloadRequest;pathresourceLjava/net/URL; lastModifiedJreqUrljnlpFile3Ljnlp/sample/servlet/JnlpFileHandler$JnlpFileEntry; timeStampmimeTypejnlpFileTemplateLjava/lang/StringBuffer;connLjava/net/URLConnection;brLjava/io/BufferedReader;linejnlpFileContent byteContent[Bresp&Ljnlp/sample/servlet/DownloadResponse; StackMapTable getJnlpFileEx f 6getQuery valueOf&(Ljava/lang/Object;)Ljava/lang/String; f 6 getTestJREDouble check query string: java/io/ByteArrayInputStream  ([B)V (javax/xml/parsers/DocumentBuilderFactory    newInstance,()Ljavax/xml/parsers/DocumentBuilderFactory;   newDocumentBuilder%()Ljavax/xml/parsers/DocumentBuilder; !javax/xml/parsers/DocumentBuilder parse-(Ljava/io/InputStream;)Lorg/w3c/dom/Document; org/w3c/dom/Document  getNodeType()S  getDocumentElement()Lorg/w3c/dom/Element; href "$#org/w3c/dom/Element % hasAttribute "' )? "+ ,- setAttribute'(Ljava/lang/String;Ljava/lang/String;)V/j2se "1 23getElementsByTagName*(Ljava/lang/String;)Lorg/w3c/dom/NodeList; 576org/w3c/dom/NodeList 89item(I)Lorg/w3c/dom/Node;;version = >?length()I ACB&javax/xml/transform/TransformerFactory  D*()Ljavax/xml/transform/TransformerFactory; AF GHnewTransformer#()Ljavax/xml/transform/Transformer;J!javax/xml/transform/dom/DOMSource IL M(Lorg/w3c/dom/Node;)VOjava/io/StringWriter NR'javax/xml/transform/stream/StreamResult QT U(Ljava/io/Writer;)V WYXjavax/xml/transform/Transformer Z[ transform;(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V NX^Converted jnlpFileContent: O Oa b>getTimedLast modified on the fly: fXgjava/lang/Exception [i ^j*(Ljava/lang/String;Ljava/lang/Throwable;)VquerytestJREcbbisLjava/io/ByteArrayInputStream;factory*Ljavax/xml/parsers/DocumentBuilderFactory;builder#Ljavax/xml/parsers/DocumentBuilder;documentLorg/w3c/dom/Document;modifiedZrootLorg/w3c/dom/Element;j2seNLLorg/w3c/dom/NodeList;vertFactory(Ljavax/xml/transform/TransformerFactory; transformer!Ljavax/xml/transform/Transformer;source#Ljavax/xml/transform/dom/DOMSource;swLjava/io/StringWriter;result)Ljavax/xml/transform/stream/StreamResult;eLjava/lang/Exception;   getUrlPrefix;(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;   lastIndexOf(I)I  (II)Ljava/lang/String;  charAt(I)C$$name   substituteJ(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; $$hostname %javax/servlet/http/HttpServletRequest 6 getServerName $$codebase  6getContextPath $$context$$siterequest'Ljavax/servlet/http/HttpServletRequest;respath jnlpTemplate urlprefixidxInamecodebase  6 getScheme  ? getServerPort://http  equals(Ljava/lang/Object;)Zhttps r H(C)Ljava/lang/StringBuffer; r H(I)Ljava/lang/StringBuffer;requrlschemeport  indexOf(Ljava/lang/String;I)Itargetkeyvaluestart  6trim####-##-## ##:##   matchPattern'(Ljava/lang/String;Ljava/lang/String;)Z   getIntValue(Ljava/lang/String;II)I:## ##############w  equalsIgnoreCaseGMT+- java/util/Calendar  getInstance()Ljava/util/Calendar;  set (IIIIII)V  b()Ljava/util/Date; java/util/TimeZone   getTimeZone((Ljava/lang/String;)Ljava/util/TimeZone;   *(Ljava/util/TimeZone;)Ljava/util/Calendar;java/lang/NumberFormatException timestampYYYYMMDDhhmmss!Ljava/lang/NumberFormatException;timezonecalLjava/util/Calendar; java/lang/Integer parseInt(Ljava/lang/String;)Iend "$#java/lang/Character %&isDigit(C)ZpatterniformatCch SourceFileJnlpFileHandler.java InnerClasses JnlpFileEntry NestMembers!    )****+*,*!Y#*-$&"UO PVWX#Y(Z'*)())*)+)!,-./f+1N+7:+;7*?YACFJLOYQTWZ *_-a,ekq:*tx:z {7 *-:  : rY: : YY ::tj*7 *?YC FJLOY QTWZ *-a7 : W:*,e- q::  +ȸ:xY:*W&0tu vx(y7x<zC{OVY[iy)-47?FKPV[dns'() ~[4i&  [4d+sKO/x"2fxr !-./<+1N+7:+;7*?YACFJLOYQTWZ *_-a,ekq:,?YC,LW:*tx:z {7 *-:  : rY: : YY ::tj*7 *?YC FJLOY QTWZ *-a7 : W:*,e- q:,:,:*?YCLWZf:Y:: ::8 ,6:!6&:?YC(LLW*6D.0:34"::&:<:*6@:E:IYK:NYP:QYS:V\:*?Y]CLWZ?OY_`7 *?YcC FWZ:*eh:  +ȸ:xY:*Wf&r\ (7<COVY[bz 5<HLSV^ejouz  ( +0<ANZbnqtv} !"!%&'*+043 5-698'j$<()<<7 1+[  r k TMzklZmOno5pq.rs%tuvwxy' <5z{N#/yZ|v}}~}vkbW+  O*#x"2fxr 2fxr"E2fxrf*+:,/6,`:,`:<d:<d/*-N*-+N*-?YC+LLWN*-?YC+LWN*-N-&NABCD$E'F6EGHRJWK]JaPrQPRSRUV'R()$ 'jrYM+N+6,-W,W,+W-™ P-ƶ™,:W,+W,q&. [\]^_%`0aAbScZdef'4j()jb[SArG6+,6+?Y+C-L+,<`LWL-<`6&& jl mno)p7o;qDr'>G()GGGD 8  f=>6666+L*+ߙY*+=*+>*+ 6*+  6*+6+L*+ߙ|*+6+Lj*+ߙY*+=*+>*+6*+ 6*+  6+ L*+ߙ*+6+L : :+L+ :*+ +?YC+LW:":  d ` :  d ` &,   (1<GRYdms #(9BL]'z f()fdb_ \ YV( L &v`A #R +&'* ()    E,<+<>,+6,6# ! +<&&    68C'>E()E'E4()* +* ,-. x/ 0x