PK BKT1ccontent/venkman/ff/contents.rdf PK BKT1 Qcontent/venkman/sm/contents.rdf chrome://communicator/content/utilityOverlay.xul chrome://communicator/content/tasksOverlay.xul PK Wg3l4 skin/modern/venkman/contents.rdf chrome://venkman/skin/venkman-overlay.css PK Wg3S= = content/venkman/venkman.xul PK y0_H&H&!content/venkman/venkman-views.xul PK Wg3[ #content/venkman/venkman-floater.xul

venkman test content page

Choose your poison...



PK y0ᒊGGcontent/venkman/tests/tree.js/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert Ginda, , original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ var sampleTree = new XULTreeView(); function SampleRecord (name, gender) { this.setColumnPropertyName ("sample-name", "name"); this.setColumnPropertyName ("sample-gender", "gender"); this.name = name; this.gender = gender; } SampleRecord.prototype = new XULTreeViewRecord(sampleTree.share); sampleTree.childData.appendChild (new SampleRecord ("vinnie", "male")); var betty = new SampleRecord ("betty", "female"); betty.reserveChildren(); betty.open() betty.appendChild (new SampleRecord ("kid1", "male")); var kid2 = new SampleRecord ("kid2", "male"); kid2.reserveChildren(); var kid22 = new SampleRecord ("kid22", "female"); kid2.appendChild (kid22); betty.appendChild (kid2); sampleTree.childData.appendChild (betty); sampleTree.childData.appendChild (new SampleRecord ("joey", "male")); function onload () { var tree = document.getElementById("sample-tree"); tree.treeBoxObject.view = sampleTree; dt(); // debugger; } function toggleBetty () { if (betty.isHidden) betty.unHide(); else betty.hide(); } function formatRecord (rec, indent) { var str = ""; for (var i in rec._colValues) str += rec._colValues[i] + ", "; str += "["; str += rec.calculateVisualRow() + ", "; str += rec.childIndex + ", "; str += rec.level + ", "; str += rec.visualFootprint + ", "; str += rec.isHidden + "]"; dd (indent + str); } function formatBranch (rec, indent) { for (var i = 0; i < rec.childData.length; ++i) { formatRecord (rec.childData[i], indent); if ("childData" in rec.childData[i]) formatBranch(rec.childData[i], indent + " "); } } function nativeFrameTest() { function compare(a, b) { if (a > b) return 1; if (a < b) return -1; return 0; }; var ary = [2, 1]; ary.sort(compare); } function dbg() { var a = 0; dbg2(); nativeFrameTest(); var c = 0; } function dbg2() { dd("dbg2"); var nothere; var nope = null; var f = false; var i = 4; //@JSD_BREAK var d = Number.MAX_VALUE; var s = "hello world"; var fun = dbg; //@JSD_BREAK s == "hello world" var obj = new Object(); debugger; try { guessThis(); throwSomething(); } catch (ex) { dd ("caught " + ex); } //@JSD_EVAL alert("foo"); var rv = returnSomething(); //@JSD_LOG "this is a log message"; dd ("returned " + rv); } function throwSomething() { var str = "this is a test"; var obj = { message: "this is only a test" }; throw "momma from the train"; } function returnSomething() { var str = "this is a test"; var obj = { message: "this is only a test" }; return "your library books on time!"; } function dt() { formatBranch(sampleTree.childData, ""); } var guessThis = function () { var x = 1; switchTest(); observer.onFoo(); } var observer = { onFoo: function (){ returnSomething(); } } function switchTest () { var x = 1; switch (x) { case 1: ++x; break; case 2: --x; break; default: x += 3; break; } } PK ǎ,ګe{IIcontent/venkman/tests/tree.xul

Welcome to the Venkman Help System. From here you can search for help on the various commands available in Venkman. To search for a particular command, type your search term in the box below and click Go, or press Enter.

Additional help can be found on the Venkman Homepage or the Venkman FAQ. The check boxes control which fields the search is performed on…

  • Command Names matches the command name, as you might enter it in the Interactive Session.
  • User Interface Labels matches the label used when the command appears in a menu or toolbar button.
  • Descriptions matches the body of the help text.

Search:

[ Interactive Session Commands | All Commands | A-C | D-F | G-I | J-L | M-O | P-R | S-U | V-Z ]

Found $match-count matching command(s). @-header-end Command Name: $command-name
User Interface Label: $ui-label

Usage: $command-name $params

Accelerator Key: $key

Description:
$desc Back To Top

@-command-end No commands found @-nomatch-end
PK F3<˙$locale/en-US/venkman/profile.csv.tpl# full-url, file-name, function-name, start-line, end-line, call-count, recurse-depth, total-time, min-time, max-time, avg-time, own-total-time, own-min-time, own-max-time, own-avg-time @-item-start $full-url, $file-name, $function-name, $start-line, $end-line, $call-count, $recurse-depth, $total-time, $min-time, $max-time, $avg-time, $own-total-time, $own-min-time, $own-max-time, $own-avg-time @-item-end PK F3,$locale/en-US/venkman/profile.txt.tpl Venkman Profile Report Created .......... $full-date User Agent ....... $user-agent Debugger Version . $venkman-agent Sorted By ........ $sort-key ================================================================================= @-section-start $section-number <$full-url> @-range-start $file-name: $range-min - $range-max milliseconds @-item-start Function Name: $function-name (Lines $start-line - $end-line) Total Calls: $call-count (max recurse $recurse-depth) Total Time: $total-time (min/max/avg $min-time/$max-time/$avg-time) Time (ex. calls): $own-total-time (min/max/avg $own-min-time/$own-max-time/$own-avg-time) @-item-end ------------------------------------------------------------------------------- @-range-end ================================================================================= @-section-end Thanks for using Venkman, the Mozilla JavaScript Debugger. PK -πD %locale/en-US/venkman/profile.html.tpl JavaScript Profile Data

JavaScript Profile Data

Collection Date: $full-date
User Agent: $user-agent
JavaScript Debugger Version: $venkman-agent
Sorted By: $sort-key
@-section-start

$section-link

@-range-start

$range-min - $range-max ms

[ Previous File | Next File | Previous Range | Next Range ] @-item-start $item-number $item-name
$item-summary
@-item-end
@-range-end
@-section-end
No job is too big, no fee is too big. PK F3#$locale/en-US/venkman/profile.xml.tpl @-section-start
@-range-start @-item-start @-item-end @-range-end
@-section-end
PK Î,W 8*content/venkman/venkman-output-window.html
PK y0=Z  'content/venkman/venkman-output-base.css/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert Ginda, , original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ @import url(chrome://venkman/locale/venkman-output-locale.css); a.venkman-link { text-decoration: none; } a.venkman-link:hover { text-decoration: underline; } #output-table { width: 100%; } .msg { /* .msg = a single message in the */ width: 100%; /* output window */ font: 11pt lucida, sans-serif; white-space: -moz-pre-wrap; } .msg[monospace] { font-family: monospace; } .msg-data[msg-type="USAGE"] { font-weight: bold; font-style: italic; } .msg-data[msg-type="STEP"] { font-weight: bold; } .msg-data:before { margin-right: 5px; content: "-"; font-weight: bold; } .msg-data[msg-type="ATTENTION"] { font-size: 150%; font-weight: bold; } .msg-data[msg-type="ERROR"]:before { content: "!!"; } .msg-data[msg-type="STOP"]:before, .msg-data[msg-type="CONT"]:before { content: "*"; } .msg-data[msg-type="USAGE"]:before { font-style: normal; } .msg-data[msg-type="SOURCE"]:before { padding-right: 20px; content: ":"; } .msg-data[msg-type="STEP"]:before { padding-right: 20px; content: "|"; } .msg-data[msg-type="EVAL-IN"]:before { font-weight: normal; content: "<<"; } .msg-data[msg-type="EVAL-OUT"]:before { font-weight: normal; content: ">>"; } .msg-data[msg-type="FEVAL-IN"]:before { font-weight: normal; content: "<"; } .msg-data[msg-type="FEVAL-OUT"]:before { font-weight: normal; content: ">"; } PK BKT1$o/'skin/modern/venkman/venkman-overlay.css/* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is ChatZilla. * * The Initial Developer of the Original Code is James Ross. * * Contributor(s): * James Ross * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #tb-venkman-open { list-style-image: url("chrome://venkman/skin/images/step-into.png"); } toolbar[iconsize="small"] #tb-venkman-open { list-style-image: url("chrome://venkman/skin/images/file-js-bp.png"); } PK ̎,6$skin/modern/venkman/images/clear.pngPNG  IHDRagAMA abKGD pHYs  d_tIME  (>IDATxc`򀑐Qa(ekȚ Aw&.i" i"^ d 0ٹ0~0NY9lM1 -aiCfy"OTz&O[&[S8뉱udL 3ߝ$IENDB`PK ͎, %skin/modern/venkman/images/shaded.pngPNG  IHDRagAMA abKGDKIksKܸ pHYs  d_tIME .HIDATxc̶g0QyԀQF LN!^I6-IENDB`PK .88&skin/modern/venkman/images/new-tab.pngPNG  IHDRabKGD pHYs  #utIME80IDATxݒ10 E_ǀ 1UJ "b. H=D9hQʄꆄ%Ϛ,gs`,O`ԃ`6&Dzxv>=udv@+ѯǿ8;A:m>*&yHzK(rjVc*AmT q@>R dou]Q{5$9IENDB`PK ˎ,gE??)skin/modern/venkman/images/arrow-left.pngPNG  IHDRagAMA abKGD pHYs  d_tIME4w.tIDATxݏ P'B0)=aqmMwK-m`(a~cL}rکh4K$DQT5IV v GCIR 8ߟ/UFt*|sfy -J &YsC MK t-Ǹ .$2IENDB`PK ̎,/@DD*skin/modern/venkman/images/arrow-right.pngPNG  IHDRagAMA abKGD pHYs  d_tIME4W IDATxՑ PS-zA E8W7AnA5:8 I$]iC 8~{DӃkkY5ۍZ{J`q 41v4TZ:501p Em6]u3R[M@-^70 K*NRoZ-A8nn. @-jV5:{U6k5DIENDB`PK ̎,??'skin/modern/venkman/images/arrow-up.pngPNG  IHDRagAMA abKGD pHYs  d_tIME4-Q0IDATxݐ= @x jO!m b+ۥMB0M6,3v7o~Rϲl^sX+'I29x:NgAq2 i@}wnڞ@chdGF+Vˏ _NcBi7' %9񌦕IENDB`PK ˎ,n>>)skin/modern/venkman/images/arrow-down.pngPNG  IHDRagAMA abKGD pHYs  d_tIME327$oIDATxՏ1 0E_7Pݬ X$fbYSZ^5h0IENDB`PK ώ,*)).skin/modern/venkman/images/view-pop-button.pngPNG  IHDRagAMA abKGD pHYs  d_tIME ; ,IDATx 0 F#` n&] @ L`@KCDC}ؖ?q8J/99B;z75p~4ld X)Z8Ue {[v۬=,鉙af'&""c\_Ѷ-Ea^rVPSM3IENDB`PK ώ,0skin/modern/venkman/images/view-close-button.pngPNG  IHDRagAMA abKGDKIksKܸ pHYs  d_tIME :.^,IDATxc`4Xq !Ī%%sa@f Ir^IENDB`PK [!+"#skin/modern/venkman/images/stop.pngPNG  IHDR szzgAMA abKGD pHYs  ~tIME0LJAIDATxMHaFm. 1IAAuB%NAQT}(B0)/a"T8< |o%-6b(7&& uy{V`uD.يrdFhH-6 "%|f 03CТˉFF;}# L&zH<@% +CwBvR<´,,N-ZYi$o~.ڃA#>\a3|>pgvI4:~;Y~-IENDB`PK [!++skin/modern/venkman/images/stop-checked.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME,M RkIDATxOH\W2NxH"LpiEynZP7]i !Y!d*$a]x.]If0b"Z 8.<;M7|0sϜwcG'@.}n)}',Rwxs'IQ4Q4TU1mE=6e@|.ǥT Bii hM*`0:ebiنϟ$&a>#NN&%UM^GD WRD_:MQw@{\[]x \4^v{-9@O,7Lömm|s @cƫ;w#&E1Nmu+<܄C'fߋIPM0 WDG&j{9N8xtgrΝB!rk++X[:`b5͵,[[.j+W21Z©3w@ u}gIENDB`PK [!+⸍33/skin/modern/venkman/images/stop-checked-hov.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME -IDATx]LSi Cš -X Beՙ c&5̄$l21'z3bL2x5dlP/ZZXiQQA@]}朞"b O8 `HV`=8E9TH!i5Fʁ\=[491p"b @5 BsB='YG" (^9 0ґ0xnkknmmrssm 0Tggg=uӹDzu $$-|gֶ敛&^.kl h|ZTgf,*)!ZGp-5+"bHE䢈t?>j,rpD$ "7E"/t:bs66 .+H$~E"򉈔H!"b`^Im[[۶\iiyr'cߏ ݾX "g[,o%$///599y[om0jA|׮]lmmul߳.;FaÆm۶-[D,z݀dy#GXLOŲ @DGr~~c-A|[YĄ4NLIuuttJqbMC+A(FqN']]]iHjѨJN:ҹPVV022OтgϦiD"͛7/~54Dx<Fm+`@m“'OUUU`pm|sql ׻(2" (*Pj mV]9rOzu xaN$0 Cx0 >|81_ i NBEa@J(z_W86^ 33>&#} be8aJ`{ɞDa{8O"Ɓ`J Qz&"<(@1(.\!"vT)~uGܙ SSs3+h4p:x/h^O̴YViۢW ń# ok{6H5߄FOv{$=nhhH^@`sәJ&LD00XP4([:::Z^_`rB8 ^) ؀@i`[V Ð?&- (/P< /k@_A/@xY`JTuuuՌ:._<x'TGb' g [5l00PQ^(" @ ?JՖ|v333: 0S2rK.koo/Z5RzgaQ5?TTmN>R !"TDHϕ+Wf !Iȵ@@ ˕H]D!"nwk[ZIz+"QD> iH>P'co{{{Ae>zt} P_.K={6p8V333c^ 8_Z3-D. <LTioo/p 9u餿d,--ٳgSKKm%%% @.*m9 p_~ԩS<1WdA|2N988 ajja+LT;n*"Ru6HΟ|-gׅJ~v344S,CDv,J5P(֭[ٙq"4*7KSde3- vb4ݾM4陝o3;N T/zU3e=w<ɰwSc$>±c$dsss[Ug,ơ>.<}tEJO# Hcc蟯\I,.rΝ2+77H$&Ç\W(377Ȳ% Dj.<}tsLD䞈|#"}uu3ᅊ3|!"E^D_7[[[n޼h^|p8|5^؝ r>YWQT}(B0)/a"T8< |o%-6b(7&& uy{V`uD.يrdFhH-6 "%|f 03CТˉFF;}# L&zH<@% +CwBvR<´,,N-ZYi$o~.ڃA#>\a3|>pgvI4:~;Y~-IENDB`PK [!+rrr'skin/modern/venkman/images/stop-dis.pngPNG  IHDR szzgAMA abKGD pHYs  ~tIME:onIDATxO`?]3d(H x4Q/B[\%>sZ@)&b4kxٖr$bo| (1bRU1IUwВ,Kc64ⵦA͒@xH0~4YulHd6D,h%Z@ڼ&0hdqMCm}d/A`(4HN$rp04F ^]F _^7[@gkPU~m.`uAY7Sm\m8|HkmmM) Ӕn~Ɓlco`:eo`H)'FW5:Kt'=V | `H\mm=y{.![v,Cz! JRF,,o˿gOD"圃85!4B&\7Mf4!e1=hŖeAy.Xr E.r~A`1Oj4CLsOv!2ppc0x_D;8ht9 G@;PtgH)JLLxh0m4zjf (Iڨ${3~MiqȹC1'MIENDB`PK [,ڕ&skin/modern/venkman/images/profile.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME% 8{/IDATx?O*YƟ16&6kbml $ZנBBg4MNc83 ̳3d<ɜs{!>'`*7 `znn߄EQ@jVV~\. @(\~&''gggd2jOPht 5bS<a, LRFVoo8UU+-ͅqiWﵵb\n Em:݄xo766tmx<Yw} !nS]ݵ<Kқv"Z~@Y\\<-ugb1Apa0J1cwta,y0 pvv$j$Y(N.|BܮXOkkkgH;$-DžZ'fh}}}|>P81kppSȈ@k'Z2ʾT*qbbB7 rd,tqwź" jV=N.kHBq"TUZMw 2䤡:,4Mk5.//D* 8`6-k4qzzJvÆT-c>Ia5\Ev@0!t]w LH$H$R=igRyڻ,Ʌ{rgzo MAu]<88˅qۅvmB[?6Nٿq! =f2KZboa0Xp wv t:]o)|3A04^Zky]x:Z>~}}( 4 I 0L؇Dd&HFc9_|BTU XSSS$Ύ4秧]xxcmBLABR n'?hTmIENDB`PK [,ڕ*skin/modern/venkman/images/profile-act.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME% 8{/IDATx?O*YƟ16&6kbml $ZנBBg4MNc83 ̳3d<ɜs{!>'`*7 `znn߄EQ@jVV~\. @(\~&''gggd2jOPht 5bS<a, LRFVoo8UU+-ͅqiWﵵb\n Em:݄xo766tmx<Yw} !nS]ݵ<Kқv"Z~@Y\\<-ugb1Apa0J1cwta,y0 pvv$j$Y(N.|BܮXOkkkgH;$-DžZ'fh}}}|>P81kppSȈ@k'Z2ʾT*qbbB7 rd,tqwź" jV=N.kHBq"TUZMw 2䤡:,4Mk5.//D* 8`6-k4qzzJvÆT-c>Ia5\Ev@0!t]w LH$H$R=igRyڻ,Ʌ{rgzo MAu]<88˅qۅvmB[?6Nٿq! =f2KZboa0Xp wv t:]o)|3A04^Zky]x:Z>~}}( 4 I 0L؇Dd&HFc9_|BTU XSSS$Ύ4秧]xxcmBLABR n'?hTmIENDB`PK [,o.skin/modern/venkman/images/profile-checked.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME$˻IDATx]lS}|ĎNIt$$fэ$.4Viӄz¦)1* &M]!BIƒ.¤$JHC2Cۉg-8YHGGzy9uS0{НyW?{wR&Mx<uLӀ5M{YD{u]7:t͛7IR$qnddӀ&fxֲc)7D$yJ)))IEQ rW«@fM߼y(\&gɮ]DDF %ED\"CL&SʄR'N""⢈HXD'FݻgݻW*[)\8PtNs. =!TVV&EWWWn(o߾ks]2c9#E <ѣGuDlX~=gϞEu> GΝ;o"ӊɦR ௅ ""g<߆R6l(p8\---R&yeM _֊ZPSSCCCv, gΜ)hmmͭX<%H"D۠_ ӓD"\xp8\ 088}$;w;1\>emZS;vp!j\|@ ߗW^eEɦ!Oo0tMhq:QtS?nfzju5pܸ>߯HL\`a$ h߀tSSl߾]e3񪣣CEy GxYt^/\a, HT"E shD"󝝝0_ J8}~<ۄÿeBBr|M!Pyd2Sx˯=}41l0<IENDB`PK [,TP*skin/modern/venkman/images/profile-hov.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME%(?;IDATxOlS9@Ƶٙ tڙδ*%AH#ٷK@X",X4 Up%`Uw ymF fHIq2sx1 p$~;sw aa hLo @ a7l[ @= 0 <+a{1CWKGn݊UIֶwޗpG0|<^U0I@R |nnnxgPvܹI4558488hvo2 =7XG;/T*>sNG68bH&qTjiϞ=sm? x$ijjJ>\#ŔNfffx$INVIHo=Ϟ=v%MKz'H$H$"266H⾤o=O0&0\I4_  >8p@5<<ԩSFZC05C^(gttI:vl۶_]j uv&JkQjYF]˲4<y;˗3/$yQz@DXLh4z%"pSD g.|뺸\.|O$Du IW"מQ]͢"رcw :nG}TDʢqIC)?xYZ>FWaw^XK*a abtwwtQ:nMne{{O &"8rȠ릮T+V!?|.q6Rq&zRܰQ{OEdJ˞rYr3b I{t7pmmզ0LL)U;p)zJ(xj"Z n&xgU`ŒV R0PUUBBUy}vJөDžOS{n0Os/_2y:O>dW^IUWPP?q?V<deeab@ٲlD|pH\qo8T8+\s?ɚ^xKu#%Ϧ줖CJyMvr[[[]---O?XM9wÌ$+?m EQPl PYYz~[ Ӱ+b,0| =O֮]lVׁD"!uuuJUUn;`߹s'333~F]%vj͟%o2-yIBYBn|>Suimm5{{{%gkIaa抪(hfeD=p8,.\SCUUٳgLAAAfE󿪮իO[ݟ!˗3&) Kp8` L*Փ`_Y5Ժ,g͜YYr`UښYw5ۼyMkI/!R w 'kDi;ͩIjoZis:FۗuH΀l2yEn>6|0s&E7IENDB`PK [, zh*skin/modern/venkman/images/prettyprint.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME <"IDATxՖYlTelmSZ`[ -u[\4 _ 1#/.H4F0p+FM+VZhn3LJ{6O2|SYd |ځ(O׎+@#pR/x Zhͩ 8oful֥o+$v'i9bķo'5WY@645/,v QaC|/"Tp)@$Q`-ZqDx3ϢTQ {""#hxԹqekO#0HPʤ'#u pǾ}^SZ褀ĝJTKڲS0gXA)f[s¡"UՓ^R AF "J1Q@ݝЋI_〾YS+ZuUyy:PIle"0ExGR$X3w*5cxޑeE9MGr_.X$pߞcpwp=IENDB`PK [, zh.skin/modern/venkman/images/prettyprint-act.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME <"IDATxՖYlTelmSZ`[ -u[\4 _ 1#/.H4F0p+FM+VZhn3LJ{6O2|SYd |ځ(O׎+@#pR/x Zhͩ 8oful֥o+$v'i9bķo'5WY@645/,v QaC|/"Tp)@$Q`-ZqDx3ϢTQ {""#hxԹqekO#0HPʤ'#u pǾ}^SZ褀ĝJTKڲS0gXA)f[s¡"UՓ^R AF "J1Q@ݝЋI_〾YS+ZuUyy:PIle"0ExGR$X3w*5cxޑeE9MGr_.X$pߞcpwp=IENDB`PK [,H;AA2skin/modern/venkman/images/prettyprint-checked.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIMEclIDATx՗}l?ܷۖږ` YywƲfdi2&3j d3,YKfL4l e1e,*7PJ_nyxnKS\99;/Sd؛mzP_ "q_wZL֞C.z =Qb97nH2*w%k957`4qvIa(`X/V-y}RAUTjVxf(<S><6DvC23Q`!""#h$CQF:MwZļ? x1cV$BCM !cp=κ:pN"nx91 #~ƙn|7BqJ; 2Ux\"t=d3(cfXDE7G@SpRqALKccfL߾w'PDe{x=sR0pU}0`1/&prhY~b%V4|?tx̙P*xәth*˒Sd÷zz2%oq[{vx׉=]ۅ]`Bg~932RKˑ˄K&h?~|3p'l :t{ȯΟgweR5eH.mIm񮧀'wR P*%_VVn>+nb+T7Z42398_ r˗fyϮ/bm ;?ᤛJ ߳вщhh*g.;K0Yɱh3EDf"!{cBծia0J6M0 +qcЌGi`բ'GzPO#HР/+XZҩ#oNmp )޻U-גs7#ӹ&yZ^go30H`łA Ea3T=>85t={[S?<#*J)`'pܦ$@GwChƝ * g_ߟMiǺ[WwW &ٍZƟ}#gyƻtݻ2x,pju6ܢ߯n}I{ 7U}cc֡ef'G27 M,x{%E^k+^wToVgE< ?9?3]ڤ;{>mȖ>XJ^vaӸUѬ'V XUs #wȉ^oA^~@!m3Ϝx))sbw֖(f֬oZp>Ny]PĚ{iLޓo(޷f+s3؞*~̬}IENDB`PK [,  .skin/modern/venkman/images/prettyprint-hov.pngPNG  IHDR szzgAMA abKGD pHYs  d_tIME6IDATx}lU?s}kmRKKiiP *L:8Tf&f!?`Sgp,1e$ fdI160! tVyQږs{-˞=")$'9f@>p7ƌHe%tKzI~82h…iIٳ\"p- ۶ /|*UI$&R* rӑHT k9ieQecdիK.1I\]})l`믿>wٲeMQс뺔 ~~21E=uj(}ʕ+8~~?m뉓Į$1ty6l(NU D LjhhϜ|t_[3)3[ @ߟmڴ$X,3<<| H{F>!%"W\;vs[[[nݺ@4inn,繾CρQy__!%j\-bM*k Lc2L^I6͐1Fk֬II_^w_c|lEv 0wO!q ?SORxt֯__G~1tuu9YY ~DcL2}1-ҙi~m fa޴4s;cBT8XCk_Pp(3gsg I @=0W.rNg[`)T+铒S%zGκ+cVX޶m+++=k9'|]IKKʝ@O:u,*ܰ1ڰaCkiۂןSIIDD՗B_,>+ܲjժ 5soDEG0K 9(O~g |~vcpQD@B֮][o-&Z -r,%1t-^lڴX7@xz>Ԁ!ONNVk,͞c ?p }$QDO@9B-ѥ" *Z-W/^p akMɘX,0  Hݿ`ZgcVGvZeYkN?}^BXIR}pˁSkA5G<񖓗p1 ͚Q ;(l"~gBCe{jt}\r\/$}ARe OH}^{mPe$7kkS|@ɤI Eɤ]WnIPZg%1F䵵){䵵龪ZE!Z㔢N sd߁-*BMMMT*[(!1c*&|Шm&l-8ְuBn} ޹ҥE&8?G7#r(c 0E~ LM1QsGY=<Nr0nݺ y` p{+1>>g2֘ Y}stY1x :whl5`޼y_otwƧ%>;ɟuYR_n!tE 8/|"sq{nw=rWZ*++q]^? /m>]:{~=Z[_,~ETQ@@u]]>lw,S%>N8;N6.}-Nc.LHK /p84& fU@ y9^A/:Ls n=%% =Sְ1kt:pW'n~kbwPֻXP(RrDH6|a~c47x/ʧr2,OzT*L&>AIIhx0۷{Dk3Đz1bbI ,Pg2qt*3 8;]~q :Zhtǃ+;G19l&X9> Vz Tx^NCzf- jrΧ:?Wŗ5pQK-ujHDbLM9@x4D 6xBO=MB t@kSmM(ViP#iڸI_J3sIENDB`PK [!+?KR'skin/modern/venkman/images/cont-hov.pngPNG  IHDR szzgAMA abKGD pHYs  ~tIMEQvIDATx]LWwf݁lXG#MP-OHӤMZKPFۧƾ1iH0Imiզ6-j‚,".Y;|4In޻9sι7^H) 5B8@$0%K`=f{&I LK)S%⃇Ck@LO))Tq+cx=PLv¢TSSӭq` D! UKVM@Jڎ`g0-[vȚ !S$ŠHĥ*` P#$~Lm`666+"9T;0OH'&%x; +e|[׆ ؼ}䕫W{~}UEpCċC[Rb!z>l7n (YkΞ;RQ&ZvQBJL/*4])|l=w̌$tTWWI00Rh HE\pJtx0`0[*pm0mΞk?~#̮+? xq]nnٙ3g`vZ1n}W)fRLi:--=lŗBm/4w 2Mjlw^XGߏ43;D育mm`$`>o詵?/d}؁x;+Jgrf|"O 5ta "j!tؘo^bj@ `zQ2d<ےq5-eY._*,*Q@Hcg‡ e)1Qӷ'4];w&~GՃlǮNhb!F,񖖖n+bX /Y<ʲFlL$"XCCT< |sJR@vVMw ^aUmY\\T Tw5[IoJMl_:/XOb>!T[B-ӖDZevzEw1u1 `7~/&S< /.εL'j`lIpAS22d&IENDB`PK [!+t"La'skin/modern/venkman/images/cont-act.pngPNG  IHDR szzgAMA abKGD pHYs  ~tIME_$BIDATx햿kSQ^FHѡJ5t:HR-Q{A?@ܢP(4-&qH(Qļ:t9w}ФI x)'GTLQH pnnCԱͩb9@#X 8kiA/H DvW* Du:!6Z]n*P;?{3:m 2"0=[UBbC2+ t+*յkr^Zra8 [q|:"{NNiD/l( &/}; ;'"1އOeS@ߞ8b%`5iC>> Vz Tx^NCzf- jrΧ:?Wŗ5pQK-ujHDbLM9@x4D 6xBO=MB t@kSmM(ViP#iڸI_J3sIENDB`PK [!+ՏFF'skin/modern/venkman/images/cont-dis.pngPNG  IHDR szzgAMA abKGD pHYs  ~tIME 8IDATx햿ka?OZj)-I7.*8f ءCH ĭ[J4\}Ҕh9x{qANN 'SK3* '%0:wYTa r " h>W螞COZwBwqc (p Sx@[2DxDŽN}8p+:*lf"ǖ cv/+t0/ t=&nNLk8ح'8vNbk`hݽ 4jeRx?T*A NI# D!/UŸ|gtA?\Ш8vEZP]<GjG$e;s ܳ P[%CC=LX2N!!;`'M9%Po1R 3^hv: 3z$K/? !2F0&tܮXEF= OCȯ fLGNs\~H!)o^x|ګ||#3qхꀫBzT&%Yh5e CJݮ/DN[C1~jc~qK^XgΟ`bjnҚ(&ϥIENDB`PK [!+8Hbb,skin/modern/venkman/images/step-into-hov.pngPNG  IHDR szzgAMA abKGD# pHYs  ~tIME)1b(IDATxŗ_L? :jMݭؚY M]m6Ekc1AR^MҘXnF>sYۭSor39=w< .WV>= xȷ/ʁUl42@X".I@Zxx XJ?6e@@44xA1,67/_|ٷDpg% :gfze`Rxpb7o8+o׮#@ (\ 0N n}%E$8(cF&1^AQJuӔV2L.ZYT#'L~]0RQD4_߯qྮY+Lk؍cc;vxe?F\B@E] 75u{qEE1"f|eq@\@Ditv|ʊ R*+*" C bƁ`CCCoiF3M* rܹeee^(L6d22٬ $ eȝ)Y u޾@0mTJ!׹D"QpC=OOA`z+rCeN:tݻw?|DP(jkk`ll,01͸&4wޑ%쬫_hٷoC'@C8L}⺮_h Jv)cIEk ]ŋʼnG~亮lgg= zW'MMMmM` B!E т EXC&9`I}F .\ٰ wFFĦ)`626SƕQSSz3 l≉ }a::i"Os )}Vݖw4;6?'OI|C e+D {szxKV~U 3/%vmooqRUTJN']VfeV;JU̓>ǰ+`@MMiϷpP< c8#?ۀw:::]:hddت>$h<\^*"GD;"WJ>HZ[[DKq=.""r"`Z^%(BHͦ1m @*߶}vCr >z^JQlECDnTi)7om׮^b߰]6z֭QѶE:N m% w?}EK6MNLS f=:/i? ǎ+"bm|L&XΜ9H1] \ꏟkIrhu$CN'Vi痒S!s8qf#ÍSW< ڪK)K`I7C}/`;"LVY}(i/EqԿ3uDIENDB`PK [!+t^^,skin/modern/venkman/images/step-into-act.pngPNG  IHDR szzgAMA abKGD# pHYs  ~tIME1J|8IDATxWnA}cE*((% ӥ@'ƍ#bۤ94H/4Tq$KJ*;,4 v.s{{b'nwvw13'6VTrR!, !"$߾!iOgtA?\Ш8vEZP]<GjG$e;s ܳ P[%CC=LX2N!!;`'M9%Po1R 3^hv: 3z$K/? !2F0&tܮXEF= OCȯ fLGNs\~H!)o^x|ګ||#3qхꀫBzT&%Yh5e CJݮ/DN[C1~jc~qK^XgΟ`bjnҚ(&ϥIENDB`PK [!+?$,skin/modern/venkman/images/step-into-dis.pngPNG  IHDR szzgAMA abKGD# pHYs  ~tIME.', k@IDATxŗkA?#,N^sE&! )*)MT.h)x+Xᶌ VwJlbg6 7fWhlC6-N$^\WF̒ao󫎳iqԔrXtXv'aBC)JP 8 RJR6杻^߸HD"6G˹H)𒊈!잻 ޜ7D\TnjO˶Ueoy %#`(0/Ŋpw,s4T P򂚇iVBPY~l53LwHL%s93|{ x f9`*9@+ФqΛ[g^kO? @xH;@#PQ*7Db^4X"rjɁJ m dk[ֶ8<<pKӧk9qyy嗳}}}SRRf۶yzƧ8g@ 0j<ϫ~,BDVp]7҃rA PȁmYZnݚm&n:.uji`0@, SG_ۖGؽ{0֠%bQqYL[@ؘ*繿~サ5?)KDjqzFi0ɯD}m <*7/%`QA I` pO`aK0,V+L>y`{{{: (>k QWxv{{{d2لɵP`8tcNk_Yp5,pmΝ˶X,1*1+*Ѩi Lbd3QE\}wZN۲^fc25Twuu >t.Wu*C0W|&#P "]`8CYPYI4u4VꡡhScc=@Gg2raf˹ʾ}w뇆BCx|*Xl Lo9 *2AoP͛Lx|T~3}?{\9"6u^ ^(ջϜ.ag1 3z{kbZ [XA?9֪ߜb99 ۘVyX8}T)@SSIc[X*zxe[ցpTj[pD%5^}5 J<9`i>@Ĝ\ȧ~)@Ҋ۾w6-ˉDbQ9 "Ҕ<d\)-BH3m+m۶m(->~CDEd#"c px<>#""21::p„|"""O%Nx⤈Lw{z| pND4.it ?~aձcǚf2pxSRjQG=M< |g|> Sh.["R9_6iژC; wV_K–:ρ%"%q *0R<}n+_6杻^߸HD"6G˹H)𒊈!잻 ޜ7D\TnjO˶Ueoy %#`(0/Ŋpw,sIKJy^\$.OzʵXN|!(EuiB߁-ĥa^OHp! z3'e'eA8 0ܲ3Hixvٙ]E/7r`-q]8!A+qƭN$"" ^w qe_Z ,xAmu+<'r dRQ2)x62 :5P k->U|%D\#D.D'jqUH 4<#*?w.x0п$Z!81-c϶5Ϧrnx,/m&N 8fۃ6Cy`pmI@ Q7E!ӴyI" OztZ9'vEs"ÈhƲbtzos8p}cPautH]!:+ gGNAYC0[aD4\a#; 8䈂4mj S*{WmOWYAˌl( I]F3y, Adf]Hx j+j́IT2 6k[@P(e,\Z5^ѨӚs% 2odIIENDB`PK [!+h|C{{+skin/modern/venkman/images/step-out-hov.pngPNG  IHDR szzgAMA abKGD# pHYs  ~tIME 1;IDATxMlTγ1s<6qhUU !9Em#H! uo U*P6Fcy]] @M]eQԒRN f1N\m z;|>a +z!0<EcL˚A+@9X Y10s@#/ @j]HP x;0<1 pԖk5Ѓ*Zk̡D"paqب @BT`*68W|u:򣏶ܸqcc{{*_`.X_|g͛Yc9F@63L~7?^uW~ZZLD0PX,RJ a1ZaI_a.|:S4G*ԫ(閖1\/%k̖DY;oؑ9ypST kZQz4ʣ9dyKK(0 UvKZg{G{\TppR_Ux_&̙3w;vH h&*\oƥPL *gxU¥l!.# ސ@l^)jhhWB".Xq9X-++Sׯ]sgEee嚆@5pO},JfzzzJ~'a]]_߭Eu4xto{z@7/N+q5lㆾ===3-φ[{Q0L=zts>wҥx___2PlKұ{q9"&}6A:uZ\}/5###9ge)/p_ez&֘e޽8W"T\0*g9 Z[VR+^y,-P93555>ZdSMUUe;_}5C>|'lZcpEH/:r'jb /7tzWqcUUW_twwoe>8˕E]1-,ĄCD:N[[㍍3/]ncJgDW[qk*/KlTmnjw [k/iii)NƵӕ2J&՘ {i\|y'ϟ? UA >5-UQ/N^kIlZ=::|1d򇃃;sCCC!.815-""Ge@>x<>{<>knn[z@WW״s"lHf0\m9HR;w.9`.l׮]!t+3QO#. 7D"[L.z+:;;Ȱ ;wnʕ+"g?to ّWȠ on~ϫH&EWu!""R1`Nrgb0LǕGyM;w)Tp'Q[[1֗^ٶ-fK+RǏ+ 4"RiM4 WpאfO*t6TYå^ .{|+ĥcr72>QF"vno\ " ʆQcz FD@'2OEKttg~.??b!IENDB`PK [!+01N22+skin/modern/venkman/images/step-out-act.pngPNG  IHDR szzgAMA abKGD# pHYs  d_tIME',}IDATxŗnA"AEb(LACJ # !Io) ͥ*pqơPM"ݹ[VޛƶcN5Yƭ %ip٬ԝNC1N@LDTw|{"|ZDIK'v0πQyW3?,%֙U^ <9ZskdXFJIU_~Wa]kM.`s0ݽ1L6ϟ s]ε.1&U x󠒗Ao'II@;I,c3˂gL@W'ILe>W׉`3EZwZV8r'XJ.wG['vj* nD'S@4-8u&W3RץAbعj׶qu=Dz@ :."YP`q9^]F: 6$Q5>XZ\|{ñ~i?y1EixqXl\ (M8h-bY׭61vͮ= 8vHӔpll8rvJV|:~3+/S*KIENDB`PK [!++skin/modern/venkman/images/step-out-dis.pngPNG  IHDR szzgAMA abKGD# pHYs  ~tIME 217NIDATxŗ1hQ 8QDi n0 8iZqp 6rCǂ6usq+SPhs].wX}{Ojyg w:#m")qBF#K \k0w- KJ86iHīFs/GH(C^đit^D13Ut<f*_" SxcO .߿ UY#CRI㒎rbUA\o_%-v$ x\nBp@)a+jpɰYR@˅C!i fUoÓ9h_}MV%.^h`8Mcy@OEu͏u> &<_e|8rg90 +++r9DfBr,//gT LSیC%YtbIENDB`PK e3^+$@nn.skin/modern/venkman/images/breakpoint-line.gifGIF89a=5! ,3H :`zo~])\؍-' {ƌ~ [HqH;PK SS,u9,5skin/modern/venkman/images/breakpoint-future-line.gifGIF89a=5}xܨRK! ,KIk[ t`Bxy%!EJ~T˺O҄,w?3CI`V "i! hyM;PK ̎,FpہRR0skin/modern/venkman/images/breakpoint-future.gifGIF89a=5! ,#폀 XY!Bm;PK e3^+II(skin/modern/venkman/images/code-line.gifGIF89a! ,|V֠ [ @ӉP;PK =+,OCII,skin/modern/venkman/images/code-line-dis.gifGIF89aGHL! ,|V֠ [ @ӉP;PK Ў,[T&skin/modern/venkman/images/windows.pngPNG  IHDRagAMA abKGD pHYs  d_tIME.8IIDATxœNAs{{>e>AQZHK1IENDB`PK ̎,r;J)OޤB'*1N .kIENDB`PK ͎,r7$skin/modern/venkman/images/stack.pngPNG  IHDRagAMA abKGD2 pHYs  ~tIME 51%^iIDATx=kQ_ immdK&d "RR Dl1a Fh Wa83Sssù 6ͥ֘9S?>'{X x^\t>s!b&{h5ư[2 4D;!MzL=XT /Sfx 6cG] x7sD^'-<-{sAI!ⱟ6d:!ZXZuCɜ ܛ?s`0Kݹvٗ2Hr-o?FNF%v&V-ܨ5trYz<yzIENDB`PK ̎,h~22*skin/modern/venkman/images/breakpoints.pngPNG  IHDRagAMA abKGD pHYs  ~tIME0m"IDATxc`c}TeSY ՃtP4#"!L} DD,N!asa4a o50ftf(z) Yo1ɓq  'H3>A$IENDB`PK ̎,)skin/modern/venkman/images/breakpoint.pngPNG  IHDRRgAMA aPLTE=5+tRNS@fbKGDH pHYs  ~tIME pr&IDATxc`  @hF%ECHII"d tH/(e)IENDB`PK [!+l,skin/modern/venkman/images/file-function.pngPNG  IHDRagAMA abKGD pHYs  ~tIME /+X_8IDATxc`P? jQqɵ/p*x,&Jl5J02P6+IENDB`PK [!+{/skin/modern/venkman/images/file-function-bp.pngPNG  IHDRagAMA abKGD pHYs  d_tIME_dIDATxc`P? jQqɵ/p*x,&JlHUxxm&[S80C԰d  >    n~IENDB`PK [!+O  2skin/modern/venkman/images/file-function-guess.pngPNG  IHDRagAMA abKGDnp pHYs  d_tIME #jnIDATx 0 D_C$k8g(t"~(M]rGArbF_R.R'֝Q l q&$b0cvIENDB`PK [!+b(skin/modern/venkman/images/file-html.pngPNG  IHDRagAMA abKGD pHYs  ~tIME !lfIDATxc`VPVC2 <8,f``CVDj./000 ‚b`\ 8 @ C=AK. wIENDB`PK [!+9S'skin/modern/venkman/images/file-xul.pngPNG  IHDRagAMA abKGD pHYs  d_tIMEeIDATxݒ 0 ρi^+ȥV)˭f v"RpJ+O1hz ]}'9ƭ8`CwLF\7gKLZ"vZx "Ɨ`& k9Xwo^GO%EIENDB`PK [!+ ~;'skin/modern/venkman/images/file-xml.pngPNG  IHDRagAMA abKGD pHYs  ~tIME 2G=8IDATxՒ 0 D-,@AL<,G#  ~9:ξU*1U>@X1oq`p(\zK|]7}ne@#zo[r͍i88z 7aڥr@/n;Wۻb!",?EIENDB`PK [!+m5PAA.skin/modern/venkman/images/file-unknown-bp.pngPNG  IHDRagAMA abKGD pHYs  d_tIME/֪IDATxՑ1 0?KvBn v !h7@])qp _?64+Vh5W@ ,mLZȀrh0 @?`O u(!]Hs:o9:nuNwBU<73Jсb7;!?o|zN0}#IENDB`PK [!+wGG)skin/modern/venkman/images/file-js-bp.pngPNG  IHDRagAMA abKGD pHYs  d_tIME%(cIDATxc`$w@v( SOa!`A( %j0tLt05gwBC1~WqdBbdkʰ֔\.bvBD6a009VX a*,Ws!#?_7%"Pg30000> K O>1gIENDB`PK [!+::+skin/modern/venkman/images/file-html-bp.pngPNG  IHDRagAMA abKGD pHYs  d_tIME"IIDATxՑ1 @E_4(HHaz]x% 9AK,xU+Qb3{x6 U*HKԩ;O vGeUe49 UX '!|m@vA nN~kf`hFmL'*dIENDB`PK [!+/vLL*skin/modern/venkman/images/file-xul-bp.pngPNG  IHDRagAMA abKGD pHYs  d_tIME $ڇQIDATxՑ0EπF&pոNHИ} r PL,MFP\>{Dar-*uvq`$@ D,l15:8}m`K |oF3Ą}:oqڊoݚ DrW `:Aw)?7'd`X4g tt!:p3ھx",<5%^pIENDB`PK [!+WMM*skin/modern/venkman/images/file-xml-bp.pngPNG  IHDRagAMA abKGD pHYs  d_tIME*2:IDATxՑ10?E"c5L`psv<"$ĉq60{.E BLb @)sY3CW 驪-@Jb"3P)D21lЙm-#k6>.z |ճ tUQ6oiюF`@1-)wCxTM5aP?cIENDB`PK Ύ,Wc}}*skin/modern/venkman/images/value-frame.pngPNG  IHDRagAMA abKGD2 pHYs  ~tIME 5/ߎcIDATxҭNAgiKDWT A6$$ D!EsD"6 P hҔ_r29?93C2u쭿 RbIU{h Bć>0D( \P.J8XMCc_Jv~3|z.fAkj95-٦GM}-M8U+G3q[u/G3Vvj립}Q'g YN<[쬯IENDB`PK ώ,nD)skin/modern/venkman/images/value-void.pngPNG  IHDR7gAMA abKGDt pHYs  ~tIME ;lSIDATxKaM!.6pi;!\Z⠿!ӭȱ?!!r3%jso10Jgz^^^DIDATxJqS2qҩq%" !E hSp i QB(e10jZνs9^?t5(<LLXh^H lԑ1Jva},~K%۫B$&{lgY ʃ  s\3LmEҢs,.e A2q_xK-ԮvY@mlR:ԪCń +K_pQž Sk(4Vⳁ#p+;0,FȬ`yC~Q] h\GOIENDB`PK ͎,Eg)skin/modern/venkman/images/value-bool.pngPNG  IHDR7gAMA abKGDt pHYs  ~tIME ;iIDATx?KPIvt,H8Appw C oqo]kED*/EC_gz{ι?A+h rҤ@p^1L| "I^Gم$yLr Sjm[O s/'`l6lrF o&%$/tݬWC(Ȏ7^ ~CXRfjιZVOwP3'ɘIENDB`PK ͎,EWjj+skin/modern/venkman/images/value-double.pngPNG  IHDR7gAMA abKGDt pHYs  ~tIME ; IDATxѱj4j+."Iڡ4YB'>FBJ$ b+1Һ wq+Zڡt>=g@ ޝvBˈ -#EOg@cvT{t ĠO]|"ۭ P`rRދ;V4mF\A$)6 XuІ9*sO3ePh:H-G HHX6OaIENDB`PK ώ,mUU+skin/modern/venkman/images/value-string.pngPNG  IHDR7gAMA abKGDt pHYs  ~tIME ; mIDATx Q^lx31HJ.@y10;pu#Rg0+ec`R1`g, original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ body { background: #dddcf4; } body[hasSearched="true"] .newbie-help { display: none; } .quick-searches, .search-input { display: block; width: 100%; text-align: center; } a { font-weight: bold; color: darkslategrey; } a:visited { color: #444444; } #command-list a { text-decoration: none; } #command-list a:hover { text-decoration: underline; } #match-count { color: darkslategrey; width: 100%; display: block; font-size: larger; font-weight: bold; padding-top: 20px; padding-bottom: 20px; text-align: center; } #help-menu { background: lightgrey; padding: 5px; border: 2px black solid; } .value[item="description"] { margin-left: 15px; display: block; } .value[item="command-name"], .value[item="usage"] { font-family: monospace; } .command { padding: 10px; background: white; display: block; border: 2px silver inset; } .command-name, .param { font-family: monospace; font-weight: bold; } .label { font-weight: bold; color: #666666; font-variant: small-caps; } .goto-top { display: block; width: 100%; text-align: right; } PK q4l! &skin/modern/venkman/venkman-source.css/* -*- tab-width: 4; indent-tabs-mode: nil -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert Ginda, , original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ body { margin: 0px; padding: 0px; } source-listing { display: block; width: 100%; font-family: monospace, sans-serif; } line { width: 100%; white-space: pre; display: block; } line[highlighted] { background: #EEEEEE; } line[highlighted] > num { border-right: 2px #919bd6 solid; background: #d5d5e0; } line[stoppedAt] { background: #ecef34; } line[stoppedAt] > num { font-weight: bold; border-right: 2px orange solid; background: #ecef34; } margin { -moz-user-select: none; font-weight: bold; background: #CCCCCC; padding-bottom: 0.5em; white-space: pre; cursor: pointer; } margin[x="t"] { color: #444444; } margin[x="t"]:hover { color: slategrey; } margin[f="t"] { background: orange; color: white; } margin[b="t"] { background: red; color: white; } num { -moz-user-select: none; padding-bottom: 0.5em; padding-right: 5px; margin-right: 10px; border-left: 1px grey solid; border-right: 2px #CCCCCC solid; background: #EEEEEE; } k { font-weight: bold; } c { color: steelblue; } t { color: darkgreen; } r { color: purple; } PK y0HTT.skin/modern/venkman/venkman-output-default.css/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert Ginda, , original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ @import url(chrome://venkman/content/venkman-output-base.css); .msg-data[msg-type="ERROR"]:before { color: orange; } .msg-data[msg-type="ERROR"] { background: darkred; color: white; } .msg-data[msg-type="ERROR"] a.venkman-link { color: white; font-weight: bold; } PK y0ts +skin/modern/venkman/venkman-output-dark.css/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert Ginda, , original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ @import url(chrome://venkman/content/venkman-output-base.css); body { background: black; color: lightgrey; } a.venkman-link { color: #7083ff; } a.venkman-link:visited { color: #4b57aa; } .msg-data[msg-type="ERROR"] { background: #550000; color: white; } .msg-data:before { color: yellow; } .msg-data[msg-type="ERROR"]:before { color: orange; } .msg-data[msg-type="ERROR"] a.venkman-link { color: white; font-weight: bold; } .msg-data[msg-type="STOP"]:before { color: pink; } .msg-data[msg-type="STOP"] { color: red; } .msg-data[msg-type="CONT"]:before { color: lightgreen; } .msg-data[msg-type="CONT"] { color: green; } .msg-data[msg-type="ETRACE"]:before { color: brown; } .msg-data[msg-type="FEVAL-IN"]:before, .msg-data[msg-type="FEVAL-OUT"]:before { color: orange; } PK y0  ,skin/modern/venkman/venkman-output-light.css/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert Ginda, , original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ @import url(chrome://venkman/content/venkman-output-base.css); body { background: white; color: black; } a.venkman-link { font-weight: bold; color: #4b57aa; } a.venkman-link:visited { font-weight: bold; color: #2d3566; } .msg-data[msg-type="ERROR"] { background: darkred; font-weight: bold; color: white; } .msg-data:before { font-weight: bold; color: #632117; } .msg-data[msg-type="ERROR"]:before { color: orange; } .msg-data[msg-type="ERROR"] a.venkman-link { font-weight: bold; color: white; } .msg-data[msg-type="STOP"]:before { color: darkred; } .msg-data[msg-type="STOP"] { font-weight: bold; color: red; } .msg-data[msg-type="CONT"]:before { color: darkgreen; } .msg-data[msg-type="CONT"] { color: green; font-weight: bold; } .msg-data[msg-type="ETRACE"]:before { color: brown; } .msg-data[msg-type="FEVAL-IN"]:before, .msg-data[msg-type="FEVAL-OUT"]:before { color: orange; } PK 7zlV V content/venkman/contents.rdf chrome://venkman/content/venkman-overlay.xul chrome://venkman/content/venkman-overlay.xul chrome://venkman/content/venkman-overlay.xul chrome://venkman/content/venkman-overlay.xul PK y0k  !locale/en-US/venkman/contents.rdf PK 7i8!content/venkman/venkman-static.js/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is The JavaScript Debugger. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 1998 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Robert Ginda, , original author * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ //@line 41 "/builds/tinderbox/SeaMonkey-Trunk/Linux_2.6.18-8.el5_Depend/mozilla/extensions/venkman/resources/content/venkman-static.js" const __vnk_version = "0.9.87.2"; const __vnk_requiredLocale = "0.9.87.2"; var __vnk_versionSuffix = ""; const __vnk_counter_url = "http://www.hacksrus.com/~ginda/venkman/launch-counter/next-sequence.cgi" /* dd is declared first in venkman-utils.js */ var warn; var ASSERT; if (DEBUG) { _dd_pfx = "vnk: "; warn = function (msg) { dumpln ("** WARNING " + msg + " **"); } ASSERT = function (expr, msg) { if (!expr) { dump ("** ASSERTION FAILED: " + msg + " **\n" + getStackTrace() + "\n"); return false; } else { return true; } } } else dd = warn = ASSERT = function (){}; const MAX_WORD_LEN = 20; /* number of characters to display before forcing a * potential word break point (in the console.) */ const LINE_BREAKABLE = 0x01; const LINE_BREAK = 0x02; const LINE_FBREAK = 0x04; var console = new Object(); console.initialized = false; /* |this|less functions */ function setStopState(state) { var tb = console.ui["stop-button"]; if (state) { console.jsds.interruptHook = console.executionHook; tb.setAttribute("willStop", "true"); } else { console.jsds.interruptHook = null; tb.removeAttribute("willStop"); } } function setProfileState(state) { var tb = console.ui["profile-button"]; if (state) { console.profiler.enabled = true; tb.setAttribute("profile", "true"); } else { console.profiler.enabled = false; tb.removeAttribute("profile"); } } function enableDebugCommands() { var cmds = console.commandManager.list ("", CMD_NEED_STACK); for (var i in cmds) cmds[i].enabled = true; cmds = console.commandManager.list ("", CMD_NO_STACK); for (i in cmds) cmds[i].enabled = false; } function disableDebugCommands() { var cmds = console.commandManager.list ("", CMD_NEED_STACK); for (var i in cmds) cmds[i].enabled = false; cmds = console.commandManager.list ("", CMD_NO_STACK); for (i in cmds) cmds[i].enabled = true; } function isDOMIInstalled() { const IOSERVICE_CTRID = "@mozilla.org/network/io-service;1"; const nsIIOService = Components.interfaces.nsIIOService; const CHROMEREG_CTRID = "@mozilla.org/chrome/chrome-registry;1"; const nsIChromeReg = Components.interfaces.nsIChromeRegistry; var iosvc = Components.classes[IOSERVICE_CTRID].getService(nsIIOService); var uri = iosvc.newURI("chrome://inspector/content/inspector.xul", null, null); // Evil hack: check if the chrome registry knows about Inspector. // If it does, it's installed, otherwise it isn't. try { var cr = Components.classes[CHROMEREG_CTRID].getService(nsIChromeReg); var realURI = cr.convertChromeURL(uri); } catch (ex) { return false; } return true; } function isDOMThing(o) { const nsIDOMNode = Components.interfaces.nsIDOMNode; const nsIDOMDocument = Components.interfaces.nsIDOMDocument; return isinstance(o, nsIDOMNode); } function isURLVenkman (url) { return (url.search (/^chrome:\/\/venkman/) == 0 && url.search (/test/) == -1); } function isURLFiltered (url) { return (!url || (console.prefs["enableChromeFilter"] && (url.search(/^chrome:/) == 0 || ("componentPath" in console && url.indexOf(console.componentPath) == 0))) || (url.search (/^chrome:\/\/venkman/) == 0 && url.search (/test/) == -1)); } function toUnicode (msg, charset) { try { console.ucConverter.charset = charset; return console.ucConverter.ConvertToUnicode(msg); } catch (ex) { dd ("caught " + ex + " converting to unicode"); return msg; } } function fromUnicode (msg, charset) { try { console.ucConverter.charset = charset; return console.ucConverter.ConvertFromUnicode(msg); } catch (ex) { dd ("caught " + ex + " converting from unicode"); return msg; } } function displayUsageError (e, details) { if (!("isInteractive" in e) || !e.isInteractive) { var caller = Components.stack.caller.caller; if (caller.name == "dispatch") caller = caller.caller; var error = new Error (details); error.fileName = caller.filename; error.lineNumber = caller.lineNumber; error.name = caller.name; display (formatException(error), MT_ERROR); } else { display (details, MT_ERROR); } display (getMsg(MSN_FMT_USAGE, [e.command.name, e.command.usage]), MT_USAGE); } function dispatch (text, e, flags) { if (!e) e = new Object(); if (!("inputData" in e)) e.inputData = ""; /* split command from arguments */ var ary = text.match (/(\S+) ?(.*)/); e.commandText = ary[1]; e.inputData = ary[2] ? stringTrim(ary[2]) : ""; /* list matching commands */ ary = console.commandManager.list (e.commandText, flags); var rv = null; var i; switch (ary.length) { case 0: /* no match, try again */ display (getMsg(MSN_NO_CMDMATCH, e.commandText), MT_ERROR); break; case 1: /* one match, good for you */ var ex; try { rv = dispatchCommand(ary[0], e, flags); } catch (ex) { display (getMsg(MSN_ERR_INTERNAL_DISPATCH, ary[0].name), MT_ERROR); display (formatException(ex), MT_ERROR); dd (formatException(ex), MT_ERROR); if (typeof ex == "object" && "stack" in ex) dd (ex.stack); } break; default: /* more than one match, show the list */ var str = ""; for (i in ary) str += (str) ? MSG_COMMASP + ary[i].name : ary[i].name; display (getMsg (MSN_ERR_AMBIGCOMMAND, [e.commandText, ary.length, str]), MT_ERROR); } return rv; } function dispatchCommand (command, e, flags) { function callHooks (command, isBefore) { var names, hooks; if (isBefore) hooks = command.beforeHooks; else hooks = command.afterHooks; for (var h in hooks) { if ("dbgDispatch" in console && console.dbgDispatch) { dd ("calling " + (isBefore ? "before" : "after") + " hook " + h); } try { hooks[h](e); } catch (ex) { if (e.command.name != "hook-session-display") { display (getMsg(MSN_ERR_INTERNAL_HOOK, h), MT_ERROR); display (formatException(ex), MT_ERROR); } else { dd (getMsg(MSN_ERR_INTERNAL_HOOK, h)); } dd ("Caught exception calling " + (isBefore ? "before" : "after") + " hook " + h); dd (formatException(ex)); if (typeof ex == "object" && "stack" in ex) dd (ex.stack); else dd (getStackTrace()); } } }; e.command = command; if ((e.command.flags & CMD_NEED_STACK) && (!("frames" in console))) { /* doc, it hurts when I do /this/... */ display (MSG_ERR_NO_STACK, MT_ERROR); return null; } if (!e.command.enabled) { /* disabled command */ display (getMsg(MSN_ERR_DISABLED, e.command.name), MT_ERROR); return null; } var h, i; if ("beforeHooks" in e.command) callHooks (e.command, true); if (typeof e.command.func == "function") { /* dispatch a real function */ if (e.command.usage) console.commandManager.parseArguments (e); if ("parseError" in e) { displayUsageError (e, e.parseError); } else { if ("dbgDispatch" in console && console.dbgDispatch) { var str = ""; for (i = 0; i < e.command.argNames.length; ++i) { var name = e.command.argNames[i]; if (name in e) str += " " + name + ": " + e[name]; else if (name != ":") str += " ?" + name; } dd (">>> " + e.command.name + str + " <<<"); e.returnValue = e.command.func(e); /* set console.lastEvent *after* dispatching, so the dispatched * function actually get's a chance to see the last event. */ console.lastEvent = e; } else { e.returnValue = e.command.func(e); } } } else if (typeof e.command.func == "string") { /* dispatch an alias (semicolon delimited list of subcommands) */ var commandList = e.command.func.split(";"); for (i = 0; i < commandList.length; ++i) { var newEvent = Clone (e); delete newEvent.command; commandList[i] = stringTrim(commandList[i]); dispatch (commandList[i], newEvent, flags); } } else { display (getMsg(MSN_ERR_NOTIMPLEMENTED, e.command.name), MT_ERROR); return null; } if ("afterHooks" in e.command) callHooks (e.command, false); return ("returnValue" in e) ? e.returnValue : null; } function feedback(e, message, msgtype) { if ("isInteractive" in e && e.isInteractive) display (message, msgtype); } function display(message, msgtype) { if (typeof message == "undefined") throw new RequiredParam ("message"); if (typeof message != "string" && !(message instanceof Components.interfaces.nsIDOMHTMLElement)) throw new InvalidParam ("message", message); if ("capturedMsgs" in console) console.capturedMsgs.push ([message, msgtype]); dispatchCommand(console.coDisplayHook, { message: message, msgtype: msgtype }); } function evalInDebuggerScope (script, rethrow) { try { return console.doEval (script); } catch (ex) { if (rethrow) throw ex; display (formatEvalException(ex), MT_ERROR); return null; } } function evalInTargetScope (script, rethrow) { if (!console.frames) { display (MSG_ERR_NO_STACK, MT_ERROR); return null; } var rval = new Object(); if (!getCurrentFrame().eval (script, MSG_VAL_CONSOLE, 1, rval)) { if (rethrow) throw rval.value; //dd ("exception: " + dumpObjectTree(rval.value)); display (formatEvalException (rval.value), MT_ERROR); return null; } return ("value" in rval) ? rval.value : null; } function formatException (ex) { if (ex instanceof BadMojo) return getMsg (MSN_FMT_BADMOJO, [ex.errno, ex.message, ex.fileName, ex.lineNumber, ex.functionName]); if (ex instanceof Error) return getMsg (MSN_FMT_JSEXCEPTION, [ex.name, ex.message, ex.fileName, ex.lineNumber]); return String(ex); } function formatEvalException (ex) { if (ex instanceof BadMojo || ex instanceof Error) return formatException (ex); else if (ex instanceof jsdIValue) ex = ex.stringValue; return getMsg (MSN_EVAL_THREW, String(ex)); } function init() { dd ("init {"); var i; const WW_CTRID = "@mozilla.org/embedcomp/window-watcher;1"; const nsIWindowWatcher = Components.interfaces.nsIWindowWatcher; console.windowWatcher = Components.classes[WW_CTRID].getService(nsIWindowWatcher); const UC_CTRID = "@mozilla.org/intl/scriptableunicodeconverter"; const nsIUnicodeConverter = Components.interfaces.nsIScriptableUnicodeConverter; console.ucConverter = Components.classes[UC_CTRID].getService(nsIUnicodeConverter); console.baseWindow = getBaseWindowFromWindow(window); console.mainWindow = window; console.dnd = nsDragAndDrop; console.currentEvalObject = console; console.files = new Object(); console.pluginState = new Object(); console._statusStack = new Array(); console._lastStackDepth = -1; initMsgs(); initPrefs(); initCommands(); initJSDURL(); /* Some commonly used commands, cached now, for use with dispatchCommand. */ var cm = console.commandManager; console.coManagerCreated = cm.commands["hook-script-manager-created"]; console.coManagerDestroyed = cm.commands["hook-script-manager-destroyed"]; console.coInstanceCreated = cm.commands["hook-script-instance-created"]; console.coInstanceSealed = cm.commands["hook-script-instance-sealed"]; console.coInstanceDestroyed = cm.commands["hook-script-instance-destroyed"]; console.coDisplayHook = cm.commands["hook-session-display"]; console.coFindScript = cm.commands["find-script"]; console.commandManager.addHooks (console.hooks); initMenus(); console.capturedMsgs = new Array(); var ary = console.prefs["initialScripts"].split(/\s*;\s*/); for (i = 0; i < ary.length; ++i) { var url = stringTrim(ary[i]); if (url) dispatch ("loadd", { url: ary[i] }); } dispatch ("hook-venkman-started"); initViews(); initRecords(); initHandlers(); // handlers may notice windows, which need views and records createMainMenu(document); createMainToolbar(document); // Must be done after menus are "here", since it corrects them for the host. initApplicationCompatibility(); console.ui = { "status-text": document.getElementById ("status-text"), "profile-button": document.getElementById ("maintoolbar:profile-tb"), "stop-button": document.getElementById ("maintoolbar:stop") }; disableDebugCommands(); initDebugger(); initProfiler(); // read prefs that have not been explicitly created, such as the layout prefs console.prefManager.readPrefs(); fetchLaunchCount(); console.sourceText = new HelpText(); console.pushStatus(MSG_STATUS_DEFAULT); dispatch ("restore-layout default"); var startupMsgs = console.capturedMsgs; delete console.capturedMsgs; dispatch ("version"); for (i = 0; i < startupMsgs.length; ++i) display (startupMsgs[i][0], startupMsgs[i][1]); display (getMsg(MSN_TIP1_HELP, console.prefs["sessionView.requireSlash"] ? "/" : "")); display (MSG_TIP2_HELP); if (console.prefs["sessionView.requireSlash"]) display (MSG_TIP3_HELP); if (console.prefs["rememberPrettyprint"]) dispatch ("pprint", { toggle: console.prefs["prettyprint"] }); else dispatch ("pprint", { toggle: false }); if (MSG_LOCALE_VERSION != __vnk_requiredLocale) { display (getMsg(MSN_BAD_LOCALE, [__vnk_requiredLocale, MSG_LOCALE_VERSION]), MT_WARN); } // Delay being "done" until the window is up. setTimeout(initPost, 100); if (console.prefs["saveSettingsOnExit"]) { dispatch ("restore-settings", {settingsFile: console.prefs["settingsFile"]}); } dispatch ("hook-venkman-started"); dd ("}"); } function initApplicationCompatibility() { // This routine does nothing more than tweak the UI based on the host // application. var windowMenu = document.getElementById("windowMenu"); // Set up simple host and platform information. console.host = "Mozilla"; if (!windowMenu.firstChild) console.host = "Firefox"; console.platform = "Unknown"; if (navigator.platform.search(/mac/i) > -1) console.platform = "Mac"; if (navigator.platform.search(/win/i) > -1) console.platform = "Windows"; if (navigator.platform.search(/linux/i) > -1) console.platform = "Linux"; console.hostPlatform = console.host + console.platform; // The menus and the component bar need to be hidden on some hosts. var winMenu = document.getElementById("windowMenu"); var tasksMenu = document.getElementById("tasksMenu"); //var toolsMenu = document.getElementById("mainmenu:tools"); var comBar = document.getElementById("component-bar"); if (console.host == "Firefox") { tasksMenu.parentNode.removeChild(tasksMenu); winMenu.parentNode.removeChild(winMenu); comBar.collapsed = true; } //if ((console.host != "Firefox") || (console.platform == "Linux")) { // toolsMenu.parentNode.removeChild(toolsMenu); //} } function initPost() { console.initialized = true; } function destroy () { if (console.prefs["saveLayoutOnExit"]) dispatch ("save-layout default"); if (console.prefs["saveSettingsOnExit"]) { dispatch ("save-settings", {settingsFile: console.prefs["settingsFile"]}); } delete console.currentEvalObject; delete console.jsdConsole; destroyViews(); destroyHandlers(); destroyPrefs(); detachDebugger(); } function paintHack (i) { /* when stopping at a timeout, we don't repaint correctly. * by jamming a character into this hidden text box, we can force * a repaint. */ for (var w in console.viewManager.windows) { var window = console.viewManager.windows[w]; var textbox = window.document.getElementById("paint-hack"); if (textbox) { textbox.value = " "; textbox.value = ""; } } if (!i) i = 0; if (i < 4) setTimeout (paintHack, 250, i + 1); } function fetchLaunchCount() { ++console.prefs["startupCount"]; if (!toBool(console.prefs["permitStartupHit"])) return; function onLoad () { var ary = String(r.responseText).match(/(\d+)/); if (ary) { display (getMsg(MSN_LAUNCH_COUNT, [console.prefs["startupCount"], ary[1]])); } }; try { var r = new XMLHttpRequest(); r.onload = onLoad; r.open ("GET", __vnk_counter_url + "?local=" + console.prefs["startupCount"] + "&version=" + __vnk_version); r.send (null); } catch (ex) { // Oops. Probably missing the xmlextras extension, can't really do // much about that. display(getMsg(MSN_LAUNCH_COUNT, [console.prefs["startupCount"], MSG_VAL_UNKNOWN])); } } function getCommandEnabled(command) { try { var dispatcher = top.document.commandDispatcher; var controller = dispatcher.getControllerForCommand(command); return controller.isCommandEnabled(command); } catch (e) { return false; } } function doCommand(command) { try { var dispatcher = top.document.commandDispatcher; var controller = dispatcher.getControllerForCommand(command); if (controller && controller.isCommandEnabled(command)) controller.doCommand(command); } catch (e) { } } console.__defineGetter__ ("userAgent", con_ua); function con_ua () { var ary = navigator.userAgent.match (/;\s*([^;\s]+\s*)\).*\/(\d+)/); if (ary) { return ("Venkman " + __vnk_version + __vnk_versionSuffix + " [Mozilla " + ary[1] + "/" + ary[2] + "]"); } return ("Venkman " + __vnk_version + __vnk_versionSuffix + " [" + navigator.userAgent + "]"); } console.hooks = new Object(); console.hooks["hook-script-instance-sealed"] = function hookScriptSealed (e) { var url = e.scriptInstance.url; if (!("componentPath" in console)) { const VNK_SVC = "venkman-service.js"; if (url.substr(-VNK_SVC.length) == VNK_SVC) { if (!console.prefs["enableChromeFilter"]) { dispatch ("debug-instance-on", { scriptInstance: e.scriptInstance }); } console.componentPath = url.substr(0, url.length - VNK_SVC.length); } } for (var fbp in console.fbreaks) { if (console.fbreaks[fbp].enabled && url.indexOf(console.fbreaks[fbp].url) != -1) { e.scriptInstance.setBreakpoint(console.fbreaks[fbp].lineNumber, console.fbreaks[fbp]); } } } console.hooks["hook-debug-stop"] = function hookDebugStop (e) { var jsdFrame = setCurrentFrameByIndex(0); var type = console.trapType; //var frameRec = console.stackView.stack.childData[0]; //console.pushStatus (getMsg(MSN_STATUS_STOPPED, [frameRec.functionName, // frameRec.location])); var showHeader = (type != jsdIExecutionHook.TYPE_INTERRUPTED || console._lastStackDepth != console.frames.length); var sourceContext = (type == jsdIExecutionHook.TYPE_INTERRUPTED) ? 0 : 2 displayFrame (jsdFrame, 0, showHeader, sourceContext); var scriptWrapper = getScriptWrapper(jsdFrame.script); if (scriptWrapper) { dispatchCommand (console.coFindScript, { scriptWrapper: scriptWrapper, targetPc: jsdFrame.pc }) } console._lastStackDepth = console.frames.length; enableDebugCommands(); //XXX //paintHack(); } console.hooks["hook-venkman-query-exit"] = function hookQueryExit (e) { if ("frames" in console) { if (confirm(MSG_QUERY_CLOSE)) { dispatch ("cont"); console.__exitAfterContinue__ = true; } e.returnValue = false; } } console.hooks["eval"] = function hookEval() { for (var i = 0; i < $.length; ++i) $[i].refresh(); } /* exceptions */ /* keep this list in sync with exceptionMsgNames in venkman-msg.js */ const ERR_NOT_IMPLEMENTED = 0; const ERR_REQUIRED_PARAM = 1; const ERR_INVALID_PARAM = 2; const ERR_SUBSCRIPT_LOAD = 3; const ERR_NO_DEBUGGER = 4; const ERR_FAILURE = 5; const ERR_NO_STACK = 6; /* venkman exception class */ function BadMojo (errno, params) { var msg = getMsg(exceptionMsgNames[errno], params); dd ("new BadMojo (" + errno + ": " + msg + ") from\n" + getStackTrace()); this.message = msg; this.errno = errno; this.fileName = Components.stack.caller.filename; this.lineNumber = Components.stack.caller.lineNumber; this.functionName = Components.stack.caller.name; } BadMojo.prototype.toString = function bm_tostring () { return formatException (this); } function Failure (reason) { if (typeof reason == "undefined") reason = MSG_ERR_DEFAULT_REASON; var obj = new BadMojo(ERR_FAILURE, [reason]); obj.fileName = Components.stack.caller.filename; obj.lineNumber = Components.stack.caller.lineNumber; obj.functionName = Components.stack.caller.name; return obj; } function InvalidParam (name, value) { var obj = new BadMojo(ERR_INVALID_PARAM, [name, String(value)]); obj.fileName = Components.stack.caller.filename; obj.lineNumber = Components.stack.caller.lineNumber; obj.functionName = Components.stack.caller.name; return obj; } function RequiredParam (name) { var obj = new BadMojo(ERR_REQUIRED_PARAM, name); obj.fileName = Components.stack.caller.filename; obj.lineNumber = Components.stack.caller.lineNumber; obj.functionName = Components.stack.caller.name; return obj; } /* console object */ console.display = display; console.dispatch = dispatch; console.dispatchCommand = dispatchCommand; console.evalCount = 1; console.metaDirectives = new Object(); console.metaDirectives["JSD_LOG"] = console.metaDirectives["JSD_BREAK"] = console.metaDirectives["JSD_EVAL"] = function metaBreak (scriptInstance, line, matchResult) { var scriptWrapper = scriptInstance.getScriptWrapperAtLine(line); if (!scriptWrapper) { display (getMsg(MSN_ERR_NO_FUNCTION, [line, scriptInstance.url]), MT_ERROR); return; } var pc = scriptWrapper.jsdScript.lineToPc(line, PCMAP_SOURCETEXT); if (scriptWrapper.getBreakpoint(pc)) return; var sourceLine = scriptWrapper.jsdScript.pcToLine(pc, PCMAP_SOURCETEXT); var breakpoint = setFutureBreakpoint (scriptWrapper.jsdScript.fileName, sourceLine); scriptWrapper.setBreakpoint (pc, breakpoint); matchResult[2] = stringTrim(matchResult[2]); switch (matchResult[1]) { case "JSD_LOG": breakpoint.conditionEnabled = true; breakpoint.condition = "return eval(" + matchResult[2].quote() + ")"; breakpoint.resultAction = BREAKPOINT_STOPNEVER; breakpoint.logResult = true; break; case "JSD_BREAK": if (matchResult[2]) { breakpoint.conditionEnabled = true; breakpoint.condition = "return eval(" + matchResult[2].quote() + ")"; breakpoint.resultAction = BREAKPOINT_STOPTRUE; } else { breakpoint.resultAction = BREAKPOINT_STOPALWAYS; } break; case "JSD_EVAL": breakpoint.conditionEnabled = true; breakpoint.condition = "return eval(" + matchResult[2].quote() + ")"; breakpoint.resultAction = BREAKPOINT_STOPNEVER; break; } } console.__defineGetter__ ("status", con_getstatus); function con_getstatus () { return console.ui["status-text"].getAttribute ("label"); } console.__defineSetter__ ("status", con_setstatus); function con_setstatus (msg) { var topMsg = console._statusStack[console._statusStack.length - 1]; if (msg) { if ("_statusTimeout" in console) { clearTimeout (console._statusTimeout); delete console._statusTimeout; } if (msg != topMsg) { console._statusTimeout = setTimeout (con_setstatus, console.prefs["statusDuration"], null); } } else { msg = topMsg; } console.ui["status-text"].setAttribute ("label", msg); } console.__defineGetter__ ("pp_stopLine", con_getppline); function con_getppline () { if (!("frames" in console)) return (void 0); if (!("_pp_stopLine" in this)) { var frame = getCurrentFrame(); this._pp_stopLine = frame.script.pcToLine(frame.pc, PCMAP_PRETTYPRINT); } return this._pp_stopLine; } console.pushStatus = function con_pushstatus (msg) { console._statusStack.push (msg); console.status = msg; } console.popStatus = function con_popstatus () { console._statusStack.pop(); console.status = console._statusStack[console._statusStack.length - 1]; } function SourceText (scriptInstance) { this.lines = new Array(); this.tabWidth = console.prefs["tabWidth"]; if (scriptInstance instanceof ScriptInstance) { this.scriptInstance = scriptInstance; this.url = scriptInstance.url; this.jsdURL = JSD_URL_SCHEME + "source?location=" + encodeURIComponent(this.url) + "&instance=" + scriptInstance.sequence; } else { /* assume scriptInstance is a string containing the filename */ this.url = scriptInstance; this.jsdURL = JSD_URL_SCHEME + "source?location=" + encodeURIComponent(this.url); } this.shortName = abbreviateWord(getFileFromPath (this.url), 30); } SourceText.prototype.noteFutureBreakpoint = function st_notefbreak(line, state) { if (!ASSERT(!("scriptInstance" in this), "Don't call noteFutureBreakpoint on a SourceText with a " + "scriptInstance, use the scriptManager instead.")) { return; } if (state) arrayOrFlag (this.lineMap, line - 1, LINE_FBREAK); else arrayAndFlag (this.lineMap, line - 1, ~LINE_FBREAK); } SourceText.prototype.onMarginClick = function st_marginclick (e, line) { //dd ("onMarginClick"); if (!("scriptInstance" in this)) { if (getFutureBreakpoint(this.url, line)) { clearFutureBreakpoint(this.url, line); } else { setFutureBreakpoint(this.url, line); //dispatch ("fbreak", { urlPattern: this.url, lineNumber: line }); } } else { var parentBP = getFutureBreakpoint(this.url, line); if (parentBP) { if (this.scriptInstance.hasBreakpoint(line)) this.scriptInstance.clearBreakpoint(line); else clearFutureBreakpoint(this.url, line); } else { if (this.scriptInstance.hasBreakpoint(line)) { this.scriptInstance.clearBreakpoint(line); } else { parentBP = setFutureBreakpoint(this.url, line); this.scriptInstance.setBreakpoint (line, parentBP); } } } } SourceText.prototype.isLoaded = false; SourceText.prototype.reloadSource = function st_reloadsrc (cb) { function reloadCB (status) { if (typeof cb == "function") cb(status); } this.isLoaded = false; this.lines = new Array(); delete this.markup; delete this.charset; this.loadSource(reloadCB); } SourceText.prototype.onSourceLoaded = function st_oncomplete (data, url, status) { //dd ("source loaded " + url + ", " + status); var sourceText = this; function callall (status) { while (sourceText.loadCallbacks.length) { var cb = sourceText.loadCallbacks.pop(); cb (status); } delete sourceText.loadCallbacks; }; delete this.isLoading; if (status != Components.results.NS_OK) { dd ("loadSource failed with status " + status + ", " + url); callall (status); return; } if (!ASSERT(data, "loadSource succeeded but got no data")) data = ""; var matchResult; // search for xml charset if (data.substring(0, 5) == "")); matchResult = s.match(/encoding\s*=\s*([\"\'])([^\"\'\s]+)\1/i); if (matchResult) this.charset = matchResult[2]; } // kill control characters, except \t, \r, and \n data = data.replace(/[\x00-\x08]|[\x0B\x0C]|[\x0E-\x1F]/g, "?"); // check for a html style charset declaration if (!("charset" in this)) { matchResult = data.match(/meta\s+http-equiv.*content-type.*charset\s*=\s*([^\;\"\'\s]+)/i); if (matchResult) this.charset = matchResult[1]; } // look for an emacs mode line matchResult = data.match (/-\*-.*tab-width\:\s*(\d+).*-\*-/); if (matchResult) this.tabWidth = matchResult[1]; // replace tabs data = data.replace(/\x09/g, leftPadString ("", this.tabWidth, " ")); var ary = data.split(/\r\n|\n|\r/m); if (0) { for (var i = 0; i < ary.length; ++i) { /* * The replace() strips control characters, we leave the tabs in * so we can expand them to a per-file width before actually * displaying them. */ ary[i] = ary[i].replace(/[\x00-\x08]|[\x0A-\x1F]/g, "?"); if (!("charset" in this)) { matchResult = ary[i].match(charsetRE); if (matchResult) this.charset = matchResult[1]; } } } this.lines = ary; if ("scriptInstance" in this) { this.scriptInstance.guessFunctionNames(sourceText); this.lineMap = this.scriptInstance.lineMap; } else { this.lineMap = new Array(); for (var fbp in console.fbreaks) { var fbreak = console.fbreaks[fbp]; if (fbreak.url == this.url) arrayOrFlag (this.lineMap, fbreak.lineNumber - 1, LINE_FBREAK); } } this.isLoaded = true; dispatch ("hook-source-load-complete", { sourceText: sourceText, status: status }); callall(status); } SourceText.prototype.loadSource = function st_loadsrc (cb) { var sourceText = this; function onComplete (data, url, status) { //dd ("loaded " + url + " with status " + status + "\n" + data); sourceText.onSourceLoaded (data, url, status); }; if (this.isLoaded) { /* if we're loaded, callback right now, and return. */ cb (Components.results.NS_OK); return; } if ("isLoading" in this) { /* if we're in the process of loading, make a note of the callback, and * return. */ if (typeof cb == "function") this.loadCallbacks.push (cb); return; } else this.loadCallbacks = new Array(); if (typeof cb == "function") this.loadCallbacks.push (cb); this.isLoading = true; var ex; var src; var url = this.url; if (url.search (/^javascript:/i) == 0) { src = url; delete this.isLoading; } else { try { loadURLAsync (url, { onComplete: onComplete }); return; } catch (ex) { display (getMsg(MSN_ERR_SOURCE_LOAD_FAILED, [url, ex]), MT_ERROR); onComplete (src, url, Components.results.NS_ERROR_FAILURE); return; } } onComplete (src, url, Components.results.NS_OK); } function PPSourceText (scriptWrapper) { this.scriptWrapper = scriptWrapper; this.reloadSource(); this.shortName = scriptWrapper.functionName; this.jsdURL = JSD_URL_SCHEME + "pprint?scriptWrapper=" + scriptWrapper.tag; } PPSourceText.prototype.isLoaded = true; PPSourceText.prototype.reloadSource = function ppst_reload (cb) { try { var jsdScript = this.scriptWrapper.jsdScript; this.tabWidth = console.prefs["tabWidth"]; this.url = jsdScript.fileName; var lines = String(jsdScript.functionSource).split("\n"); var lineMap = new Array(); var len = lines.length; for (var i = 0; i < len; ++i) { if (jsdScript.isLineExecutable(i + 1, PCMAP_PRETTYPRINT)) lineMap[i] = LINE_BREAKABLE; } for (var b in this.scriptWrapper.breaks) { var line = jsdScript.pcToLine(this.scriptWrapper.breaks[b].pc, PCMAP_PRETTYPRINT); arrayOrFlag (lineMap, line - 1, LINE_BREAK); } this.lines = lines; this.lineMap = lineMap; delete this.markup; if (typeof cb == "function") cb (Components.results.NS_OK); } catch (ex) { ASSERT(0, "caught exception reloading pretty printed source " + ex); if (typeof cb == "function") cb (Components.results.NS_ERROR_FAILURE); this.lines = [String(MSG_CANT_PPRINT)]; this.lineMap = [0]; } } PPSourceText.prototype.onMarginClick = function ppst_marginclick (e, line) { try { var jsdScript = this.scriptWrapper.jsdScript; var pc = jsdScript.lineToPc(line, PCMAP_PRETTYPRINT); if (this.scriptWrapper.hasBreakpoint(pc)) this.scriptWrapper.clearBreakpoint(pc); else this.scriptWrapper.setBreakpoint(pc); } catch (ex) { ASSERT(0, "onMarginClick caught exception " + ex); } } function HelpText () { this.tabWidth = console.prefs["tabWidth"]; this.jsdURL = this.url = JSD_URL_SCHEME + "help"; this.shortName = this.url; this.reloadSource(); } HelpText.prototype.isLoaded = true; HelpText.prototype.reloadSource = function ht_reload (cb) { var ary = console.commandManager.list(); var str = ""; for (var c in ary) { str += "\n ===\n" + ary[c].getDocumentation(formatCommandFlags); } this.lines = str.split("\n"); if (typeof cb == "function") cb (Components.results.NS_OK); } PK BKT1ccontent/venkman/ff/contents.rdfPK BKT1 Q<content/venkman/sm/contents.rdfPK Wg3l4 Nskin/modern/venkman/contents.rdfPK Wg3S= = ncontent/venkman/venkman.xulPK y0_H&H&!content/venkman/venkman-views.xulPK Wg3[ #kDcontent/venkman/venkman-floater.xulPK y0%H H "Pcontent/venkman/venkman-floater.jsPK QM58a|qq$]content/venkman/venkman-bindings.xmlPK Wg3Kx55!qcontent/venkman/venkman-menus.xulPK  5u(( 7content/venkman/venkman-menus.jsPK Wg3~ii#content/venkman/venkman-scripts.xulPK N:77I%MK#h#h 9content/venkman/venkman-utils.jsPK B_y5W<&!&!'content/venkman/venkman-dev.jsPK p07ĝ#Hcontent/venkman/venkman-handlers.jsPK #n5V>#bcontent/venkman/venkman-debugger.jsPK =%7@(::#?content/venkman/venkman-profiler.jsPK q4}~~!zcontent/venkman/venkman-jsdurl.jsPK y0 ɥ%content/venkman/venkman-url-loader.jsPK  5`']pp# content/venkman/venkman-commands.jsPK y0~JGF F content/venkman/venkman-prefs.jsPK y0}? -content/venkman/venkman-eval.jsPK y0Efs"content/venkman/venkman-msg.jsPK y0jM!^1content/venkman/venkman-munger.jsPK ];7A Gcontent/venkman/venkman-views.jsPK l)7̷Ʉ"Pcontent/venkman/venkman-records.jsPK y0pd #content/venkman/venkman-bpprops.xulPK UX1Ga"content/venkman/venkman-bpprops.jsPK h4sОf* content/venkman/tree-utils.jsPK 0^L))content/venkman/file-utils.jsPK y0[#content/venkman/html-consts.jsPK y0,Acontent/venkman/pref-manager.jsPK h5F,L_L_" content/venkman/command-manager.jsPK y02ē@@kcontent/venkman/menu-manager.jsPK a47( ƫcontent/venkman/view-manager.jsPK *r}$#l content/venkman/tests/testpage.htmlPK y0ᒊGGq content/venkman/tests/tree.jsPK ǎ,ګe{IIG content/venkman/tests/tree.xulPK L-5=<<#̋ content/venkman/venkman-overlay.xulPK cY(50ۄ "I content/venkman/venkman-overlay.jsPK Uv71BB skin/modern/venkman/venkman.cssPK z7B B locale/en-US/venkman/venkman.dtdPK 7jj' locale/en-US/venkman/venkman.propertiesPK y0r. locale/en-US/venkman/venkman-output-locale.cssPK L-5!!( locale/en-US/venkman/venkman-overlay.dtdPK z7zz% locale/en-US/venkman/venkman-help.tplPK F3<˙$ locale/en-US/venkman/profile.csv.tplPK F3,$ locale/en-US/venkman/profile.txt.tplPK -πD % locale/en-US/venkman/profile.html.tplPK F3#$ locale/en-US/venkman/profile.xml.tplPK Î,W 8*% content/venkman/venkman-output-window.htmlPK y0=Z  'R( content/venkman/venkman-output-base.cssPK BKT1$o/'5 skin/modern/venkman/venkman-overlay.cssPK ̎,6$= skin/modern/venkman/images/clear.pngPK ͎, %]> skin/modern/venkman/images/shaded.pngPK .88&@? skin/modern/venkman/images/new-tab.pngPK ˎ,gE??)@ skin/modern/venkman/images/arrow-left.pngPK ̎,/@DD*BB skin/modern/venkman/images/arrow-right.pngPK ̎,??'C skin/modern/venkman/images/arrow-up.pngPK ˎ,n>>)RE skin/modern/venkman/images/arrow-down.pngPK ώ,*)).F skin/modern/venkman/images/view-pop-button.pngPK ώ,0LH skin/modern/venkman/images/view-close-button.pngPK [!+"#II skin/modern/venkman/images/stop.pngPK [!++NM skin/modern/venkman/images/stop-checked.pngPK [!+⸍33/Q skin/modern/venkman/images/stop-checked-hov.pngPK [!+^'Z skin/modern/venkman/images/stop-hov.pngPK [!+ '5b skin/modern/venkman/images/stop-act.pngPK [!+rrr'>f skin/modern/venkman/images/stop-dis.pngPK [,ڕ&i skin/modern/venkman/images/profile.pngPK [,ڕ*n skin/modern/venkman/images/profile-act.pngPK [,o.s skin/modern/venkman/images/profile-checked.pngPK [,TP*z skin/modern/venkman/images/profile-hov.pngPK [,] 2 skin/modern/venkman/images/profile-checked-hov.pngPK [, zh* skin/modern/venkman/images/prettyprint.pngPK [, zh. skin/modern/venkman/images/prettyprint-act.pngPK [,H;AA2 skin/modern/venkman/images/prettyprint-checked.pngPK [,  .q skin/modern/venkman/images/prettyprint-hov.pngPK [,C 6Ԩ skin/modern/venkman/images/prettyprint-checked-hov.pngPK [!+r_#! skin/modern/venkman/images/cont.pngPK [!+?KR' skin/modern/venkman/images/cont-hov.pngPK [!+t"La'5 skin/modern/venkman/images/cont-act.pngPK [!+ՏFF' skin/modern/venkman/images/cont-dis.pngPK [!+X@Ш^^( skin/modern/venkman/images/step-into.pngPK [!+8Hbb,> skin/modern/venkman/images/step-into-hov.pngPK [!+t^^, skin/modern/venkman/images/step-into-act.pngPK [!+?$, skin/modern/venkman/images/step-into-dis.pngPK [!+ __( skin/modern/venkman/images/step-over.pngPK [!+m,D skin/modern/venkman/images/step-over-hov.pngPK [!+Is__,v skin/modern/venkman/images/step-over-act.pngPK [!+fP, skin/modern/venkman/images/step-over-dis.pngPK [!+Q~#N77' skin/modern/venkman/images/step-out.pngPK [!+h|C{{+o skin/modern/venkman/images/step-out-hov.pngPK [!+01N22+3 skin/modern/venkman/images/step-out-act.pngPK [!++ skin/modern/venkman/images/step-out-dis.pngPK e3^+$@nn. skin/modern/venkman/images/breakpoint-line.gifPK SS,u9,5Q skin/modern/venkman/images/breakpoint-future-line.gifPK ̎,FpہRR0B skin/modern/venkman/images/breakpoint-future.gifPK e3^+II( skin/modern/venkman/images/code-line.gifPK =+,OCII,q skin/modern/venkman/images/code-line-dis.gifPK Ў,[T& skin/modern/venkman/images/windows.pngPK Ў, U%L skin/modern/venkman/images/window.pngPK ̎,r