Home directory for Malawi's wwwroot
Duncan Ewan
2021-02-19 3e758c29e0fde36fc088efcfc88f9a3014432b64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
Êþº¾-Æ
SourceFile7/app/coldfusion10/cfusion/wwwroot/acc/cms_graphview.cfmcfcms_graphview2ecfm2018673132coldfusion/runtime/CFPage<init>()V 
    bindPageVariablesD(Lcoldfusion/runtime/VariableScope;Lcoldfusion/runtime/LocalScope;)V coldfusion/runtime/CfJspPage
 NAMELcoldfusion/runtime/Variable;bindPageVariabler(Ljava/lang/String;Lcoldfusion/runtime/VariableScope;Lcoldfusion/runtime/LocalScope;)Lcoldfusion/runtime/Variable; 
     DEPENDENCY_ICON      DEPENDANT_ID      PATH" "    $    DEPENDANT& &    (DEPENDANT_ICON* *    ,DEPENDANT_TYPE. .    0
DEPENDENCY2 2    4ID6 6    8COLOR: :    <URL> >    @ RELATIONSHIPB B    DTYPEF F    H DEPENDENCY_IDJ J    LDEPENDENCY_TYPEN N    Pcom.macromedia.SourceModTimeNœÑ½  pageContext#Lcoldfusion/runtime/NeoPageContext; UV    WgetOut()Ljavax/servlet/jsp/JspWriter; YZjavax/servlet/jsp/JspContext\
][parentLjavax/servlet/jsp/tagext/Tag; _`    acom.adobe.coldfusion.*cbindImportPath(Ljava/lang/String;)V ef
gROOTiURL.ROOTk isDefinedCanonicalVariableAndKeyD(Lcoldfusion/runtime/Variable;Ljava/lang/String;Ljava/lang/String;)Z mn
o
q _whitespace%(Ljava/io/Writer;Ljava/lang/String;)V st
u$class$coldfusion$tagext$sql$QueryTagLjava/lang/Class;coldfusion.tagext.sql.QueryTagyforName%(Ljava/lang/String;)Ljava/lang/Class; {|java/lang/Class~
} wx    _initTagP(Ljava/lang/Class;ILjavax/servlet/jsp/tagext/Tag;)Ljavax/servlet/jsp/tagext/Tag; ƒ„
…coldfusion/tagext/sql/QueryTag‡_setCurrentLineNo(I)V ‰Š
‹cfqueryname    all_links‘_validateTagAttrValue\(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; “”
•setName —f
ˆ˜
datasourceš APPLICATIONœjava/lang/StringžDBCONN _resolveAndAutoscalarize9(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object; ¢£
¤\(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; “¦
§ setDatasource(Ljava/lang/Object;)V ©ª
ˆ«    hasEndTag(Z)V ­®coldfusion/tagext/GenericTag°
±¯
doStartTag()I ³´
ˆµ    _pushBody_(Ljavax/servlet/jsp/tagext/BodyTag;ILjavax/servlet/jsp/JspWriter;)Ljavax/servlet/jsp/JspWriter; ·¸
¹
    select
      A.id DEPENDANT_ID, A.NAME DEPENDANT, ci1t.NAME dependant_type, ci1t.icon dependant_icon,
      a.type, cilt.NAME relationship, 
      A.DEPENDENCY_ID DEPENDENCY_ID, ci2.name DEPENDENCY, ci2t.NAME DEPENDENCY_type, ci2t.icon dependency_icon,
      a.l "Level"
    from (
      select distinct 
        ci1.id, ci1.NAME, ci1.type dependant_type,
        cil.DEPENDENCY_ID, cil.type,
        Level l 
      from CMS_CONFIG_ITEMS ci1  
      left join CMS_CONFIG_ITEM_LINKS cil on cil.DEPENDANT_ID = id
      where level > 1  
      start with ci1.id = »write ½fjava/io/Writer¿
À¾)class$coldfusion$tagext$sql$QueryParamTag#coldfusion.tagext.sql.QueryParamTagà Âx    Å#coldfusion/tagext/sql/QueryParamTagÇ cfqueryparamÉ    cfsqltypeËCF_SQL_integerÍ setCfsqltype Ïf
ÈÐvalueÒsetValue Ôª
ÈÕ _emptyTcfTag!(Ljavax/servlet/jsp/tagext/Tag;)Z ר
Ù    
      connect by prior ci1.id = cil.DEPENDENCY_ID
    ) A
    join CMS_CONFIG_ITEM_TYPES ci1t on a.dependant_type = ci1t.id
    join CMS_CONFIG_ITEMS ci2 on ci2.id = A.DEPENDENCY_ID
    join CMS_CONFIG_ITEM_TYPES ci2t on ci2.TYPE = ci2t.id
    join CMS_CI_LINK_TYPES cilt on cilt.ID = a.type
Û doAfterBody Ý´
ˆÞ_popBody=(ILjavax/servlet/jsp/JspWriter;)Ljavax/servlet/jsp/JspWriter; àá
âdoEndTag ä´
ˆådoCatch(Ljava/lang/Throwable;)V çè
ˆé    doFinally ë
ˆìG
    select 
      cil.DEPENDANT_ID DEPENDANT_ID, ci1.name dependant, ci1t.NAME dependant_type, ci1t.icon dependant_icon,
      cil.type, cilt.NAME relationship, 
      cil.DEPENDENCY_ID DEPENDENCY_ID, ci2.name DEPENDENCY, ci2t.NAME DEPENDENCY_type, ci2t.icon dependency_icon 
    from CMS_CONFIG_ITEM_LINKS cil
    join CMS_CONFIG_ITEMS ci1 on ci1.ID = cil.DEPENDANT_ID 
    join CMS_CONFIG_ITEM_TYPES ci1t on ci1.TYPE = ci1t.id
    join CMS_CONFIG_ITEMS ci2 on ci2.id = cil.DEPENDENCY_ID
    join CMS_CONFIG_ITEM_TYPES ci2t on ci2.TYPE = ci2t.id
    join CMS_CI_LINK_TYPES cilt on cilt.ID = cil.type
î
 
ð links_typesò2
    select id, name, color from CMS_CI_LINK_TYPES
ô
node_iconsö/
    select id, name, path from CMS_Graph_Icons
ø§
    
<!DOCTYPE html>
<html>
<head>
    <title>CMS Graph View</title>
    <style>    
    
    svg {
        border: 1px solid #333;
        border-radius: 3px;
        padding: 5px;
    }
    
    ú$class$coldfusion$tagext$io$OutputTagcoldfusion.tagext.io.OutputTagý üx    ÿcoldfusion/tagext/io/OutputTagcfoutputquerysetQuery ªcoldfusion/tagext/QueryLoop    
 
 
µ
        .link-path- _autoscalarize1(Lcoldfusion/runtime/Variable;)Ljava/lang/Object; 
_String&(Ljava/lang/Object;)Ljava/lang/String; coldfusion/runtime/Cast
 {
            stroke:=;
            fill: none;
            stroke-width: 1px;
        }
        .link-arrow-${
              stroke-width: 1px;
            fill:    ;
        }
    
Þ
 
å
 
é
ì
    
    g.node {
      fill: #ccc;
      stroke: #333;
      stroke-width: 1.5px;
      cusror:pointer;
    }
    text {
      font: 10px sans-serif;
      pointer-events: none;
      text-shadow: 0 1px 0 #fff, 1px 0 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff;
    }
    </style>
</head>
<body>
    
    %'class$coldfusion$tagext$lang$IncludeTag!coldfusion.tagext.lang.IncludeTag( 'x    *!coldfusion/tagext/lang/IncludeTag,    cfinclude.template0 /acc/jquery-include-template.cfm2 setTemplate 4f
-5d
    <script type="text/javascript" src="js/d3.min.js"></script>
    
    
    <script>
        var links = [
        7
            { child_id:"9", child_name:";", child_type:"=", child_icon:"?",
                relationship:"A    ", type:"C",
                parent_id:"E", parent_name:"G", parent_type:"I", parent_icon:"K" },
        M 
        ];
        
        var node_icons = {O
            "Q" : "S",
        U};
        
        var links_colors = {WÂ};
        
        var nodes = {};
        links.forEach(function(link){
            link.source = nodes[link.child_id] || (nodes[link.child_id] = {id:link.child_id, name:link.child_name, type:link.child_type, icon:link.child_icon});
            link.target = nodes[link.parent_id] || (nodes[link.parent_id] = {id:link.parent_id, name:link.parent_name, type:link.parent_type, icon:link.parent_icon});
        });
        console.log("Nodes: %o", nodes);
        
        var width = 960, height = 500;
                    
        var force = d3.layout.force()
                    .nodes(d3.values(nodes))
                    .links(links)
                    .size([width,height])
                    .linkDistance(60)
                    .charge(-300)
                    .on("tick", tick)
                    .start();
        
        var svg = d3.select("body").append("svg")
                    .attr("width", width)
                    .attr("height", height)
                    .on("contextmenu", function(d,i) {
                        console.log("Right click on SVG");
                        d3.event.preventDefault();//stop showing browser menu
                    });
                    
        var link_types = [Y
 
            {id:"[    ", name:"]"},
        _à];         
        
        svg.append("defs").selectAll("marker")
                .data(link_types)
            .enter().append("marker")
                .attr("id", function(d){return d.id})
                .attr("viewBox", "0 -5 10 10")
                .attr("refX", 15)
                .attr("refY", -1.5)
                .attr("markerWidth", 8)
                .attr("markerHeight", 8)
                .attr("orient", "auto")
            .append("path")
                .attr("class", function(d){return "link-arrow-" + d.id;})
                .attr("d","M0,-5L10,0L0,5");
                    
        var path = svg.append("g").selectAll("path")
                .data(force.links())
            .enter().append("line")
                .attr("class", function(d){return "link-path-" + d.type;})
                .attr("marker-end", function(d){return "url(#"+d.type+")";});
        
        var circle_path = "m 40,20 c 0,10 -10,20 -20,20 -10,0 -20,-10 -20,-20 0,-10 10,-20 20,-20 10,0 20,10 20,20 z";
        
        var elements = svg.append("g").selectAll("g")
                .data(force.nodes())
            .enter().append("g")
                .attr("class", "node")
                .call(force.drag)
                .on("contextmenu", function(d,i) {
                     console.log("Right click: %o %s", d.id, d.name);
                     
                     d3.event.preventDefault();
                });
                
        elements.append("g")    
                .attr("transform", "scale(0.4) translate(-20,-20)")
                .append("path")            
                .attr("d", function(d){if(d.icon != "") return node_icons[d.icon]; else return circle_path;});    
                
        var text = svg.append("g").selectAll("text")
                .data(force.nodes())
            .enter().append("text")
                .attr("class", "node-text")
                .attr("x", "-12")
                .attr("y", "-12")
                .text(function(d){return d.name});// TODO: Show d.type
            
        function tick() {         
            path.attr("x1", function(d){return d.source.x})
                .attr("y1", function(d){return d.source.y})
                .attr("x2", function(d){return d.target.x})
                .attr("y2", function(d){return d.target.y});    
            
            elements.attr("transform", transform);
            text.attr("transform", transform);
        }
        
        function transform(d) {
            return "translate(" + d.x + "," + d.y + ")";
        }
        
    </script>
 
</body>
</html>
ametaDataLjava/lang/Object; cd    e&coldfusion/runtime/AttributeCollectiongjava/lang/Objecti([Ljava/lang/Object;)V k
hlthis Lcfcms_graphview2ecfm2018673132;LocalVariableTableCode<clinit>varscope"Lcoldfusion/runtime/VariableScope;locscopeLcoldfusion/runtime/LocalScope; getMetadata()Ljava/lang/Object;runPageoutLjavax/servlet/jsp/JspWriter;query1 Lcoldfusion/tagext/sql/QueryTag;mode1I queryparam0%Lcoldfusion/tagext/sql/QueryParamTag;t7t8Ljava/lang/Throwable;t9t10t11t12t13query2mode2t16t17t18t19t20t21query3mode3t24t25t26t27t28t29query4mode4t32t33t34t35t36t37output5 Lcoldfusion/tagext/io/OutputTag;mode5t40t41t42t43include6#Lcoldfusion/tagext/lang/IncludeTag;output7mode7t47t48t49t50output8mode8t53t54t55t56output9mode9t59t60t61t62output10mode10t65t66t67t68LineNumberTablejava/lang/ThrowableÄ1"&*.26:>BFJNwxÂxüx'xcdq#*·
±p norqN0z¸€³‚ĸ€³Æþ¸€³)¸€³+»hY½j·m³f±p 0no qí»*+,·**+,¶µ**+,¶µ**+,¶µ!**#+,¶µ%**'+,¶µ)**++,¶µ-**/+,¶µ1**3+,¶µ5**7+,¶µ9**;+,¶µ=**?+,¶µA**C+,¶µE**G+,¶µI**K+,¶µM**O+,¶µQ±p »no»st»uvwxq"²f°p noyxq“    E-*´X¶^L*´bN*d¶h**´Ajl¶p™-*+r¶v*²‚-¶†Àˆ:*¶ŒŽ’¸–¶™Ž›*½ŸY¡S¶¥¸¨¶¬¶²¶¶Y6™•*+¶ºL+¼¶Á*²Æ¶†ÀÈ:*¶ŒÊÌθ–¶ÑÊÓ*?½ŸYjS¶¥¸¨¶Ö¶²¸Ú™:¨%¨]°+ܶÁ¶ßšÿ•¨§:¨¿:    *+¶ãL©    ¶æ  :
¨#
°¨§#:  ¶ê¨§: ¨ ¿: ¶í© *+r¶v§Ë*+r¶v*²‚-¶†Àˆ:*¶ŒŽ’¸–¶™Ž›*½ŸY¡S¶¥¸¨¶¬¶²¶¶Y6™5*+¶ºL+ï¶Á¶ßšÿõ¨§:¨¿:*+¶ãL©¶æ  :¨#°¨§#:¶ê¨§:¨¿:¶í©*+r¶v*+ñ¶v*²‚-¶†Àˆ:*'¶ŒŽó¸–¶™Ž›*½ŸY¡S¶¥¸¨¶¬¶²¶¶Y6™5*+¶ºL+õ¶Á¶ßšÿõ¨§:¨¿:*+¶ãL©¶æ  :¨#°¨§#:¶ê¨§:¨¿:¶í©*+ñ¶v*²‚-¶†Àˆ:*+¶ŒŽ÷¸–¶™Ž›*½ŸY¡S¶¥¸¨¶¬¶²¶¶Y6™5*+¶ºL+ù¶Á¶ßšÿõ¨§: ¨ ¿:!*+¶ãL©!¶æ  :"¨#"°¨§#:##¶ê¨§:$¨$¿:%¶í©%+û¶Á*²-¶†À:&*;¶Œ&󸨶 &¶²&¶ Y6'™j+¶Á+**´9¶¸¶Á+¶Á+**´=¶¸¶Á+¶Á+**´9¶¸¶Á+¶Á+**´=¶¸¶Á+ ¶Á&¶!šÿœ&¶"  :(¨#(°¨§#:)&)¶#¨§:*¨*¿:+&¶$©++&¶Á*²+-¶†À-:,*V¶Œ,/13¸–¶6,¶²,¸Ú™°+8¶Á*²-¶†À:-*]¶Œ-’¸¨¶ -¶²-¶ Y6.™î+:¶Á+**´!¶¸¶Á+<¶Á+**´)¶¸¶Á+>¶Á+**´1¶¸¶Á+@¶Á+**´-¶¸¶Á+B¶Á+**´E¶¸¶Á+D¶Á+**´I¶¸¶Á+F¶Á+**´M¶¸¶Á+H¶Á+**´5¶¸¶Á+J¶Á+**´Q¶¸¶Á+L¶Á+**´¶¸¶Á+N¶Á-¶!šÿ-¶"  :/¨#/°¨§#:0-0¶#¨§:1¨1¿:2-¶$©2+P¶Á*²-¶†À:3*d¶Œ3÷¸¨¶ 3¶²3¶ Y64™>+R¶Á+**´9¶¸¶Á+T¶Á+**´%¶¸¶Á+V¶Á3¶!šÿÈ3¶"  :5¨#5°¨§#:636¶#¨§:7¨7¿:83¶$©8+X¶Á*²    -¶†À:9*h¶Œ9󸨶 9¶²9¶ Y6:™>+R¶Á+**´9¶¸¶Á+T¶Á+**´=¶¸¶Á+V¶Á9¶!šÿÈ9¶"  :;¨#;°¨§#:<9<¶#¨§:=¨=¿:>9¶$©>+Z¶Á*²
-¶†À:?*†¶Œ?󸨶 ?¶²?¶ Y6@™>+\¶Á+**´9¶¸¶Á+^¶Á+**´¶¸¶Á+`¶Á?¶!šÿÈ?¶"  :A¨#A°¨§#:B?B¶#¨§:C¨C¿:D?¶$©D+b¶Á°AxÜöÅâóöÅöûöÅmÜ"Åâ"Å"ÅmÜ1Åâ1Å1Å".1Å161Å£¾ÁÅÁÆÁŘáíÅçêíŘáüÅçêüÅíùüÅüüÅk†‰Å‰Ž‰Å`©µÅ¯²µÅ`©Äů²ÄŵÁÄÅÄÉÄÅ,GJÅJOJÅ!jvÅpsvÅ!j…Åps…Åv‚…Å…Š…ÅÇEQÅKNQÅÇE`ÅKN`ÅQ]`Å`e`ÅâäðÅêíðÅâäÿÅêíÿÅðüÿÅÿÿÅC•¡Å›ž¡ÅC•°Å›ž°Å¡­°Å°µ°ÅôFRÅLORÅôFaÅLOaÅR^aÅafaŦøÅþŦøÅþÅÅÅp´E-no-z{-Òd-_`-|}-~-€-‚d-ƒ„-…d    -†d
-‡„ -ˆ„ -‰d -Š}-‹-Œ„-d-Žd-„-„-‘d-’}-“-”„-•d-–d-—„-˜„-™d-š}-›-œ„ -d!-žd"-Ÿ„#- „$-¡d%-¢£&-¤'-¥d(-¦„)-§„*-¨d+-©ª,-«£--¬.-­d/-®„0-¯„1-°d2-±£3-²4-³d5-´„6-µ„7-¶d8-·£9-¸:-¹d;-º„<-»„=-¼d>-½£?-¾@-¿dA-À„B-Á„C-ÂdDÃ’dBQQ£²²ˆ)m||SL5'D'D''ö+++Ü+¸;Ú<Ú<Ù<ð=ð=ï=AAACCCœ;•VxVÓ]õ^õ^ô^ ^ ^
^!^!^ ^7^7^6^M_M_L_c_c_b_y`y`x```Ž`¥`¥`¤`»`»`º`¶]4dVeVeUelelekedåhiiiiiiÈh—†¹‡¹‡¸‡χχ·y†RS