vedeu 0.8.29 → 0.8.30

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/docs/dsl/by_method/centre_x.md +6 -0
  3. data/docs/dsl/by_method/centre_y.md +6 -0
  4. data/examples/dsl_horizontal_alignment.rb +1 -1
  5. data/examples/dsl_vertical_alignment.rb +1 -1
  6. data/integrations/dsl_app_geometry_005.rb +177 -0
  7. data/integrations/expected/342_streams.out +1 -1
  8. data/integrations/expected/dsl_app_001.out +1 -1
  9. data/integrations/expected/dsl_app_002.out +1 -1
  10. data/integrations/expected/dsl_app_003.out +1 -1
  11. data/integrations/expected/dsl_app_004.out +1 -1
  12. data/integrations/expected/dsl_app_005.out +1 -1
  13. data/integrations/expected/dsl_app_006.out +1 -1
  14. data/integrations/expected/dsl_app_007.out +1 -1
  15. data/integrations/expected/dsl_app_008.out +1 -1
  16. data/integrations/expected/dsl_app_009.out +1 -1
  17. data/integrations/expected/dsl_app_010.out +1 -1
  18. data/integrations/expected/dsl_app_013.out +1 -1
  19. data/integrations/expected/dsl_app_014.out +1 -1
  20. data/integrations/expected/dsl_app_015.out +1 -1
  21. data/integrations/expected/dsl_app_016.out +1 -1
  22. data/integrations/expected/dsl_app_021.out +1 -1
  23. data/integrations/expected/dsl_app_022.out +1 -1
  24. data/integrations/expected/dsl_app_030.out +1 -1
  25. data/integrations/expected/dsl_app_031.out +1 -1
  26. data/integrations/expected/dsl_app_border_001.out +1 -1
  27. data/integrations/expected/dsl_app_border_002.out +1 -1
  28. data/integrations/expected/dsl_app_border_003.out +1 -1
  29. data/integrations/expected/dsl_app_border_004.out +1 -1
  30. data/integrations/expected/dsl_app_border_005.out +1 -1
  31. data/integrations/expected/dsl_app_border_006.out +1 -1
  32. data/integrations/expected/dsl_app_border_007.out +1 -1
  33. data/integrations/expected/dsl_app_border_008.out +1 -1
  34. data/integrations/expected/dsl_app_border_009.out +1 -1
  35. data/integrations/expected/dsl_app_border_010.out +1 -1
  36. data/integrations/expected/dsl_app_border_011.out +1 -1
  37. data/integrations/expected/dsl_app_border_012.out +1 -1
  38. data/integrations/expected/dsl_app_geometry_001.out +1 -1
  39. data/integrations/expected/dsl_app_geometry_002.out +1 -1
  40. data/integrations/expected/dsl_app_geometry_003.out +1 -1
  41. data/integrations/expected/dsl_app_geometry_004.out +1 -1
  42. data/integrations/expected/dsl_app_geometry_005.out +1 -0
  43. data/integrations/test_runner.sh +1 -0
  44. data/lib/vedeu/geometries/dsl/dsl.rb +34 -6
  45. data/lib/vedeu/interfaces/clear.rb +12 -45
  46. data/lib/vedeu/interfaces/clear_content.rb +20 -40
  47. data/lib/vedeu/output/output.rb +10 -3
  48. data/lib/vedeu/terminal/terminal.rb +6 -0
  49. data/lib/vedeu/version.rb +1 -1
  50. data/test/lib/vedeu/interfaces/clear_content_test.rb +19 -8
  51. data/test/lib/vedeu/interfaces/clear_test.rb +26 -17
  52. data/test/lib/vedeu/output/output_test.rb +8 -0
  53. data/test/lib/vedeu_test.rb +2 -0
  54. metadata +6 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e96b8a38c77ce3d42eefe14913a99fc23c36550d
4
- data.tar.gz: d36aef73dfaec573586bf73f12ae96e78173c0a0
3
+ metadata.gz: d413edf12c3450b500f123c44d7eaef2bd512cd3
4
+ data.tar.gz: f3b2c6fa3ea87716b5fd1c39dc751dc6bbbe1fea
5
5
  SHA512:
6
- metadata.gz: d95ae5335653b81832224141bcf2033bee706970da29d1be8f4994f582d9e1674f4fce54c1c80285fca50ab21561aa1e3e0074ddc27f78c2e5e003f125f3775a
7
- data.tar.gz: a4aa26a5b71ed54b661920472111a377c1ce47c3bb2df1a84901c1e208699f11b164366a1e19aa5a908b098577a040e00e25ea06a7341a1d68286205ff4b0d1c
6
+ metadata.gz: 1516ca7c31dc09a7e3dbed8698257db558d59085badcc1006babf39ed52cbf1c57018d514a81049dabc9db673e3d5d144826d0c7ce2c3cf23d4216756ea0b10c
7
+ data.tar.gz: edd78dd5bf4664a07d71a96a322c2dfeb2e495522c26dc0a19ebd16cb277ad986dbd3f7707ced8b8ce0539874cda058bd7dff82c3524032a5cb8177f072203b4
@@ -0,0 +1,6 @@
1
+ ### Vedeu.centre_x
2
+
3
+ Provides the horizontal centre coordinate for the terminal. For
4
+ example, a terminal of width 40 characters:
5
+
6
+ Vedeu.centre_x # => 20
@@ -0,0 +1,6 @@
1
+ ### Vedeu.centre_y
2
+
3
+ Provides the vertical centre coordinate for the terminal. For example,
4
+ a terminal of height 40 lines:
5
+
6
+ Vedeu.centre_y # => 20
@@ -53,7 +53,7 @@ class HorizontalAlignmentApp
53
53
 
54
54
  Vedeu.configure do
55
55
  debug!
56
- log Dir.tmpdir + '/vedeu_horizontal.log'
56
+ log Dir.tmpdir + '/vedeu_views_dsl.log'
57
57
  renderers [
58
58
  Vedeu::Renderers::Terminal.new,
59
59
  # Vedeu::Renderers::Text.new(
@@ -53,7 +53,7 @@ class VerticalAlignmentApp
53
53
 
54
54
  Vedeu.configure do
55
55
  debug!
56
- log Dir.tmpdir + '/vedeu_vertical.log'
56
+ log Dir.tmpdir + '/vedeu_views_dsl.log'
57
57
  renderers [
58
58
  Vedeu::Renderers::Terminal.new,
59
59
  # Vedeu::Renderers::Text.new(
@@ -0,0 +1,177 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # frozen_string_literal: true
4
+
5
+ require 'bundler/setup'
6
+ require 'vedeu'
7
+
8
+ TESTCASE = 'dsl_app_geometry_005'
9
+
10
+ class DSLApp
11
+
12
+ Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
13
+
14
+ Vedeu.configure do
15
+ debug!
16
+ log Dir.tmpdir + '/vedeu_views_dsl.log'
17
+ renderers [
18
+ Vedeu::Renderers::Terminal.new(
19
+ filename: Dir.tmpdir + "/#{TESTCASE}.out",
20
+ write_file: true)
21
+ ]
22
+ run_once!
23
+ standalone!
24
+
25
+ height 25
26
+ width 80
27
+ end
28
+
29
+ Vedeu.interface :top_left_view do
30
+ border do
31
+ title 'Top Left'
32
+ end
33
+ geometry do
34
+ align vertical: :top, horizontal: :left, width: 20, height: 4
35
+ end
36
+ end
37
+
38
+ Vedeu.interface :top_centre_view do
39
+ border do
40
+ title 'Top Centre'
41
+ end
42
+ geometry do
43
+ align vertical: :top, horizontal: :centre, width: 20, height: 4
44
+ end
45
+ end
46
+
47
+ Vedeu.interface :top_right_view do
48
+ border do
49
+ title 'Top Right'
50
+ end
51
+ geometry do
52
+ align vertical: :top, horizontal: :right, width: 20, height: 4
53
+ end
54
+ end
55
+
56
+ Vedeu.interface :middle_left_view do
57
+ border do
58
+ title 'Middle Left'
59
+ end
60
+ geometry do
61
+ align vertical: :middle, horizontal: :left, width: 20, height: 4
62
+ end
63
+ end
64
+
65
+ Vedeu.interface :middle_centre_view do
66
+ border do
67
+ title 'Middle Centre'
68
+ end
69
+ geometry do
70
+ align vertical: :middle, horizontal: :centre, width: 20, height: 4
71
+ end
72
+ end
73
+
74
+ Vedeu.interface :middle_right_view do
75
+ border do
76
+ title 'Middle Right'
77
+ end
78
+ geometry do
79
+ align vertical: :middle, horizontal: :right, width: 20, height: 4
80
+ end
81
+ end
82
+
83
+ Vedeu.interface :bottom_left_view do
84
+ border do
85
+ title 'Bottom Left'
86
+ end
87
+ geometry do
88
+ align vertical: :bottom, horizontal: :left, width: 20, height: 4
89
+ end
90
+ end
91
+
92
+ Vedeu.interface :bottom_centre_view do
93
+ border do
94
+ title 'Bottom Centre'
95
+ end
96
+ geometry do
97
+ align vertical: :bottom, horizontal: :centre, width: 20, height: 4
98
+ end
99
+ end
100
+
101
+ Vedeu.interface :bottom_right_view do
102
+ border do
103
+ title 'Bottom Right'
104
+ end
105
+ geometry do
106
+ align vertical: :bottom, horizontal: :right, width: 20, height: 4
107
+ end
108
+ end
109
+
110
+ Vedeu.render do
111
+ view(:top_left_view) do
112
+ lines do
113
+ line "top left"
114
+ end
115
+ end
116
+
117
+ view(:top_centre_view) do
118
+ lines do
119
+ line "top centre"
120
+ end
121
+ end
122
+
123
+ view(:top_right_view) do
124
+ lines do
125
+ line "top right"
126
+ end
127
+ end
128
+
129
+ view(:middle_left_view) do
130
+ lines do
131
+ line "middle left"
132
+ end
133
+ end
134
+
135
+ view(:middle_centre_view) do
136
+ lines do
137
+ line "middle centre"
138
+ end
139
+ end
140
+
141
+ view(:middle_right_view) do
142
+ lines do
143
+ line "middle right"
144
+ end
145
+ end
146
+
147
+ view(:bottom_left_view) do
148
+ lines do
149
+ line "bottom left"
150
+ end
151
+ end
152
+
153
+ view(:bottom_centre_view) do
154
+ lines do
155
+ line "bottom centre"
156
+ end
157
+ end
158
+
159
+ view(:bottom_right_view) do
160
+ lines do
161
+ line "bottom right"
162
+ end
163
+ end
164
+ end
165
+
166
+ def self.start(argv = ARGV)
167
+ Vedeu::Launcher.execute!(argv)
168
+ end
169
+
170
+ end # DSLApp
171
+
172
+ Vedeu.timer('Test') do
173
+ DSLApp.start
174
+ end
175
+
176
+ load File.dirname(__FILE__) + '/test_runner.rb'
177
+ TestRunner.result(TESTCASE, __FILE__)
@@ -1 +1 @@
1
- 07/01/2016 21:32:19 null > hi                      
1
+ 07/01/2016 21:32:19 null > hi
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line                   (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line 1                 (0x(B(0x(Bview->line 2                 (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line 1(0x(B(0x(Bview->line 2(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->text 1                 (0x(B(0x(Bview->text 2                 (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->text 1(0x(B(0x(Bview->text 2(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line 1->text           (0x(B(0x(Bview->line 2->text 1view->lin(0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line 1->text(0x(B(0x(Bview->line 2->text 1view->lin(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->line 1          (0x(B(0x(Bview->lines->line 2          (0x(B(0x(Bview->lines->line 3          (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->line 1(0x(B(0x(Bview->lines->line 2(0x(B(0x(Bview->lines->line 3(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->stream                 (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->stream(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line 1->stream         (0x(B(0x(Bview->line 2->stream 1view->l(0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line 1->stream(0x(B(0x(Bview->line 2->stream 1view->l(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->line->stream    (0x(B(0x(Bview->stream 2->text 1view->s(0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->line->stream(0x(B(0x(Bview->stream 2->text 1view->s(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(BMultiple `text` keywords with(0x(B(0x(Ba `stream` block view are    (0x(B(0x(Btreated as separate streams. (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(BMultiple `text` keywords with(0x(B(0x(Ba `stream` block view are(0x(B(0x(Btreated as separate streams.(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(BMultiple `stream` within a   (0x(B(0x(B`streams` within a `line`.   (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(BMultiple `stream` within a (0x(B(0x(B`streams` within a `line`.(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->left 1          (0x(B(0x(Bview->lines->left 2          (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->left 1          (0x(B(0x(Bview->lines->left 2          (0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B         view->lines->right 1(0x(B(0x(B         view->lines->right 2(0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B         view->lines->right 1(0x(B(0x(B         view->lines->right 2(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B    view->lines->centre 1    (0x(B(0x(B    view->lines->centre 2    (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B    view->lines->centre 1    (0x(B(0x(B    view->lines->centre 2    (0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bv->l->left        v->l->right(0x(B(0x(B         v->l->centre        (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bv->l->left        v->l->right(0x(B(0x(B         v->l->centre        (0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Width: 100 Height: 50 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B2--+----10--------20--------30--------40--------50--------60--------70--------80---+----90---+----(0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B+                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B10                                                                                                (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B20                                                                                                (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B30                                                                                                (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B+                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B40                                                                                                (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B+                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0x(B-                                                                                                 (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Width: 100 Height: 50 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B2--+----10--------20--------30--------40--------50--------60--------70--------80---+----90---+----(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B+(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B10(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B20(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B30(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B+(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B40(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B+(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Width: 100 Height: 50 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B2--+----10--------20--------30--------40--------50--------60--------70--------80---+----(0x(B(0x(B- geometry height: 40                                                                   (0x(B(0x(B- geometry width: 90                                                                    (0x(B(0x(B+                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B10                                                                                      (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B20                                                                                      (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B30                                                                                      (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B+                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0x(B-                                                                                       (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Width: 100 Height: 50 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B2--+----10--------20--------30--------40--------50--------60--------70--------80---+----(0x(B(0x(B- geometry height: 40(0x(B(0x(B- geometry width: 90(0x(B(0x(B+(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B10(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B20(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B30(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B+(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0x(B-(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
-                                                                                                                                                            
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bsome content(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bsome content(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- border off                                                                                                                                                 
1
+ border off
@@ -1 +1 @@
1
- (0x(Bno top                       (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0x(Bno top(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0x(Bno right                      (0x(B                              (0x(B                              (0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B
1
+ (0l(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0x(Bno right(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B
@@ -1 +1 @@
1
- (0l(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bno bottom                    (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B
1
+ (0l(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bno bottom(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B
@@ -1 +1 @@
1
- (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(Bno left                       (0x(B                              (0x(B                              (0x(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(Bno left(0x(B(0x(B(0x(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0A(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0B(B(0x(Bcustom                       (0x(B(0x(Bvertices                     (0x(B(0x(B                             (0x(B(0C(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0D(B
1
+ (0A(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0B(B(0x(Bcustom(0x(B(0x(Bvertices(0x(B(0x(B(0x(B(0C(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0D(B
@@ -1 +1 @@
1
- (0l(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0k(B(0$(Bcustom                       (0%(B(0$(Bedges                        (0%(B(0$(B                             (0%(B(0m(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0j(B
1
+ (0l(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0*(B(0k(B(0$(Bcustom(0%(B(0$(Bedges(0%(B(0$(B(0%(B(0m(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0&(B(0j(B
@@ -1 +1 @@
1
- (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(Bonly                           top                                                                                          
1
+ (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(Bonlytop
@@ -1 +1 @@
1
- only                          (0x(Bright                         (0x(B                              (0x(B                              (0x(B                              (0x(B
1
+ only(0x(Bright(0x(B(0x(B(0x(B(0x(B
@@ -1 +1 @@
1
- only                           bottom                                                                                       (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B
1
+ onlybottom(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B
@@ -1 +1 @@
1
- (0x(Bonly                          (0x(Bleft                          (0x(B                              (0x(B                              (0x(B                              
1
+ (0x(Bonly(0x(Bleft(0x(B(0x(B(0x(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bborder on                    (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bborder on(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B(0l(B(0q(B Other (0q(B(0k(B                  (0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B                  (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B(0l(B(0q(B Other (0q(B(0k(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B                  (0l(B(0q(B Other (0q(B(0k(B(0x(B(0x(B                  (0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B(0l(B(0q(B Other (0q(B(0k(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B                             (0x(B(0x(B(0l(B(0q(B Other (0q(B(0k(B                  (0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B                  (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B(0x(B(0x(B(0l(B(0q(B Other (0q(B(0k(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -1 +1 @@
1
- (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B                             (0x(B(0x(B                  (0l(B(0q(B Other (0q(B(0k(B(0x(B(0x(B                  (0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
1
+ (0l(B(0q(B Test (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B(0x(B(0x(B(0l(B(0q(B Other (0q(B(0k(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -0,0 +1 @@
1
+ (0l(B(0q(B Top Left (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Top Centre (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Top Right (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Btop left(0x(B(0x(Btop centre(0x(B(0x(Btop right(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0l(B(0q(B Middle Left (0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Middle Centre (0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Middle Right (0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bmiddle left(0x(B(0x(Bmiddle centre(0x(B(0x(Bmiddle right(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0l(B(0q(B Bottom Left (0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Bottom Centre (0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Bottom Right (0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bbottom left(0x(B(0x(Bbottom centre(0x(B(0x(Bbottom right(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B
@@ -53,6 +53,7 @@ cd "$(dirname "$0")"
53
53
  ./dsl_app_geometry_002.rb
54
54
  ./dsl_app_geometry_003.rb
55
55
  ./dsl_app_geometry_004.rb
56
+ ./dsl_app_geometry_005.rb
56
57
 
57
58
  # Failing
58
59
  # ./dsl_app_017.rb
@@ -105,23 +105,27 @@ module Vedeu
105
105
  # @param value [Symbol] One of :center, :centre, :left, :none,
106
106
  # :right.
107
107
  # @param width [Fixnum] The number of characters/columns.
108
+ # @param x [Fixnum] When given, sets the x coordinate.
108
109
  # @return [Vedeu::Geometries::Geometry]
109
- def horizontal_alignment(value = :none, width = nil)
110
+ def horizontal_alignment(value = :none, width = nil, x = nil)
110
111
  alignment = Vedeu::Coercers::HorizontalAlignment.validate(value)
111
112
 
112
113
  model.width = width if width
113
114
  model.horizontal_alignment = alignment
115
+ model.x = x if x
114
116
  model
115
117
  end
116
118
 
117
119
  # @param value [Symbol] One of :bottom, :middle, :none, :top.
118
120
  # @param height [Fixnum] The number of lines/rows.
121
+ # @param y [Fixnum] When given, sets the y coordinate.
119
122
  # @return [Vedeu::Geometries::Geometry]
120
- def vertical_alignment(value = :none, height = nil)
123
+ def vertical_alignment(value = :none, height = nil, y = nil)
121
124
  alignment = Vedeu::Coercers::VerticalAlignment.validate(value)
122
125
 
123
126
  model.height = height if height
124
127
  model.vertical_alignment = alignment
128
+ model.y = y if y
125
129
  model
126
130
  end
127
131
 
@@ -129,14 +133,26 @@ module Vedeu
129
133
  # @param height [Fixnum] The number of lines/rows.
130
134
  # @return [Vedeu::Geometries::Geometry]
131
135
  def align_bottom(height = nil)
132
- vertical_alignment(:bottom, height)
136
+ y = if height
137
+ Vedeu.height - height
138
+ elsif model.height
139
+ Vedeu.height - model.height
140
+ end
141
+
142
+ vertical_alignment(:bottom, height, y)
133
143
  end
134
144
 
135
145
  # {include:file:docs/dsl/by_method/geometry/align_centre.md}
136
146
  # @param width [Fixnum] The number of characters/columns.
137
147
  # @return [Vedeu::Geometries::Geometry]
138
148
  def align_centre(width = nil)
139
- horizontal_alignment(:centre, width)
149
+ x = if width
150
+ Vedeu.centre_x - (width / 2)
151
+ elsif model.width
152
+ Vedeu.centre_x - (model.width / 2)
153
+ end
154
+
155
+ horizontal_alignment(:centre, width, x)
140
156
  end
141
157
  alias align_center align_centre
142
158
 
@@ -151,14 +167,26 @@ module Vedeu
151
167
  # @param height [Fixnum] The number of lines/rows.
152
168
  # @return [Vedeu::Geometries::Geometry]
153
169
  def align_middle(height = nil)
154
- vertical_alignment(:middle, height)
170
+ y = if height
171
+ Vedeu.centre_y - (height / 2)
172
+ elsif model.height
173
+ Vedeu.centre_y - (model.height / 2)
174
+ end
175
+
176
+ vertical_alignment(:middle, height, y)
155
177
  end
156
178
 
157
179
  # {include:file:docs/dsl/by_method/geometry/align_right.md}
158
180
  # @param width [Fixnum] The number of characters/columns.
159
181
  # @return [Vedeu::Geometries::Geometry]
160
182
  def align_right(width = nil)
161
- horizontal_alignment(:right, width)
183
+ x = if width
184
+ Vedeu.width - width
185
+ elsif model.width
186
+ Vedeu.width - model.width
187
+ end
188
+
189
+ horizontal_alignment(:right, width, x)
162
190
  end
163
191
 
164
192
  # {include:file:docs/dsl/by_method/geometry/align_top.md}