rwdfoldeditor 0.05 → 0.07
Sign up to get free protection for your applications and to get access to all the features.
- data/code/01rwdcore/01rwdcore.rb +5 -4
- data/code/01rwdcore/02helptexthashbegin.rb +14 -2
- data/code/01rwdcore/03helptexthash.rb +18 -20
- data/code/01rwdcore/jumplinkcommand.rb +1 -0
- data/code/01rwdcore/openhelpwindow.rb +7 -0
- data/code/01rwdcore/runhelpabout.rb +6 -1
- data/code/01rwdcore/runopentinkerdocument.rb +1 -1
- data/code/01rwdcore/selectiontab.rb +2 -0
- data/code/01rwdcore/setuphelpaboutoptions.rb +2 -0
- data/code/01rwdcore/setuptinkerdocuments.rb +1 -0
- data/code/01rwdcore/uploadreturns.rb +3 -0
- data/code/dd0viewphoto/dd0viewphoto.rb +2 -0
- data/code/superant.com.foldeditor/0uninstallapplet.rb +8 -1
- data/code/superant.com.foldeditor/addzipfiles.rb +45 -0
- data/code/superant.com.foldeditor/helptexthashload.rb +22 -0
- data/code/superant.com.foldeditor/launchfoldeditorurl.rb +5 -3
- data/code/superant.com.foldeditor/openhelpwindowrwdhyernote.rb +6 -2
- data/code/superant.com.rwdtinkerbackwindow/initiateapplets.rb +30 -102
- data/code/superant.com.rwdtinkerbackwindow/installgemapplet.rb +2 -0
- data/code/superant.com.rwdtinkerbackwindow/listgemzips.rb +2 -0
- data/code/superant.com.rwdtinkerbackwindow/listinstalledfiles.rb +3 -1
- data/code/superant.com.rwdtinkerbackwindow/listzips.rb +2 -0
- data/code/superant.com.rwdtinkerbackwindow/loadconfigurationrecord.rb +3 -1
- data/code/superant.com.rwdtinkerbackwindow/viewappletcontents.rb +1 -0
- data/code/superant.com.rwdtinkerbackwindow/viewlogfile.rb +8 -5
- data/code/zz0applicationend/zz0end.rb +2 -1
- data/configuration/rwdtinker.dist +3 -2
- data/configuration/rwdwfoldeditor.dist +7 -5
- data/configuration/tinkerwin2variables.dist +5 -9
- data/gui/tinkerbackwindows/superant.com.foldeditor/60zipfoldfiles.rwd +31 -0
- data/gui/tinkerbackwindows/superant.com.slideshow/10appletbegin.rwd +4 -0
- data/gui/tinkerbackwindows/superant.com.slideshow/11viewnamedata.rwd +19 -0
- data/gui/tinkerbackwindows/superant.com.slideshow/13listnamerecordfiles.rwd +21 -0
- data/gui/tinkerbackwindows/superant.com.slideshow/16editrecord.rwd +39 -0
- data/gui/tinkerbackwindows/superant.com.slideshow/17viewvcardrecord.rwd +32 -0
- data/gui/tinkerbackwindows/superant.com.slideshow/18contactutilities.rwd +34 -0
- data/gui/tinkerbackwindows/superant.com.slideshow/81jumplinkcommands.rwd +17 -0
- data/gui/tinkerbackwindows/{superant.com.foldwords/z9end.rwd → superant.com.slideshow/9end.rwd} +0 -0
- data/init.rb +61 -164
- data/installed/rwdwfoldeditor.inf +3 -8
- data/lang/en/rwdcore/en.po +182 -0
- data/lang/en/rwdfoldeditor/en.po +28 -0
- data/lang/es/rwdcore/es.po +175 -0
- data/lang/fr/rwdcore/fr.po +169 -0
- data/lang/hi/rwdcore/hi.po +173 -0
- data/lang/ja/rwdcore/ja.po +171 -0
- data/lang/nl/rwdcore/nl.po +169 -0
- data/lib/rwdtinker/rwdcodedir.rb +56 -0
- data/lib/rwdtinker/rwdguidir.rb +57 -0
- data/lib/rwdtinker/rwdlangdir.rb +60 -0
- data/lib/rwdtinker/rwdtinkertools.rb +2 -1
- data/rwd_files/HowTo_FoldEditor.txt +9 -0
- data/rwd_files/HowTo_Tinker.txt +24 -6
- data/rwd_files/Tinkerhelptexthash.txt +82 -0
- data/rwd_files/rubylinks.fld +6 -0
- data/rwd_files/rwdapplications.html +23 -1
- data/rwd_files/rwdfoldeditorhelpfiles.txt +17 -0
- data/tests/makedist-rwdwfoldeditor.rb +1 -1
- data/tests/makedist.rb +1 -1
- data/zips/rwdwfoldeditor-0.07.zip +0 -0
- data/zips/rwdwmovies-0.98.zip +0 -0
- data/zips/rwdwmpd-0.07.zip +0 -0
- data/zips/temp.rb +1 -0
- data/zips/tinkerbellw-0.03.zip +0 -0
- data/zips/{wrubyslippers-1.07.zip → wrubyslippers-1.08.zip} +0 -0
- metadata +33 -29
- data/code/01rwdcore/04helptextend.rb +0 -6
- data/code/superant.com.foldback/clearhttpview3.rb +0 -9
- data/code/superant.com.foldback/dictlookup.rb +0 -20
- data/code/superant.com.foldback/eliza.rb +0 -8
- data/code/superant.com.foldback/helptexthashrwdhypernote.rb +0 -19
- data/code/superant.com.foldback/listwordlookup.rb +0 -37
- data/code/superant.com.foldback/openhelpwindowrwdhyernote.rb +0 -13
- data/code/superant.com.foldback/runrwdshellwindow.rb +0 -12
- data/code/superant.com.foldeditor/helptexthashrwdhypernote.rb +0 -38
- data/code/superant.com.rwdtinkerbackwindow/helptexthashtinkerwin2.rb +0 -61
- data/gui/tinkerbackwindows/superant.com.foldwords/1appname.rwd +0 -4
- data/gui/tinkerbackwindows/superant.com.foldwords/1dictionary.rwd +0 -19
- data/gui/tinkerbackwindows/superant.com.foldwords/3ai.rwd +0 -22
- data/gui/tinkerbackwindows/superant.com.foldwords/4thesaurus.rwd +0 -36
- data/gui/tinkerbackwindows/superant.com.foldwords/77jumplinkcommands.rwd +0 -17
- data/lang/en/rwdcore/languagefile.rb +0 -59
- data/lang/es/rwdcore/languagefile-es.rb +0 -63
- data/lang/fr/rwdcore/languagefile.rb +0 -65
- data/lang/jp/rwdcore/languagefile.rb +0 -73
- data/lang/nl/rwdcore/languagefile.rb +0 -76
- data/lib/dict.rb +0 -438
- data/lib/oothesaurus.rb +0 -76
- data/zips/rwdwgutenberg-0.11.zip +0 -0
- data/zips/rwdwhypernote-0.15.zip +0 -0
data/code/01rwdcore/01rwdcore.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
|
2
|
-
|
3
|
-
# http://www.erikveen.dds.nl/rubywebdialogs/index.html
|
4
|
-
# For more information about RwdTinker see http://www.rubyforge.net/projects/rwdapplications
|
5
|
-
# This class is the top class for the RwdTinker application
|
2
|
+
|
6
3
|
|
7
4
|
$DEBUG=false
|
8
5
|
$VERBOSE=false
|
@@ -27,3 +24,7 @@ class RwdTinker < RWDialog
|
|
27
24
|
"#{$rwdapplicationidentity}"
|
28
25
|
end
|
29
26
|
|
27
|
+
|
28
|
+
# for original RWD work see: http://www.erikveen.dds.nl/rubywebdialogs/index.html
|
29
|
+
# For more information about RwdTinker see http://www.rubyforge.net/projects/rwdapplications
|
30
|
+
# This class is the top class for the RwdTinker application
|
@@ -1,4 +1,16 @@
|
|
1
|
-
|
1
|
+
# Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
|
2
2
|
|
3
|
-
Helptext = Hash.new { |hh, kk| hh[kk] = "ERROR:
|
3
|
+
Helptext = Hash.new { |hh, kk| hh[kk] = "ERROR: Message-ID Unknown: #{kk.inspect}."; hh[kk] }
|
4
4
|
helpmessage = {
|
5
|
+
:tinker_help => "rwdtinker is the core application for the
|
6
|
+
rwdapplications. "
|
7
|
+
|
8
|
+
}
|
9
|
+
helpmessage.each { |kk, vv| Helptext[kk] = vv }
|
10
|
+
|
11
|
+
|
12
|
+
=begin
|
13
|
+
this is to set up the help buttons
|
14
|
+
this uses a hash
|
15
|
+
=end
|
16
|
+
|
@@ -1,23 +1,21 @@
|
|
1
|
-
#
|
1
|
+
# this code loads the help text
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
|
4
|
+
tmphelpfilename = "Tinkerhelptexthash.txt"
|
5
|
+
tmphelpdir = "rwd_files"
|
6
|
+
|
7
|
+
begin # exception trapped block
|
8
|
+
|
9
|
+
|
10
|
+
fileName = File.join(tmphelpdir ,tmphelpfilename )
|
11
|
+
|
12
|
+
|
13
|
+
fd = File.open(fileName,"r")
|
14
|
+
tmphelptext = fd.read
|
15
|
+
fd.close
|
16
|
+
eval tmphelptext
|
17
|
+
rescue SystemCallError, StandardError
|
18
|
+
$rwdtinkerlog.error "Tinkerbell help file load: system call error: "
|
19
|
+
end # exception rescue
|
15
20
|
|
16
|
-
|
17
|
-
:documents_rwdtinker => "<b>Documents:
|
18
|
-
<p>
|
19
21
|
|
20
|
-
when you click on a document name, the document should pop up in a <br>
|
21
|
-
browser window, or in another browser tab.</b>
|
22
|
-
"
|
23
|
-
|
@@ -1,4 +1,7 @@
|
|
1
|
+
# Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
|
1
2
|
# this code is to call the help window
|
3
|
+
# for RwdTinker core
|
4
|
+
|
2
5
|
def runhelpwindow
|
3
6
|
$helptopicsarray = $helptopicsarray | ["applet_installation","applet_viewing","applet_tinkerbackeditconfiguration"]
|
4
7
|
|
@@ -29,3 +32,7 @@ def choosenewhelptopic(inffile)
|
|
29
32
|
end
|
30
33
|
|
31
34
|
|
35
|
+
|
36
|
+
# Application RwdTinker orginally (c) 2004 Steven Gibson under GPL.
|
37
|
+
# this code is to call the help window
|
38
|
+
# for RwdTinker core
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# open document for rwdtinker application
|
2
2
|
def runopentinkerdocument
|
3
3
|
|
4
|
-
tinkerdocumenturl = "http://localhost
|
4
|
+
tinkerdocumenturl = "http://localhost:#{$port}/" + @a_tinkerdocumentinput
|
5
5
|
Thread.new( tinkerdocumenturl){ |t| `#{Browser_Exe} #{tinkerdocumenturl}` }
|
6
6
|
end
|
7
7
|
|
@@ -5,7 +5,14 @@ $tinkerhelpaboutarray.delete_if {|x| x == "RwdFoldEditor"}
|
|
5
5
|
Helptext.delete_if {|key, value| key == :rwdfoldeditor_generalhelp}
|
6
6
|
Helptext.delete_if {|key, value| key == :foldlinkview_help }
|
7
7
|
Helptext.delete_if {|key, value| key == :foldlinkutility_help }
|
8
|
+
Helptext.delete_if {|key, value| key == :foldzipfile_help }
|
8
9
|
$rwdjumplink.delete_if {|x| x == "RwdFoldEditor"}
|
9
|
-
|
10
|
+
|
11
|
+
if DeleteFoldEditorConfig
|
12
|
+
|
13
|
+
fileName = File.join("configuration","rwdwfoldeditor.cnf")
|
14
|
+
File.delete(fileName)
|
15
|
+
end
|
16
|
+
return true
|
10
17
|
|
11
18
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# info
|
2
|
+
def zipfoldeditorfile
|
3
|
+
require 'fileutils'
|
4
|
+
require 'lib/zip/zip'
|
5
|
+
begin # exception trapped block
|
6
|
+
nametext = "%s" % [File.basename(@a_viewfoldlinkfile,".fld")]
|
7
|
+
|
8
|
+
|
9
|
+
fullname = nametext +"-" + Time.now.localtime.strftime("%Y-%m-%d")+".zip"
|
10
|
+
fileName = @a_viewfoldlinkfile
|
11
|
+
foldfilename = File.join($rwdfoldeditor_directory, fileName)
|
12
|
+
|
13
|
+
foldfilehandle = File.open(foldfilename,"r")
|
14
|
+
tempfilecontents = " "
|
15
|
+
|
16
|
+
Zip::ZipOutputStream.open(fullname ) {
|
17
|
+
|zos|
|
18
|
+
zos.put_next_entry( nametext)
|
19
|
+
zos.puts "the fold file name is: #{@a_viewfoldlinkfile}"
|
20
|
+
zos.close
|
21
|
+
}
|
22
|
+
|
23
|
+
zipfilehandle = Zip::ZipFile.open(fullname)
|
24
|
+
foldfilehandle.each {|line|
|
25
|
+
if FileTest.exist?(line.strip)
|
26
|
+
zipfilehandle.add(File.basename(line).strip,line.strip)
|
27
|
+
end
|
28
|
+
}
|
29
|
+
|
30
|
+
|
31
|
+
zipfilehandle.close
|
32
|
+
|
33
|
+
|
34
|
+
foldfilehandle.close
|
35
|
+
|
36
|
+
@a_zipfoldeditorlinkfile = fullname
|
37
|
+
|
38
|
+
rescue
|
39
|
+
$rwdtinkerlog.error "zipfoldeditorfile: error - #{$!}"
|
40
|
+
|
41
|
+
end # exception rescue
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# this code loads the help text
|
2
|
+
|
3
|
+
|
4
|
+
tmphelpfilename = "rwdfoldeditorhelpfiles.txt"
|
5
|
+
tmphelpdir = "rwd_files"
|
6
|
+
|
7
|
+
begin # exception trapped block
|
8
|
+
|
9
|
+
|
10
|
+
fileName = File.join(tmphelpdir ,tmphelpfilename )
|
11
|
+
|
12
|
+
|
13
|
+
fd = File.open(fileName,"r")
|
14
|
+
tmphelptext = fd.read
|
15
|
+
fd.close
|
16
|
+
eval tmphelptext
|
17
|
+
|
18
|
+
rescue SystemCallError, StandardError
|
19
|
+
$rwdtinkerlog.error "foldeditor help file load: system call error: "
|
20
|
+
end # exception rescue
|
21
|
+
|
22
|
+
|
@@ -1,8 +1,10 @@
|
|
1
1
|
# launch the browser with a url
|
2
2
|
def foldeditorlaunchurl
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
url1 = File.expand_path( @a_viewfoldlink.to_s.strip )
|
5
|
+
|
6
6
|
url = "file://#{url1}"
|
7
|
+
|
8
|
+
|
7
9
|
`#{$foldeditorbrowser} "#{url}"`
|
8
10
|
|
9
11
|
end
|
@@ -11,7 +13,7 @@ def foldeditorlaunchhttp
|
|
11
13
|
|
12
14
|
url = @a_viewfoldlink.to_s.strip
|
13
15
|
|
14
|
-
|
16
|
+
|
15
17
|
`#{$foldeditorbrowser} "#{url}"`
|
16
18
|
|
17
19
|
end
|
@@ -15,8 +15,12 @@ def runhelpwindowrwdfoldeditor
|
|
15
15
|
$help_topic = "rwdfoldeditor_generalhelp"
|
16
16
|
end
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
if @rwd_tab == "foldeditorzipslister"
|
19
|
+
|
20
|
+
$help_topic = "foldzipfile_help"
|
21
|
+
end
|
22
|
+
|
23
|
+
$helptopicsarray = $helptopicsarray | ["rwdfoldeditor_generalhelp","foldlinkview_help","foldlinkutility_help","foldzipfile_help"]
|
20
24
|
|
21
25
|
|
22
26
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
#***********************************************************************
|
3
2
|
#* Rwd/Tinker -- A Ruby program for the RudyWebDialog.
|
4
3
|
#* Copyright (c) 2004 - 2005 by Steven Gibson. All Rights Reserved.
|
@@ -30,8 +29,6 @@ def initiateapplet(nametextlocal)
|
|
30
29
|
|
31
30
|
$rwdtinkerlog.info "initiateapplet: starting config load with: #{nametextlocal}"
|
32
31
|
|
33
|
-
|
34
|
-
|
35
32
|
Dir.chdir($progdir ) #changes the current working directory
|
36
33
|
|
37
34
|
@confignew = "configuration/" + "#{nametextlocal}.cnf"
|
@@ -44,13 +41,10 @@ begin
|
|
44
41
|
|
45
42
|
eval configfileload #load config file
|
46
43
|
|
47
|
-
|
48
|
-
|
49
44
|
rescue
|
50
45
|
|
51
46
|
$rwdtinkerlog.error "initiateapplet: error in initiateapplets - config load"
|
52
47
|
|
53
|
-
|
54
48
|
debuginitiate += 1
|
55
49
|
end
|
56
50
|
$tempdoc = " "
|
@@ -58,80 +52,24 @@ $tempdoc = " "
|
|
58
52
|
Dir.chdir($progdir) # change back to top program directory
|
59
53
|
|
60
54
|
# build the English Language hash file from the parts
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
alanghash = Array.new(Dir[startlangdir].entries.sort)
|
65
|
-
#loop through the list, ignore the files and add all new directories found
|
66
|
-
alanghash.each do |x|
|
67
|
-
#if a directory...
|
68
|
-
if(test(?d,x))
|
69
|
-
# add to the original list of directories
|
70
|
-
@@tmproot = x + "/**"
|
71
|
-
#adds the new ones to the array
|
72
|
-
blanghash = Dir[@@tmproot].entries.sort
|
73
|
-
blanghash.each do |x|
|
74
|
-
if(test(?d,x))
|
75
|
-
alanghash.push(x) #appends to the end of the array...
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
alanghash.each do |x|
|
81
|
-
#if it is a file...
|
82
|
-
if(!test(?d,x))
|
83
|
-
alanghash.delete(x)
|
84
|
-
else #it is a directory...
|
85
|
-
findfiles(x + "/**")
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
55
|
+
require 'lib/rwdtinker/rwdlangdir'
|
56
|
+
|
57
|
+
tempdoc = RwdtinkerTools.findlanguagefiles(LangDir,"en")
|
89
58
|
|
90
59
|
#writes the contents of doc into the languagehashvariable
|
91
|
-
|
92
60
|
|
93
|
-
languagehashvariable =
|
61
|
+
languagehashvariable = tempdoc
|
94
62
|
|
95
63
|
# END of en Lang building
|
96
64
|
$tempdoc = " "
|
97
65
|
Dir.chdir($progdir) # change back to top program directory
|
98
66
|
|
99
67
|
# build the local Language hash file from the parts
|
100
|
-
|
101
|
-
#get a list of the files and subdirectories on the starting directory only
|
102
|
-
alanghash = Array.new(Dir[startlangdir].entries.sort)
|
103
|
-
#loop through the list, ignore the files and add all new directories found
|
104
|
-
alanghash.each do |x|
|
105
|
-
#if a directory...
|
106
|
-
if(test(?d,x))
|
107
|
-
# add to the original list of directories
|
108
|
-
@@tmproot = x + "/**"
|
109
|
-
#adds the new ones to the array
|
110
|
-
blanghash = Dir[@@tmproot].entries.sort
|
111
|
-
blanghash.each do |x|
|
112
|
-
if(test(?d,x))
|
113
|
-
alanghash.push(x) #appends to the end of the array...
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
alanghash.each do |x|
|
119
|
-
#if it is a file...
|
120
|
-
if(!test(?d,x))
|
121
|
-
alanghash.delete(x)
|
122
|
-
else #it is a directory...
|
123
|
-
findfiles(x + "/**")
|
124
|
-
end
|
125
|
-
end
|
68
|
+
tempdoc = RwdtinkerTools.findlanguagefiles(LangDir,$lang)
|
126
69
|
|
70
|
+
#writes the contents of doc into the variable
|
127
71
|
|
128
|
-
|
129
|
-
|
130
|
-
languagehashvariable = languagehashvariable + " Message.update(" + $tempdoc + ' :rwdtinker => "Rwdtinker" ) '
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
$tempdoc = " "
|
72
|
+
languagehashvariable = languagehashvariable + tempdoc
|
135
73
|
|
136
74
|
Dir.chdir($progdir) # change back to top program directory
|
137
75
|
|
@@ -142,44 +80,18 @@ $tempdoc = " "
|
|
142
80
|
begin # error trap
|
143
81
|
|
144
82
|
# build the actual GUI from the gui parts
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
#use this new dir find to add to the original list of directories
|
153
|
-
@@root = x + "/**"
|
154
|
-
#adds the new ones to the array
|
155
|
-
b = Dir[@@root].entries.sort
|
156
|
-
b.each do |x|
|
157
|
-
if(test(?d,x))
|
158
|
-
a.push(x) #appends to the end of the array...
|
159
|
-
end
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
|
-
a.each do |x|
|
164
|
-
#if it is a file...
|
165
|
-
if(!test(?d,x))
|
166
|
-
a.delete(x)
|
167
|
-
|
168
|
-
else #it is a directory...
|
169
|
-
loadguifile(x + "/**")
|
170
|
-
|
171
|
-
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
$rwd_gui_tinker = $tempdoc
|
176
|
-
|
83
|
+
tempdoc = " "
|
84
|
+
|
85
|
+
require 'lib/rwdtinker/rwdguidir'
|
86
|
+
|
87
|
+
tempdoc = RwdtinkerTools.findguifiles(GuiDir)
|
88
|
+
|
89
|
+
$rwd_gui_tinker = tempdoc
|
177
90
|
|
178
91
|
rescue
|
179
92
|
$rwd_gui_tinker = tempguistorage # restore old gui
|
180
93
|
|
181
94
|
$rwdtinkerlog.error "error in initiateapplets - gui building"
|
182
|
-
|
183
95
|
|
184
96
|
debuginitiate += 1
|
185
97
|
end
|
@@ -237,5 +149,21 @@ begin # error trap
|
|
237
149
|
end
|
238
150
|
|
239
151
|
|
152
|
+
def findfiles(d)
|
153
|
+
a = Array.new(Dir[d].entries.sort)
|
154
|
+
#loop through and get the files names
|
155
|
+
a.each do |x|
|
156
|
+
#adjust the filters to the files you want to see...
|
157
|
+
if(!test(?d,x))
|
158
|
+
# only rwd files
|
159
|
+
if x =~ /rb|rwd|txt/
|
160
|
+
fileA=File.open("#{x}","r") #opens the file thats in fileName as read only
|
161
|
+
$tempdoc+=fileA.read #reads the file into the doc string
|
162
|
+
fileA.close
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
240
168
|
|
241
169
|
|