mage-engine 3.24.3 → 3.24.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/test.yml +29 -0
- package/__mocks__/three.js +178 -0
- package/coverage/clover.xml +3094 -0
- package/coverage/coverage-final.json +60 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/entities/Element.js.html +3463 -0
- package/coverage/lcov-report/entities/Entity.js.html +2740 -0
- package/coverage/lcov-report/entities/animations/AnimationHandler.js.html +1006 -0
- package/coverage/lcov-report/entities/animations/SpriteAnimationHandler.js.html +91 -0
- package/coverage/lcov-report/entities/animations/index.html +131 -0
- package/coverage/lcov-report/entities/animations/lib/NodeFrame.js.html +214 -0
- package/coverage/lcov-report/entities/animations/lib/index.html +116 -0
- package/coverage/lcov-report/entities/base/AnimatedSprite.js.html +220 -0
- package/coverage/lcov-report/entities/base/Axes.js.html +316 -0
- package/coverage/lcov-report/entities/base/Box.js.html +253 -0
- package/coverage/lcov-report/entities/base/Cone.js.html +304 -0
- package/coverage/lcov-report/entities/base/Cube.js.html +217 -0
- package/coverage/lcov-report/entities/base/CurveLine.js.html +166 -0
- package/coverage/lcov-report/entities/base/Cylinder.js.html +259 -0
- package/coverage/lcov-report/entities/base/Grid.js.html +190 -0
- package/coverage/lcov-report/entities/base/HelperSprite.js.html +163 -0
- package/coverage/lcov-report/entities/base/Label.js.html +373 -0
- package/coverage/lcov-report/entities/base/Line.js.html +334 -0
- package/coverage/lcov-report/entities/base/Plane.js.html +265 -0
- package/coverage/lcov-report/entities/base/Sphere.js.html +217 -0
- package/coverage/lcov-report/entities/base/Sprite.js.html +445 -0
- package/coverage/lcov-report/entities/base/index.html +326 -0
- package/coverage/lcov-report/entities/base/index.js.html +172 -0
- package/coverage/lcov-report/entities/camera.js.html +751 -0
- package/coverage/lcov-report/entities/constants.js.html +655 -0
- package/coverage/lcov-report/entities/index.html +176 -0
- package/coverage/lcov-report/entities/index.js.html +187 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/images/Images.js.html +724 -0
- package/coverage/lcov-report/images/index.html +116 -0
- package/coverage/lcov-report/index.html +266 -0
- package/coverage/lcov-report/lib/Color.js.html +187 -0
- package/coverage/lcov-report/lib/array.js.html +97 -0
- package/coverage/lcov-report/lib/colliders.js.html +217 -0
- package/coverage/lcov-report/lib/constants.js.html +1171 -0
- package/coverage/lcov-report/lib/dom.js.html +202 -0
- package/coverage/lcov-report/lib/easing.js.html +229 -0
- package/coverage/lcov-report/lib/features.js.html +826 -0
- package/coverage/lcov-report/lib/functions.js.html +130 -0
- package/coverage/lcov-report/lib/index.html +401 -0
- package/coverage/lcov-report/lib/location.js.html +127 -0
- package/coverage/lcov-report/lib/map.js.html +172 -0
- package/coverage/lcov-report/lib/math.js.html +511 -0
- package/coverage/lcov-report/lib/meshUtils.js.html +685 -0
- package/coverage/lcov-report/lib/messages.js.html +415 -0
- package/coverage/lcov-report/lib/network.js.html +136 -0
- package/coverage/lcov-report/lib/object.js.html +187 -0
- package/coverage/lcov-report/lib/palettes.js.html +259 -0
- package/coverage/lcov-report/lib/query.js.html +172 -0
- package/coverage/lcov-report/lib/strings.js.html +139 -0
- package/coverage/lcov-report/lib/url.js.html +85 -0
- package/coverage/lcov-report/lib/utils/assets.js.html +94 -0
- package/coverage/lcov-report/lib/utils/index.html +116 -0
- package/coverage/lcov-report/lib/uuid.js.html +112 -0
- package/coverage/lcov-report/models/Models.js.html +1489 -0
- package/coverage/lcov-report/models/SkeletonUtils.js.html +1879 -0
- package/coverage/lcov-report/models/index.html +131 -0
- package/coverage/lcov-report/physics/constants.js.html +307 -0
- package/coverage/lcov-report/physics/hitbox.js.html +235 -0
- package/coverage/lcov-report/physics/index.html +176 -0
- package/coverage/lcov-report/physics/index.js.html +1324 -0
- package/coverage/lcov-report/physics/messages.js.html +238 -0
- package/coverage/lcov-report/physics/utils.js.html +679 -0
- package/coverage/lcov-report/physics/worker/effects.js.html +325 -0
- package/coverage/lcov-report/physics/worker/elements.js.html +694 -0
- package/coverage/lcov-report/physics/worker/index.html +176 -0
- package/coverage/lcov-report/physics/worker/lib/dispatcher.js.html +160 -0
- package/coverage/lcov-report/physics/worker/lib/index.html +131 -0
- package/coverage/lcov-report/physics/worker/lib/math.js.html +109 -0
- package/coverage/lcov-report/physics/worker/player.js.html +301 -0
- package/coverage/lcov-report/physics/worker/vehicles.js.html +832 -0
- package/coverage/lcov-report/physics/worker/world.js.html +796 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov.info +6368 -0
- package/dist/mage.js +8389 -8925
- package/eslint.config.js +73 -0
- package/jest.config.js +31 -0
- package/package.json +17 -5
|
@@ -0,0 +1,3463 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for entities/Element.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">entities</a> Element.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">0% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>0/444</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/301</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">0% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>0/159</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">0% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>0/402</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a>
|
|
339
|
+
<a name='L274'></a><a href='#L274'>274</a>
|
|
340
|
+
<a name='L275'></a><a href='#L275'>275</a>
|
|
341
|
+
<a name='L276'></a><a href='#L276'>276</a>
|
|
342
|
+
<a name='L277'></a><a href='#L277'>277</a>
|
|
343
|
+
<a name='L278'></a><a href='#L278'>278</a>
|
|
344
|
+
<a name='L279'></a><a href='#L279'>279</a>
|
|
345
|
+
<a name='L280'></a><a href='#L280'>280</a>
|
|
346
|
+
<a name='L281'></a><a href='#L281'>281</a>
|
|
347
|
+
<a name='L282'></a><a href='#L282'>282</a>
|
|
348
|
+
<a name='L283'></a><a href='#L283'>283</a>
|
|
349
|
+
<a name='L284'></a><a href='#L284'>284</a>
|
|
350
|
+
<a name='L285'></a><a href='#L285'>285</a>
|
|
351
|
+
<a name='L286'></a><a href='#L286'>286</a>
|
|
352
|
+
<a name='L287'></a><a href='#L287'>287</a>
|
|
353
|
+
<a name='L288'></a><a href='#L288'>288</a>
|
|
354
|
+
<a name='L289'></a><a href='#L289'>289</a>
|
|
355
|
+
<a name='L290'></a><a href='#L290'>290</a>
|
|
356
|
+
<a name='L291'></a><a href='#L291'>291</a>
|
|
357
|
+
<a name='L292'></a><a href='#L292'>292</a>
|
|
358
|
+
<a name='L293'></a><a href='#L293'>293</a>
|
|
359
|
+
<a name='L294'></a><a href='#L294'>294</a>
|
|
360
|
+
<a name='L295'></a><a href='#L295'>295</a>
|
|
361
|
+
<a name='L296'></a><a href='#L296'>296</a>
|
|
362
|
+
<a name='L297'></a><a href='#L297'>297</a>
|
|
363
|
+
<a name='L298'></a><a href='#L298'>298</a>
|
|
364
|
+
<a name='L299'></a><a href='#L299'>299</a>
|
|
365
|
+
<a name='L300'></a><a href='#L300'>300</a>
|
|
366
|
+
<a name='L301'></a><a href='#L301'>301</a>
|
|
367
|
+
<a name='L302'></a><a href='#L302'>302</a>
|
|
368
|
+
<a name='L303'></a><a href='#L303'>303</a>
|
|
369
|
+
<a name='L304'></a><a href='#L304'>304</a>
|
|
370
|
+
<a name='L305'></a><a href='#L305'>305</a>
|
|
371
|
+
<a name='L306'></a><a href='#L306'>306</a>
|
|
372
|
+
<a name='L307'></a><a href='#L307'>307</a>
|
|
373
|
+
<a name='L308'></a><a href='#L308'>308</a>
|
|
374
|
+
<a name='L309'></a><a href='#L309'>309</a>
|
|
375
|
+
<a name='L310'></a><a href='#L310'>310</a>
|
|
376
|
+
<a name='L311'></a><a href='#L311'>311</a>
|
|
377
|
+
<a name='L312'></a><a href='#L312'>312</a>
|
|
378
|
+
<a name='L313'></a><a href='#L313'>313</a>
|
|
379
|
+
<a name='L314'></a><a href='#L314'>314</a>
|
|
380
|
+
<a name='L315'></a><a href='#L315'>315</a>
|
|
381
|
+
<a name='L316'></a><a href='#L316'>316</a>
|
|
382
|
+
<a name='L317'></a><a href='#L317'>317</a>
|
|
383
|
+
<a name='L318'></a><a href='#L318'>318</a>
|
|
384
|
+
<a name='L319'></a><a href='#L319'>319</a>
|
|
385
|
+
<a name='L320'></a><a href='#L320'>320</a>
|
|
386
|
+
<a name='L321'></a><a href='#L321'>321</a>
|
|
387
|
+
<a name='L322'></a><a href='#L322'>322</a>
|
|
388
|
+
<a name='L323'></a><a href='#L323'>323</a>
|
|
389
|
+
<a name='L324'></a><a href='#L324'>324</a>
|
|
390
|
+
<a name='L325'></a><a href='#L325'>325</a>
|
|
391
|
+
<a name='L326'></a><a href='#L326'>326</a>
|
|
392
|
+
<a name='L327'></a><a href='#L327'>327</a>
|
|
393
|
+
<a name='L328'></a><a href='#L328'>328</a>
|
|
394
|
+
<a name='L329'></a><a href='#L329'>329</a>
|
|
395
|
+
<a name='L330'></a><a href='#L330'>330</a>
|
|
396
|
+
<a name='L331'></a><a href='#L331'>331</a>
|
|
397
|
+
<a name='L332'></a><a href='#L332'>332</a>
|
|
398
|
+
<a name='L333'></a><a href='#L333'>333</a>
|
|
399
|
+
<a name='L334'></a><a href='#L334'>334</a>
|
|
400
|
+
<a name='L335'></a><a href='#L335'>335</a>
|
|
401
|
+
<a name='L336'></a><a href='#L336'>336</a>
|
|
402
|
+
<a name='L337'></a><a href='#L337'>337</a>
|
|
403
|
+
<a name='L338'></a><a href='#L338'>338</a>
|
|
404
|
+
<a name='L339'></a><a href='#L339'>339</a>
|
|
405
|
+
<a name='L340'></a><a href='#L340'>340</a>
|
|
406
|
+
<a name='L341'></a><a href='#L341'>341</a>
|
|
407
|
+
<a name='L342'></a><a href='#L342'>342</a>
|
|
408
|
+
<a name='L343'></a><a href='#L343'>343</a>
|
|
409
|
+
<a name='L344'></a><a href='#L344'>344</a>
|
|
410
|
+
<a name='L345'></a><a href='#L345'>345</a>
|
|
411
|
+
<a name='L346'></a><a href='#L346'>346</a>
|
|
412
|
+
<a name='L347'></a><a href='#L347'>347</a>
|
|
413
|
+
<a name='L348'></a><a href='#L348'>348</a>
|
|
414
|
+
<a name='L349'></a><a href='#L349'>349</a>
|
|
415
|
+
<a name='L350'></a><a href='#L350'>350</a>
|
|
416
|
+
<a name='L351'></a><a href='#L351'>351</a>
|
|
417
|
+
<a name='L352'></a><a href='#L352'>352</a>
|
|
418
|
+
<a name='L353'></a><a href='#L353'>353</a>
|
|
419
|
+
<a name='L354'></a><a href='#L354'>354</a>
|
|
420
|
+
<a name='L355'></a><a href='#L355'>355</a>
|
|
421
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
422
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
423
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
424
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
425
|
+
<a name='L360'></a><a href='#L360'>360</a>
|
|
426
|
+
<a name='L361'></a><a href='#L361'>361</a>
|
|
427
|
+
<a name='L362'></a><a href='#L362'>362</a>
|
|
428
|
+
<a name='L363'></a><a href='#L363'>363</a>
|
|
429
|
+
<a name='L364'></a><a href='#L364'>364</a>
|
|
430
|
+
<a name='L365'></a><a href='#L365'>365</a>
|
|
431
|
+
<a name='L366'></a><a href='#L366'>366</a>
|
|
432
|
+
<a name='L367'></a><a href='#L367'>367</a>
|
|
433
|
+
<a name='L368'></a><a href='#L368'>368</a>
|
|
434
|
+
<a name='L369'></a><a href='#L369'>369</a>
|
|
435
|
+
<a name='L370'></a><a href='#L370'>370</a>
|
|
436
|
+
<a name='L371'></a><a href='#L371'>371</a>
|
|
437
|
+
<a name='L372'></a><a href='#L372'>372</a>
|
|
438
|
+
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
|
+
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
|
+
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
+
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
+
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
+
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
+
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
+
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
+
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
+
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
+
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
+
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
+
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
+
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
+
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
+
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
+
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
+
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
+
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
+
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
+
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
+
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
+
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
+
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
+
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
+
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
+
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
+
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
+
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
+
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
+
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
+
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
+
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
+
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
+
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
+
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
+
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
+
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
+
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
+
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
+
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
+
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
+
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
+
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
+
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
+
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
+
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
+
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
+
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
+
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
+
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
+
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
+
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
+
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
+
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
+
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
+
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
+
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
+
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
+
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
+
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
+
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
+
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
+
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
+
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
+
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
+
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
+
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
+
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
+
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
+
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
+
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
+
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
+
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
+
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
+
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
+
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
+
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
+
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
+
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
+
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
+
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
+
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
+
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
+
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
+
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
+
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
+
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
+
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
+
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
+
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
+
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
+
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
+
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
+
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
+
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
+
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
+
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
+
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
+
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
+
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
+
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
+
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
+
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
+
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
+
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
+
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
+
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
+
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
+
<a name='L608'></a><a href='#L608'>608</a>
|
|
674
|
+
<a name='L609'></a><a href='#L609'>609</a>
|
|
675
|
+
<a name='L610'></a><a href='#L610'>610</a>
|
|
676
|
+
<a name='L611'></a><a href='#L611'>611</a>
|
|
677
|
+
<a name='L612'></a><a href='#L612'>612</a>
|
|
678
|
+
<a name='L613'></a><a href='#L613'>613</a>
|
|
679
|
+
<a name='L614'></a><a href='#L614'>614</a>
|
|
680
|
+
<a name='L615'></a><a href='#L615'>615</a>
|
|
681
|
+
<a name='L616'></a><a href='#L616'>616</a>
|
|
682
|
+
<a name='L617'></a><a href='#L617'>617</a>
|
|
683
|
+
<a name='L618'></a><a href='#L618'>618</a>
|
|
684
|
+
<a name='L619'></a><a href='#L619'>619</a>
|
|
685
|
+
<a name='L620'></a><a href='#L620'>620</a>
|
|
686
|
+
<a name='L621'></a><a href='#L621'>621</a>
|
|
687
|
+
<a name='L622'></a><a href='#L622'>622</a>
|
|
688
|
+
<a name='L623'></a><a href='#L623'>623</a>
|
|
689
|
+
<a name='L624'></a><a href='#L624'>624</a>
|
|
690
|
+
<a name='L625'></a><a href='#L625'>625</a>
|
|
691
|
+
<a name='L626'></a><a href='#L626'>626</a>
|
|
692
|
+
<a name='L627'></a><a href='#L627'>627</a>
|
|
693
|
+
<a name='L628'></a><a href='#L628'>628</a>
|
|
694
|
+
<a name='L629'></a><a href='#L629'>629</a>
|
|
695
|
+
<a name='L630'></a><a href='#L630'>630</a>
|
|
696
|
+
<a name='L631'></a><a href='#L631'>631</a>
|
|
697
|
+
<a name='L632'></a><a href='#L632'>632</a>
|
|
698
|
+
<a name='L633'></a><a href='#L633'>633</a>
|
|
699
|
+
<a name='L634'></a><a href='#L634'>634</a>
|
|
700
|
+
<a name='L635'></a><a href='#L635'>635</a>
|
|
701
|
+
<a name='L636'></a><a href='#L636'>636</a>
|
|
702
|
+
<a name='L637'></a><a href='#L637'>637</a>
|
|
703
|
+
<a name='L638'></a><a href='#L638'>638</a>
|
|
704
|
+
<a name='L639'></a><a href='#L639'>639</a>
|
|
705
|
+
<a name='L640'></a><a href='#L640'>640</a>
|
|
706
|
+
<a name='L641'></a><a href='#L641'>641</a>
|
|
707
|
+
<a name='L642'></a><a href='#L642'>642</a>
|
|
708
|
+
<a name='L643'></a><a href='#L643'>643</a>
|
|
709
|
+
<a name='L644'></a><a href='#L644'>644</a>
|
|
710
|
+
<a name='L645'></a><a href='#L645'>645</a>
|
|
711
|
+
<a name='L646'></a><a href='#L646'>646</a>
|
|
712
|
+
<a name='L647'></a><a href='#L647'>647</a>
|
|
713
|
+
<a name='L648'></a><a href='#L648'>648</a>
|
|
714
|
+
<a name='L649'></a><a href='#L649'>649</a>
|
|
715
|
+
<a name='L650'></a><a href='#L650'>650</a>
|
|
716
|
+
<a name='L651'></a><a href='#L651'>651</a>
|
|
717
|
+
<a name='L652'></a><a href='#L652'>652</a>
|
|
718
|
+
<a name='L653'></a><a href='#L653'>653</a>
|
|
719
|
+
<a name='L654'></a><a href='#L654'>654</a>
|
|
720
|
+
<a name='L655'></a><a href='#L655'>655</a>
|
|
721
|
+
<a name='L656'></a><a href='#L656'>656</a>
|
|
722
|
+
<a name='L657'></a><a href='#L657'>657</a>
|
|
723
|
+
<a name='L658'></a><a href='#L658'>658</a>
|
|
724
|
+
<a name='L659'></a><a href='#L659'>659</a>
|
|
725
|
+
<a name='L660'></a><a href='#L660'>660</a>
|
|
726
|
+
<a name='L661'></a><a href='#L661'>661</a>
|
|
727
|
+
<a name='L662'></a><a href='#L662'>662</a>
|
|
728
|
+
<a name='L663'></a><a href='#L663'>663</a>
|
|
729
|
+
<a name='L664'></a><a href='#L664'>664</a>
|
|
730
|
+
<a name='L665'></a><a href='#L665'>665</a>
|
|
731
|
+
<a name='L666'></a><a href='#L666'>666</a>
|
|
732
|
+
<a name='L667'></a><a href='#L667'>667</a>
|
|
733
|
+
<a name='L668'></a><a href='#L668'>668</a>
|
|
734
|
+
<a name='L669'></a><a href='#L669'>669</a>
|
|
735
|
+
<a name='L670'></a><a href='#L670'>670</a>
|
|
736
|
+
<a name='L671'></a><a href='#L671'>671</a>
|
|
737
|
+
<a name='L672'></a><a href='#L672'>672</a>
|
|
738
|
+
<a name='L673'></a><a href='#L673'>673</a>
|
|
739
|
+
<a name='L674'></a><a href='#L674'>674</a>
|
|
740
|
+
<a name='L675'></a><a href='#L675'>675</a>
|
|
741
|
+
<a name='L676'></a><a href='#L676'>676</a>
|
|
742
|
+
<a name='L677'></a><a href='#L677'>677</a>
|
|
743
|
+
<a name='L678'></a><a href='#L678'>678</a>
|
|
744
|
+
<a name='L679'></a><a href='#L679'>679</a>
|
|
745
|
+
<a name='L680'></a><a href='#L680'>680</a>
|
|
746
|
+
<a name='L681'></a><a href='#L681'>681</a>
|
|
747
|
+
<a name='L682'></a><a href='#L682'>682</a>
|
|
748
|
+
<a name='L683'></a><a href='#L683'>683</a>
|
|
749
|
+
<a name='L684'></a><a href='#L684'>684</a>
|
|
750
|
+
<a name='L685'></a><a href='#L685'>685</a>
|
|
751
|
+
<a name='L686'></a><a href='#L686'>686</a>
|
|
752
|
+
<a name='L687'></a><a href='#L687'>687</a>
|
|
753
|
+
<a name='L688'></a><a href='#L688'>688</a>
|
|
754
|
+
<a name='L689'></a><a href='#L689'>689</a>
|
|
755
|
+
<a name='L690'></a><a href='#L690'>690</a>
|
|
756
|
+
<a name='L691'></a><a href='#L691'>691</a>
|
|
757
|
+
<a name='L692'></a><a href='#L692'>692</a>
|
|
758
|
+
<a name='L693'></a><a href='#L693'>693</a>
|
|
759
|
+
<a name='L694'></a><a href='#L694'>694</a>
|
|
760
|
+
<a name='L695'></a><a href='#L695'>695</a>
|
|
761
|
+
<a name='L696'></a><a href='#L696'>696</a>
|
|
762
|
+
<a name='L697'></a><a href='#L697'>697</a>
|
|
763
|
+
<a name='L698'></a><a href='#L698'>698</a>
|
|
764
|
+
<a name='L699'></a><a href='#L699'>699</a>
|
|
765
|
+
<a name='L700'></a><a href='#L700'>700</a>
|
|
766
|
+
<a name='L701'></a><a href='#L701'>701</a>
|
|
767
|
+
<a name='L702'></a><a href='#L702'>702</a>
|
|
768
|
+
<a name='L703'></a><a href='#L703'>703</a>
|
|
769
|
+
<a name='L704'></a><a href='#L704'>704</a>
|
|
770
|
+
<a name='L705'></a><a href='#L705'>705</a>
|
|
771
|
+
<a name='L706'></a><a href='#L706'>706</a>
|
|
772
|
+
<a name='L707'></a><a href='#L707'>707</a>
|
|
773
|
+
<a name='L708'></a><a href='#L708'>708</a>
|
|
774
|
+
<a name='L709'></a><a href='#L709'>709</a>
|
|
775
|
+
<a name='L710'></a><a href='#L710'>710</a>
|
|
776
|
+
<a name='L711'></a><a href='#L711'>711</a>
|
|
777
|
+
<a name='L712'></a><a href='#L712'>712</a>
|
|
778
|
+
<a name='L713'></a><a href='#L713'>713</a>
|
|
779
|
+
<a name='L714'></a><a href='#L714'>714</a>
|
|
780
|
+
<a name='L715'></a><a href='#L715'>715</a>
|
|
781
|
+
<a name='L716'></a><a href='#L716'>716</a>
|
|
782
|
+
<a name='L717'></a><a href='#L717'>717</a>
|
|
783
|
+
<a name='L718'></a><a href='#L718'>718</a>
|
|
784
|
+
<a name='L719'></a><a href='#L719'>719</a>
|
|
785
|
+
<a name='L720'></a><a href='#L720'>720</a>
|
|
786
|
+
<a name='L721'></a><a href='#L721'>721</a>
|
|
787
|
+
<a name='L722'></a><a href='#L722'>722</a>
|
|
788
|
+
<a name='L723'></a><a href='#L723'>723</a>
|
|
789
|
+
<a name='L724'></a><a href='#L724'>724</a>
|
|
790
|
+
<a name='L725'></a><a href='#L725'>725</a>
|
|
791
|
+
<a name='L726'></a><a href='#L726'>726</a>
|
|
792
|
+
<a name='L727'></a><a href='#L727'>727</a>
|
|
793
|
+
<a name='L728'></a><a href='#L728'>728</a>
|
|
794
|
+
<a name='L729'></a><a href='#L729'>729</a>
|
|
795
|
+
<a name='L730'></a><a href='#L730'>730</a>
|
|
796
|
+
<a name='L731'></a><a href='#L731'>731</a>
|
|
797
|
+
<a name='L732'></a><a href='#L732'>732</a>
|
|
798
|
+
<a name='L733'></a><a href='#L733'>733</a>
|
|
799
|
+
<a name='L734'></a><a href='#L734'>734</a>
|
|
800
|
+
<a name='L735'></a><a href='#L735'>735</a>
|
|
801
|
+
<a name='L736'></a><a href='#L736'>736</a>
|
|
802
|
+
<a name='L737'></a><a href='#L737'>737</a>
|
|
803
|
+
<a name='L738'></a><a href='#L738'>738</a>
|
|
804
|
+
<a name='L739'></a><a href='#L739'>739</a>
|
|
805
|
+
<a name='L740'></a><a href='#L740'>740</a>
|
|
806
|
+
<a name='L741'></a><a href='#L741'>741</a>
|
|
807
|
+
<a name='L742'></a><a href='#L742'>742</a>
|
|
808
|
+
<a name='L743'></a><a href='#L743'>743</a>
|
|
809
|
+
<a name='L744'></a><a href='#L744'>744</a>
|
|
810
|
+
<a name='L745'></a><a href='#L745'>745</a>
|
|
811
|
+
<a name='L746'></a><a href='#L746'>746</a>
|
|
812
|
+
<a name='L747'></a><a href='#L747'>747</a>
|
|
813
|
+
<a name='L748'></a><a href='#L748'>748</a>
|
|
814
|
+
<a name='L749'></a><a href='#L749'>749</a>
|
|
815
|
+
<a name='L750'></a><a href='#L750'>750</a>
|
|
816
|
+
<a name='L751'></a><a href='#L751'>751</a>
|
|
817
|
+
<a name='L752'></a><a href='#L752'>752</a>
|
|
818
|
+
<a name='L753'></a><a href='#L753'>753</a>
|
|
819
|
+
<a name='L754'></a><a href='#L754'>754</a>
|
|
820
|
+
<a name='L755'></a><a href='#L755'>755</a>
|
|
821
|
+
<a name='L756'></a><a href='#L756'>756</a>
|
|
822
|
+
<a name='L757'></a><a href='#L757'>757</a>
|
|
823
|
+
<a name='L758'></a><a href='#L758'>758</a>
|
|
824
|
+
<a name='L759'></a><a href='#L759'>759</a>
|
|
825
|
+
<a name='L760'></a><a href='#L760'>760</a>
|
|
826
|
+
<a name='L761'></a><a href='#L761'>761</a>
|
|
827
|
+
<a name='L762'></a><a href='#L762'>762</a>
|
|
828
|
+
<a name='L763'></a><a href='#L763'>763</a>
|
|
829
|
+
<a name='L764'></a><a href='#L764'>764</a>
|
|
830
|
+
<a name='L765'></a><a href='#L765'>765</a>
|
|
831
|
+
<a name='L766'></a><a href='#L766'>766</a>
|
|
832
|
+
<a name='L767'></a><a href='#L767'>767</a>
|
|
833
|
+
<a name='L768'></a><a href='#L768'>768</a>
|
|
834
|
+
<a name='L769'></a><a href='#L769'>769</a>
|
|
835
|
+
<a name='L770'></a><a href='#L770'>770</a>
|
|
836
|
+
<a name='L771'></a><a href='#L771'>771</a>
|
|
837
|
+
<a name='L772'></a><a href='#L772'>772</a>
|
|
838
|
+
<a name='L773'></a><a href='#L773'>773</a>
|
|
839
|
+
<a name='L774'></a><a href='#L774'>774</a>
|
|
840
|
+
<a name='L775'></a><a href='#L775'>775</a>
|
|
841
|
+
<a name='L776'></a><a href='#L776'>776</a>
|
|
842
|
+
<a name='L777'></a><a href='#L777'>777</a>
|
|
843
|
+
<a name='L778'></a><a href='#L778'>778</a>
|
|
844
|
+
<a name='L779'></a><a href='#L779'>779</a>
|
|
845
|
+
<a name='L780'></a><a href='#L780'>780</a>
|
|
846
|
+
<a name='L781'></a><a href='#L781'>781</a>
|
|
847
|
+
<a name='L782'></a><a href='#L782'>782</a>
|
|
848
|
+
<a name='L783'></a><a href='#L783'>783</a>
|
|
849
|
+
<a name='L784'></a><a href='#L784'>784</a>
|
|
850
|
+
<a name='L785'></a><a href='#L785'>785</a>
|
|
851
|
+
<a name='L786'></a><a href='#L786'>786</a>
|
|
852
|
+
<a name='L787'></a><a href='#L787'>787</a>
|
|
853
|
+
<a name='L788'></a><a href='#L788'>788</a>
|
|
854
|
+
<a name='L789'></a><a href='#L789'>789</a>
|
|
855
|
+
<a name='L790'></a><a href='#L790'>790</a>
|
|
856
|
+
<a name='L791'></a><a href='#L791'>791</a>
|
|
857
|
+
<a name='L792'></a><a href='#L792'>792</a>
|
|
858
|
+
<a name='L793'></a><a href='#L793'>793</a>
|
|
859
|
+
<a name='L794'></a><a href='#L794'>794</a>
|
|
860
|
+
<a name='L795'></a><a href='#L795'>795</a>
|
|
861
|
+
<a name='L796'></a><a href='#L796'>796</a>
|
|
862
|
+
<a name='L797'></a><a href='#L797'>797</a>
|
|
863
|
+
<a name='L798'></a><a href='#L798'>798</a>
|
|
864
|
+
<a name='L799'></a><a href='#L799'>799</a>
|
|
865
|
+
<a name='L800'></a><a href='#L800'>800</a>
|
|
866
|
+
<a name='L801'></a><a href='#L801'>801</a>
|
|
867
|
+
<a name='L802'></a><a href='#L802'>802</a>
|
|
868
|
+
<a name='L803'></a><a href='#L803'>803</a>
|
|
869
|
+
<a name='L804'></a><a href='#L804'>804</a>
|
|
870
|
+
<a name='L805'></a><a href='#L805'>805</a>
|
|
871
|
+
<a name='L806'></a><a href='#L806'>806</a>
|
|
872
|
+
<a name='L807'></a><a href='#L807'>807</a>
|
|
873
|
+
<a name='L808'></a><a href='#L808'>808</a>
|
|
874
|
+
<a name='L809'></a><a href='#L809'>809</a>
|
|
875
|
+
<a name='L810'></a><a href='#L810'>810</a>
|
|
876
|
+
<a name='L811'></a><a href='#L811'>811</a>
|
|
877
|
+
<a name='L812'></a><a href='#L812'>812</a>
|
|
878
|
+
<a name='L813'></a><a href='#L813'>813</a>
|
|
879
|
+
<a name='L814'></a><a href='#L814'>814</a>
|
|
880
|
+
<a name='L815'></a><a href='#L815'>815</a>
|
|
881
|
+
<a name='L816'></a><a href='#L816'>816</a>
|
|
882
|
+
<a name='L817'></a><a href='#L817'>817</a>
|
|
883
|
+
<a name='L818'></a><a href='#L818'>818</a>
|
|
884
|
+
<a name='L819'></a><a href='#L819'>819</a>
|
|
885
|
+
<a name='L820'></a><a href='#L820'>820</a>
|
|
886
|
+
<a name='L821'></a><a href='#L821'>821</a>
|
|
887
|
+
<a name='L822'></a><a href='#L822'>822</a>
|
|
888
|
+
<a name='L823'></a><a href='#L823'>823</a>
|
|
889
|
+
<a name='L824'></a><a href='#L824'>824</a>
|
|
890
|
+
<a name='L825'></a><a href='#L825'>825</a>
|
|
891
|
+
<a name='L826'></a><a href='#L826'>826</a>
|
|
892
|
+
<a name='L827'></a><a href='#L827'>827</a>
|
|
893
|
+
<a name='L828'></a><a href='#L828'>828</a>
|
|
894
|
+
<a name='L829'></a><a href='#L829'>829</a>
|
|
895
|
+
<a name='L830'></a><a href='#L830'>830</a>
|
|
896
|
+
<a name='L831'></a><a href='#L831'>831</a>
|
|
897
|
+
<a name='L832'></a><a href='#L832'>832</a>
|
|
898
|
+
<a name='L833'></a><a href='#L833'>833</a>
|
|
899
|
+
<a name='L834'></a><a href='#L834'>834</a>
|
|
900
|
+
<a name='L835'></a><a href='#L835'>835</a>
|
|
901
|
+
<a name='L836'></a><a href='#L836'>836</a>
|
|
902
|
+
<a name='L837'></a><a href='#L837'>837</a>
|
|
903
|
+
<a name='L838'></a><a href='#L838'>838</a>
|
|
904
|
+
<a name='L839'></a><a href='#L839'>839</a>
|
|
905
|
+
<a name='L840'></a><a href='#L840'>840</a>
|
|
906
|
+
<a name='L841'></a><a href='#L841'>841</a>
|
|
907
|
+
<a name='L842'></a><a href='#L842'>842</a>
|
|
908
|
+
<a name='L843'></a><a href='#L843'>843</a>
|
|
909
|
+
<a name='L844'></a><a href='#L844'>844</a>
|
|
910
|
+
<a name='L845'></a><a href='#L845'>845</a>
|
|
911
|
+
<a name='L846'></a><a href='#L846'>846</a>
|
|
912
|
+
<a name='L847'></a><a href='#L847'>847</a>
|
|
913
|
+
<a name='L848'></a><a href='#L848'>848</a>
|
|
914
|
+
<a name='L849'></a><a href='#L849'>849</a>
|
|
915
|
+
<a name='L850'></a><a href='#L850'>850</a>
|
|
916
|
+
<a name='L851'></a><a href='#L851'>851</a>
|
|
917
|
+
<a name='L852'></a><a href='#L852'>852</a>
|
|
918
|
+
<a name='L853'></a><a href='#L853'>853</a>
|
|
919
|
+
<a name='L854'></a><a href='#L854'>854</a>
|
|
920
|
+
<a name='L855'></a><a href='#L855'>855</a>
|
|
921
|
+
<a name='L856'></a><a href='#L856'>856</a>
|
|
922
|
+
<a name='L857'></a><a href='#L857'>857</a>
|
|
923
|
+
<a name='L858'></a><a href='#L858'>858</a>
|
|
924
|
+
<a name='L859'></a><a href='#L859'>859</a>
|
|
925
|
+
<a name='L860'></a><a href='#L860'>860</a>
|
|
926
|
+
<a name='L861'></a><a href='#L861'>861</a>
|
|
927
|
+
<a name='L862'></a><a href='#L862'>862</a>
|
|
928
|
+
<a name='L863'></a><a href='#L863'>863</a>
|
|
929
|
+
<a name='L864'></a><a href='#L864'>864</a>
|
|
930
|
+
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
|
+
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
|
+
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
+
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
+
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
+
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
+
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
+
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
+
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
+
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
+
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
+
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
+
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
+
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
+
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
+
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
+
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
+
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
+
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
+
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
+
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
+
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
+
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
+
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
+
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
+
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
+
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
+
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
+
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
+
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
+
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
+
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
+
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
+
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
+
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
+
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
+
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
+
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
+
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
+
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
+
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
+
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
+
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
+
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
+
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
+
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
+
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
+
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
+
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
+
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
+
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
+
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
+
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
+
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
+
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
+
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
+
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
+
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
+
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
+
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
+
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
+
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
+
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
+
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
+
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
+
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
+
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
+
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
+
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
+
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
+
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
+
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
+
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
+
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
+
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
+
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
+
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
+
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
+
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
+
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
+
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
+
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
+
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
+
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
+
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
+
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
+
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
+
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
+
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
+
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
+
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
+
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
+
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
+
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
+
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
+
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
+
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
+
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
+
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
+
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
+
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
+
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
+
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
+
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
+
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
+
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
+
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
+
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
+
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
+
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
+
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
+
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
+
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
+
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
+
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
+
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
+
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
+
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
+
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
+
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
+
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
+
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
+
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
+
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
+
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
+
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
+
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
+
<a name='L992'></a><a href='#L992'>992</a>
|
|
1058
|
+
<a name='L993'></a><a href='#L993'>993</a>
|
|
1059
|
+
<a name='L994'></a><a href='#L994'>994</a>
|
|
1060
|
+
<a name='L995'></a><a href='#L995'>995</a>
|
|
1061
|
+
<a name='L996'></a><a href='#L996'>996</a>
|
|
1062
|
+
<a name='L997'></a><a href='#L997'>997</a>
|
|
1063
|
+
<a name='L998'></a><a href='#L998'>998</a>
|
|
1064
|
+
<a name='L999'></a><a href='#L999'>999</a>
|
|
1065
|
+
<a name='L1000'></a><a href='#L1000'>1000</a>
|
|
1066
|
+
<a name='L1001'></a><a href='#L1001'>1001</a>
|
|
1067
|
+
<a name='L1002'></a><a href='#L1002'>1002</a>
|
|
1068
|
+
<a name='L1003'></a><a href='#L1003'>1003</a>
|
|
1069
|
+
<a name='L1004'></a><a href='#L1004'>1004</a>
|
|
1070
|
+
<a name='L1005'></a><a href='#L1005'>1005</a>
|
|
1071
|
+
<a name='L1006'></a><a href='#L1006'>1006</a>
|
|
1072
|
+
<a name='L1007'></a><a href='#L1007'>1007</a>
|
|
1073
|
+
<a name='L1008'></a><a href='#L1008'>1008</a>
|
|
1074
|
+
<a name='L1009'></a><a href='#L1009'>1009</a>
|
|
1075
|
+
<a name='L1010'></a><a href='#L1010'>1010</a>
|
|
1076
|
+
<a name='L1011'></a><a href='#L1011'>1011</a>
|
|
1077
|
+
<a name='L1012'></a><a href='#L1012'>1012</a>
|
|
1078
|
+
<a name='L1013'></a><a href='#L1013'>1013</a>
|
|
1079
|
+
<a name='L1014'></a><a href='#L1014'>1014</a>
|
|
1080
|
+
<a name='L1015'></a><a href='#L1015'>1015</a>
|
|
1081
|
+
<a name='L1016'></a><a href='#L1016'>1016</a>
|
|
1082
|
+
<a name='L1017'></a><a href='#L1017'>1017</a>
|
|
1083
|
+
<a name='L1018'></a><a href='#L1018'>1018</a>
|
|
1084
|
+
<a name='L1019'></a><a href='#L1019'>1019</a>
|
|
1085
|
+
<a name='L1020'></a><a href='#L1020'>1020</a>
|
|
1086
|
+
<a name='L1021'></a><a href='#L1021'>1021</a>
|
|
1087
|
+
<a name='L1022'></a><a href='#L1022'>1022</a>
|
|
1088
|
+
<a name='L1023'></a><a href='#L1023'>1023</a>
|
|
1089
|
+
<a name='L1024'></a><a href='#L1024'>1024</a>
|
|
1090
|
+
<a name='L1025'></a><a href='#L1025'>1025</a>
|
|
1091
|
+
<a name='L1026'></a><a href='#L1026'>1026</a>
|
|
1092
|
+
<a name='L1027'></a><a href='#L1027'>1027</a>
|
|
1093
|
+
<a name='L1028'></a><a href='#L1028'>1028</a>
|
|
1094
|
+
<a name='L1029'></a><a href='#L1029'>1029</a>
|
|
1095
|
+
<a name='L1030'></a><a href='#L1030'>1030</a>
|
|
1096
|
+
<a name='L1031'></a><a href='#L1031'>1031</a>
|
|
1097
|
+
<a name='L1032'></a><a href='#L1032'>1032</a>
|
|
1098
|
+
<a name='L1033'></a><a href='#L1033'>1033</a>
|
|
1099
|
+
<a name='L1034'></a><a href='#L1034'>1034</a>
|
|
1100
|
+
<a name='L1035'></a><a href='#L1035'>1035</a>
|
|
1101
|
+
<a name='L1036'></a><a href='#L1036'>1036</a>
|
|
1102
|
+
<a name='L1037'></a><a href='#L1037'>1037</a>
|
|
1103
|
+
<a name='L1038'></a><a href='#L1038'>1038</a>
|
|
1104
|
+
<a name='L1039'></a><a href='#L1039'>1039</a>
|
|
1105
|
+
<a name='L1040'></a><a href='#L1040'>1040</a>
|
|
1106
|
+
<a name='L1041'></a><a href='#L1041'>1041</a>
|
|
1107
|
+
<a name='L1042'></a><a href='#L1042'>1042</a>
|
|
1108
|
+
<a name='L1043'></a><a href='#L1043'>1043</a>
|
|
1109
|
+
<a name='L1044'></a><a href='#L1044'>1044</a>
|
|
1110
|
+
<a name='L1045'></a><a href='#L1045'>1045</a>
|
|
1111
|
+
<a name='L1046'></a><a href='#L1046'>1046</a>
|
|
1112
|
+
<a name='L1047'></a><a href='#L1047'>1047</a>
|
|
1113
|
+
<a name='L1048'></a><a href='#L1048'>1048</a>
|
|
1114
|
+
<a name='L1049'></a><a href='#L1049'>1049</a>
|
|
1115
|
+
<a name='L1050'></a><a href='#L1050'>1050</a>
|
|
1116
|
+
<a name='L1051'></a><a href='#L1051'>1051</a>
|
|
1117
|
+
<a name='L1052'></a><a href='#L1052'>1052</a>
|
|
1118
|
+
<a name='L1053'></a><a href='#L1053'>1053</a>
|
|
1119
|
+
<a name='L1054'></a><a href='#L1054'>1054</a>
|
|
1120
|
+
<a name='L1055'></a><a href='#L1055'>1055</a>
|
|
1121
|
+
<a name='L1056'></a><a href='#L1056'>1056</a>
|
|
1122
|
+
<a name='L1057'></a><a href='#L1057'>1057</a>
|
|
1123
|
+
<a name='L1058'></a><a href='#L1058'>1058</a>
|
|
1124
|
+
<a name='L1059'></a><a href='#L1059'>1059</a>
|
|
1125
|
+
<a name='L1060'></a><a href='#L1060'>1060</a>
|
|
1126
|
+
<a name='L1061'></a><a href='#L1061'>1061</a>
|
|
1127
|
+
<a name='L1062'></a><a href='#L1062'>1062</a>
|
|
1128
|
+
<a name='L1063'></a><a href='#L1063'>1063</a>
|
|
1129
|
+
<a name='L1064'></a><a href='#L1064'>1064</a>
|
|
1130
|
+
<a name='L1065'></a><a href='#L1065'>1065</a>
|
|
1131
|
+
<a name='L1066'></a><a href='#L1066'>1066</a>
|
|
1132
|
+
<a name='L1067'></a><a href='#L1067'>1067</a>
|
|
1133
|
+
<a name='L1068'></a><a href='#L1068'>1068</a>
|
|
1134
|
+
<a name='L1069'></a><a href='#L1069'>1069</a>
|
|
1135
|
+
<a name='L1070'></a><a href='#L1070'>1070</a>
|
|
1136
|
+
<a name='L1071'></a><a href='#L1071'>1071</a>
|
|
1137
|
+
<a name='L1072'></a><a href='#L1072'>1072</a>
|
|
1138
|
+
<a name='L1073'></a><a href='#L1073'>1073</a>
|
|
1139
|
+
<a name='L1074'></a><a href='#L1074'>1074</a>
|
|
1140
|
+
<a name='L1075'></a><a href='#L1075'>1075</a>
|
|
1141
|
+
<a name='L1076'></a><a href='#L1076'>1076</a>
|
|
1142
|
+
<a name='L1077'></a><a href='#L1077'>1077</a>
|
|
1143
|
+
<a name='L1078'></a><a href='#L1078'>1078</a>
|
|
1144
|
+
<a name='L1079'></a><a href='#L1079'>1079</a>
|
|
1145
|
+
<a name='L1080'></a><a href='#L1080'>1080</a>
|
|
1146
|
+
<a name='L1081'></a><a href='#L1081'>1081</a>
|
|
1147
|
+
<a name='L1082'></a><a href='#L1082'>1082</a>
|
|
1148
|
+
<a name='L1083'></a><a href='#L1083'>1083</a>
|
|
1149
|
+
<a name='L1084'></a><a href='#L1084'>1084</a>
|
|
1150
|
+
<a name='L1085'></a><a href='#L1085'>1085</a>
|
|
1151
|
+
<a name='L1086'></a><a href='#L1086'>1086</a>
|
|
1152
|
+
<a name='L1087'></a><a href='#L1087'>1087</a>
|
|
1153
|
+
<a name='L1088'></a><a href='#L1088'>1088</a>
|
|
1154
|
+
<a name='L1089'></a><a href='#L1089'>1089</a>
|
|
1155
|
+
<a name='L1090'></a><a href='#L1090'>1090</a>
|
|
1156
|
+
<a name='L1091'></a><a href='#L1091'>1091</a>
|
|
1157
|
+
<a name='L1092'></a><a href='#L1092'>1092</a>
|
|
1158
|
+
<a name='L1093'></a><a href='#L1093'>1093</a>
|
|
1159
|
+
<a name='L1094'></a><a href='#L1094'>1094</a>
|
|
1160
|
+
<a name='L1095'></a><a href='#L1095'>1095</a>
|
|
1161
|
+
<a name='L1096'></a><a href='#L1096'>1096</a>
|
|
1162
|
+
<a name='L1097'></a><a href='#L1097'>1097</a>
|
|
1163
|
+
<a name='L1098'></a><a href='#L1098'>1098</a>
|
|
1164
|
+
<a name='L1099'></a><a href='#L1099'>1099</a>
|
|
1165
|
+
<a name='L1100'></a><a href='#L1100'>1100</a>
|
|
1166
|
+
<a name='L1101'></a><a href='#L1101'>1101</a>
|
|
1167
|
+
<a name='L1102'></a><a href='#L1102'>1102</a>
|
|
1168
|
+
<a name='L1103'></a><a href='#L1103'>1103</a>
|
|
1169
|
+
<a name='L1104'></a><a href='#L1104'>1104</a>
|
|
1170
|
+
<a name='L1105'></a><a href='#L1105'>1105</a>
|
|
1171
|
+
<a name='L1106'></a><a href='#L1106'>1106</a>
|
|
1172
|
+
<a name='L1107'></a><a href='#L1107'>1107</a>
|
|
1173
|
+
<a name='L1108'></a><a href='#L1108'>1108</a>
|
|
1174
|
+
<a name='L1109'></a><a href='#L1109'>1109</a>
|
|
1175
|
+
<a name='L1110'></a><a href='#L1110'>1110</a>
|
|
1176
|
+
<a name='L1111'></a><a href='#L1111'>1111</a>
|
|
1177
|
+
<a name='L1112'></a><a href='#L1112'>1112</a>
|
|
1178
|
+
<a name='L1113'></a><a href='#L1113'>1113</a>
|
|
1179
|
+
<a name='L1114'></a><a href='#L1114'>1114</a>
|
|
1180
|
+
<a name='L1115'></a><a href='#L1115'>1115</a>
|
|
1181
|
+
<a name='L1116'></a><a href='#L1116'>1116</a>
|
|
1182
|
+
<a name='L1117'></a><a href='#L1117'>1117</a>
|
|
1183
|
+
<a name='L1118'></a><a href='#L1118'>1118</a>
|
|
1184
|
+
<a name='L1119'></a><a href='#L1119'>1119</a>
|
|
1185
|
+
<a name='L1120'></a><a href='#L1120'>1120</a>
|
|
1186
|
+
<a name='L1121'></a><a href='#L1121'>1121</a>
|
|
1187
|
+
<a name='L1122'></a><a href='#L1122'>1122</a>
|
|
1188
|
+
<a name='L1123'></a><a href='#L1123'>1123</a>
|
|
1189
|
+
<a name='L1124'></a><a href='#L1124'>1124</a>
|
|
1190
|
+
<a name='L1125'></a><a href='#L1125'>1125</a>
|
|
1191
|
+
<a name='L1126'></a><a href='#L1126'>1126</a>
|
|
1192
|
+
<a name='L1127'></a><a href='#L1127'>1127</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
1193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1204
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1205
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1206
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1208
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1209
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1211
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1212
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1214
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1216
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1218
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1220
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1224
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1228
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1241
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1247
|
+
<span class="cline-any cline-no"> </span>
|
|
1248
|
+
<span class="cline-any cline-no"> </span>
|
|
1249
|
+
<span class="cline-any cline-no"> </span>
|
|
1250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
+
<span class="cline-any cline-no"> </span>
|
|
1256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
+
<span class="cline-any cline-no"> </span>
|
|
1263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1264
|
+
<span class="cline-any cline-no"> </span>
|
|
1265
|
+
<span class="cline-any cline-no"> </span>
|
|
1266
|
+
<span class="cline-any cline-no"> </span>
|
|
1267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
+
<span class="cline-any cline-no"> </span>
|
|
1269
|
+
<span class="cline-any cline-no"> </span>
|
|
1270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
+
<span class="cline-any cline-no"> </span>
|
|
1272
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1273
|
+
<span class="cline-any cline-no"> </span>
|
|
1274
|
+
<span class="cline-any cline-no"> </span>
|
|
1275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1276
|
+
<span class="cline-any cline-no"> </span>
|
|
1277
|
+
<span class="cline-any cline-no"> </span>
|
|
1278
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1279
|
+
<span class="cline-any cline-no"> </span>
|
|
1280
|
+
<span class="cline-any cline-no"> </span>
|
|
1281
|
+
<span class="cline-any cline-no"> </span>
|
|
1282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1285
|
+
<span class="cline-any cline-no"> </span>
|
|
1286
|
+
<span class="cline-any cline-no"> </span>
|
|
1287
|
+
<span class="cline-any cline-no"> </span>
|
|
1288
|
+
<span class="cline-any cline-no"> </span>
|
|
1289
|
+
<span class="cline-any cline-no"> </span>
|
|
1290
|
+
<span class="cline-any cline-no"> </span>
|
|
1291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1293
|
+
<span class="cline-any cline-no"> </span>
|
|
1294
|
+
<span class="cline-any cline-no"> </span>
|
|
1295
|
+
<span class="cline-any cline-no"> </span>
|
|
1296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1300
|
+
<span class="cline-any cline-no"> </span>
|
|
1301
|
+
<span class="cline-any cline-no"> </span>
|
|
1302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1303
|
+
<span class="cline-any cline-no"> </span>
|
|
1304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1308
|
+
<span class="cline-any cline-no"> </span>
|
|
1309
|
+
<span class="cline-any cline-no"> </span>
|
|
1310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1311
|
+
<span class="cline-any cline-no"> </span>
|
|
1312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1316
|
+
<span class="cline-any cline-no"> </span>
|
|
1317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1318
|
+
<span class="cline-any cline-no"> </span>
|
|
1319
|
+
<span class="cline-any cline-no"> </span>
|
|
1320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1321
|
+
<span class="cline-any cline-no"> </span>
|
|
1322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1323
|
+
<span class="cline-any cline-no"> </span>
|
|
1324
|
+
<span class="cline-any cline-no"> </span>
|
|
1325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1329
|
+
<span class="cline-any cline-no"> </span>
|
|
1330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1331
|
+
<span class="cline-any cline-no"> </span>
|
|
1332
|
+
<span class="cline-any cline-no"> </span>
|
|
1333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1334
|
+
<span class="cline-any cline-no"> </span>
|
|
1335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1337
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1338
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1339
|
+
<span class="cline-any cline-no"> </span>
|
|
1340
|
+
<span class="cline-any cline-no"> </span>
|
|
1341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1342
|
+
<span class="cline-any cline-no"> </span>
|
|
1343
|
+
<span class="cline-any cline-no"> </span>
|
|
1344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1345
|
+
<span class="cline-any cline-no"> </span>
|
|
1346
|
+
<span class="cline-any cline-no"> </span>
|
|
1347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1348
|
+
<span class="cline-any cline-no"> </span>
|
|
1349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1351
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1353
|
+
<span class="cline-any cline-no"> </span>
|
|
1354
|
+
<span class="cline-any cline-no"> </span>
|
|
1355
|
+
<span class="cline-any cline-no"> </span>
|
|
1356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1357
|
+
<span class="cline-any cline-no"> </span>
|
|
1358
|
+
<span class="cline-any cline-no"> </span>
|
|
1359
|
+
<span class="cline-any cline-no"> </span>
|
|
1360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1366
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1370
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1372
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1375
|
+
<span class="cline-any cline-no"> </span>
|
|
1376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1377
|
+
<span class="cline-any cline-no"> </span>
|
|
1378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1381
|
+
<span class="cline-any cline-no"> </span>
|
|
1382
|
+
<span class="cline-any cline-no"> </span>
|
|
1383
|
+
<span class="cline-any cline-no"> </span>
|
|
1384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1386
|
+
<span class="cline-any cline-no"> </span>
|
|
1387
|
+
<span class="cline-any cline-no"> </span>
|
|
1388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1391
|
+
<span class="cline-any cline-no"> </span>
|
|
1392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1395
|
+
<span class="cline-any cline-no"> </span>
|
|
1396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1402
|
+
<span class="cline-any cline-no"> </span>
|
|
1403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1406
|
+
<span class="cline-any cline-no"> </span>
|
|
1407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1413
|
+
<span class="cline-any cline-no"> </span>
|
|
1414
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1417
|
+
<span class="cline-any cline-no"> </span>
|
|
1418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1420
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1421
|
+
<span class="cline-any cline-no"> </span>
|
|
1422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1423
|
+
<span class="cline-any cline-no"> </span>
|
|
1424
|
+
<span class="cline-any cline-no"> </span>
|
|
1425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1426
|
+
<span class="cline-any cline-no"> </span>
|
|
1427
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1429
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1431
|
+
<span class="cline-any cline-no"> </span>
|
|
1432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1433
|
+
<span class="cline-any cline-no"> </span>
|
|
1434
|
+
<span class="cline-any cline-no"> </span>
|
|
1435
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1436
|
+
<span class="cline-any cline-no"> </span>
|
|
1437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1439
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1441
|
+
<span class="cline-any cline-no"> </span>
|
|
1442
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1443
|
+
<span class="cline-any cline-no"> </span>
|
|
1444
|
+
<span class="cline-any cline-no"> </span>
|
|
1445
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1446
|
+
<span class="cline-any cline-no"> </span>
|
|
1447
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1448
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1449
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1450
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1451
|
+
<span class="cline-any cline-no"> </span>
|
|
1452
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
+
<span class="cline-any cline-no"> </span>
|
|
1454
|
+
<span class="cline-any cline-no"> </span>
|
|
1455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1456
|
+
<span class="cline-any cline-no"> </span>
|
|
1457
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1458
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1459
|
+
<span class="cline-any cline-no"> </span>
|
|
1460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1462
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1463
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1466
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1471
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1472
|
+
<span class="cline-any cline-no"> </span>
|
|
1473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
+
<span class="cline-any cline-no"> </span>
|
|
1475
|
+
<span class="cline-any cline-no"> </span>
|
|
1476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1477
|
+
<span class="cline-any cline-no"> </span>
|
|
1478
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1479
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1480
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1482
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1483
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1484
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1487
|
+
<span class="cline-any cline-no"> </span>
|
|
1488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1489
|
+
<span class="cline-any cline-no"> </span>
|
|
1490
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1491
|
+
<span class="cline-any cline-no"> </span>
|
|
1492
|
+
<span class="cline-any cline-no"> </span>
|
|
1493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1494
|
+
<span class="cline-any cline-no"> </span>
|
|
1495
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1496
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1497
|
+
<span class="cline-any cline-no"> </span>
|
|
1498
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1500
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1503
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
+
<span class="cline-any cline-no"> </span>
|
|
1509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
+
<span class="cline-any cline-no"> </span>
|
|
1511
|
+
<span class="cline-any cline-no"> </span>
|
|
1512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
+
<span class="cline-any cline-no"> </span>
|
|
1514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1522
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1523
|
+
<span class="cline-any cline-no"> </span>
|
|
1524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1525
|
+
<span class="cline-any cline-no"> </span>
|
|
1526
|
+
<span class="cline-any cline-no"> </span>
|
|
1527
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1528
|
+
<span class="cline-any cline-no"> </span>
|
|
1529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1531
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1532
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1533
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1535
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1536
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1537
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1538
|
+
<span class="cline-any cline-no"> </span>
|
|
1539
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1540
|
+
<span class="cline-any cline-no"> </span>
|
|
1541
|
+
<span class="cline-any cline-no"> </span>
|
|
1542
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1543
|
+
<span class="cline-any cline-no"> </span>
|
|
1544
|
+
<span class="cline-any cline-no"> </span>
|
|
1545
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1546
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1547
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1548
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1552
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1553
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1554
|
+
<span class="cline-any cline-no"> </span>
|
|
1555
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1556
|
+
<span class="cline-any cline-no"> </span>
|
|
1557
|
+
<span class="cline-any cline-no"> </span>
|
|
1558
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1559
|
+
<span class="cline-any cline-no"> </span>
|
|
1560
|
+
<span class="cline-any cline-no"> </span>
|
|
1561
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1562
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1563
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1565
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1566
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1567
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1568
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1569
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1570
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1571
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1572
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1573
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1574
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1575
|
+
<span class="cline-any cline-no"> </span>
|
|
1576
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1577
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1578
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1579
|
+
<span class="cline-any cline-no"> </span>
|
|
1580
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1581
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1582
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1583
|
+
<span class="cline-any cline-no"> </span>
|
|
1584
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1585
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1587
|
+
<span class="cline-any cline-no"> </span>
|
|
1588
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1589
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1590
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1591
|
+
<span class="cline-any cline-no"> </span>
|
|
1592
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1593
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1594
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1595
|
+
<span class="cline-any cline-no"> </span>
|
|
1596
|
+
<span class="cline-any cline-no"> </span>
|
|
1597
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1598
|
+
<span class="cline-any cline-no"> </span>
|
|
1599
|
+
<span class="cline-any cline-no"> </span>
|
|
1600
|
+
<span class="cline-any cline-no"> </span>
|
|
1601
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1602
|
+
<span class="cline-any cline-no"> </span>
|
|
1603
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1604
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1605
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1606
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1607
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1608
|
+
<span class="cline-any cline-no"> </span>
|
|
1609
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1610
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1611
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1612
|
+
<span class="cline-any cline-no"> </span>
|
|
1613
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1614
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1615
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1616
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1617
|
+
<span class="cline-any cline-no"> </span>
|
|
1618
|
+
<span class="cline-any cline-no"> </span>
|
|
1619
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1620
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1621
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1622
|
+
<span class="cline-any cline-no"> </span>
|
|
1623
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1624
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1625
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1626
|
+
<span class="cline-any cline-no"> </span>
|
|
1627
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1628
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1629
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1630
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1631
|
+
<span class="cline-any cline-no"> </span>
|
|
1632
|
+
<span class="cline-any cline-no"> </span>
|
|
1633
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1634
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1635
|
+
<span class="cline-any cline-no"> </span>
|
|
1636
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1637
|
+
<span class="cline-any cline-no"> </span>
|
|
1638
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1639
|
+
<span class="cline-any cline-no"> </span>
|
|
1640
|
+
<span class="cline-any cline-no"> </span>
|
|
1641
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1642
|
+
<span class="cline-any cline-no"> </span>
|
|
1643
|
+
<span class="cline-any cline-no"> </span>
|
|
1644
|
+
<span class="cline-any cline-no"> </span>
|
|
1645
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1646
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1647
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1648
|
+
<span class="cline-any cline-no"> </span>
|
|
1649
|
+
<span class="cline-any cline-no"> </span>
|
|
1650
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1651
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1652
|
+
<span class="cline-any cline-no"> </span>
|
|
1653
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1654
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1655
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1656
|
+
<span class="cline-any cline-no"> </span>
|
|
1657
|
+
<span class="cline-any cline-no"> </span>
|
|
1658
|
+
<span class="cline-any cline-no"> </span>
|
|
1659
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1660
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1661
|
+
<span class="cline-any cline-no"> </span>
|
|
1662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1663
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
+
<span class="cline-any cline-no"> </span>
|
|
1666
|
+
<span class="cline-any cline-no"> </span>
|
|
1667
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1668
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1669
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1670
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1671
|
+
<span class="cline-any cline-no"> </span>
|
|
1672
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1673
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1674
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1675
|
+
<span class="cline-any cline-no"> </span>
|
|
1676
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1677
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1678
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1679
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1680
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1681
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1682
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1683
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1684
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1685
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1686
|
+
<span class="cline-any cline-no"> </span>
|
|
1687
|
+
<span class="cline-any cline-no"> </span>
|
|
1688
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1689
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1690
|
+
<span class="cline-any cline-no"> </span>
|
|
1691
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1692
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1693
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1694
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1695
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1696
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1697
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1698
|
+
<span class="cline-any cline-no"> </span>
|
|
1699
|
+
<span class="cline-any cline-no"> </span>
|
|
1700
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1701
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1702
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1703
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1704
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1705
|
+
<span class="cline-any cline-no"> </span>
|
|
1706
|
+
<span class="cline-any cline-no"> </span>
|
|
1707
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1708
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1709
|
+
<span class="cline-any cline-no"> </span>
|
|
1710
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1711
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1712
|
+
<span class="cline-any cline-no"> </span>
|
|
1713
|
+
<span class="cline-any cline-no"> </span>
|
|
1714
|
+
<span class="cline-any cline-no"> </span>
|
|
1715
|
+
<span class="cline-any cline-no"> </span>
|
|
1716
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1717
|
+
<span class="cline-any cline-no"> </span>
|
|
1718
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1719
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1720
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1721
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1723
|
+
<span class="cline-any cline-no"> </span>
|
|
1724
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1725
|
+
<span class="cline-any cline-no"> </span>
|
|
1726
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1727
|
+
<span class="cline-any cline-no"> </span>
|
|
1728
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1729
|
+
<span class="cline-any cline-no"> </span>
|
|
1730
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1731
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1732
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1733
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1734
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1735
|
+
<span class="cline-any cline-no"> </span>
|
|
1736
|
+
<span class="cline-any cline-no"> </span>
|
|
1737
|
+
<span class="cline-any cline-no"> </span>
|
|
1738
|
+
<span class="cline-any cline-no"> </span>
|
|
1739
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1740
|
+
<span class="cline-any cline-no"> </span>
|
|
1741
|
+
<span class="cline-any cline-no"> </span>
|
|
1742
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1744
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1745
|
+
<span class="cline-any cline-no"> </span>
|
|
1746
|
+
<span class="cline-any cline-no"> </span>
|
|
1747
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1748
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1750
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1752
|
+
<span class="cline-any cline-no"> </span>
|
|
1753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1755
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1756
|
+
<span class="cline-any cline-no"> </span>
|
|
1757
|
+
<span class="cline-any cline-no"> </span>
|
|
1758
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1760
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1761
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1762
|
+
<span class="cline-any cline-no"> </span>
|
|
1763
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1764
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1765
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1766
|
+
<span class="cline-any cline-no"> </span>
|
|
1767
|
+
<span class="cline-any cline-no"> </span>
|
|
1768
|
+
<span class="cline-any cline-no"> </span>
|
|
1769
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1770
|
+
<span class="cline-any cline-no"> </span>
|
|
1771
|
+
<span class="cline-any cline-no"> </span>
|
|
1772
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1773
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1774
|
+
<span class="cline-any cline-no"> </span>
|
|
1775
|
+
<span class="cline-any cline-no"> </span>
|
|
1776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1777
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1778
|
+
<span class="cline-any cline-no"> </span>
|
|
1779
|
+
<span class="cline-any cline-no"> </span>
|
|
1780
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1781
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1782
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1783
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1784
|
+
<span class="cline-any cline-no"> </span>
|
|
1785
|
+
<span class="cline-any cline-no"> </span>
|
|
1786
|
+
<span class="cline-any cline-no"> </span>
|
|
1787
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1788
|
+
<span class="cline-any cline-no"> </span>
|
|
1789
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1790
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1791
|
+
<span class="cline-any cline-no"> </span>
|
|
1792
|
+
<span class="cline-any cline-no"> </span>
|
|
1793
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1794
|
+
<span class="cline-any cline-no"> </span>
|
|
1795
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1796
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1797
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1798
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1799
|
+
<span class="cline-any cline-no"> </span>
|
|
1800
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1803
|
+
<span class="cline-any cline-no"> </span>
|
|
1804
|
+
<span class="cline-any cline-no"> </span>
|
|
1805
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1806
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1807
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1808
|
+
<span class="cline-any cline-no"> </span>
|
|
1809
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1810
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1811
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1812
|
+
<span class="cline-any cline-no"> </span>
|
|
1813
|
+
<span class="cline-any cline-no"> </span>
|
|
1814
|
+
<span class="cline-any cline-no"> </span>
|
|
1815
|
+
<span class="cline-any cline-no"> </span>
|
|
1816
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1817
|
+
<span class="cline-any cline-no"> </span>
|
|
1818
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1819
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1820
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1821
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1822
|
+
<span class="cline-any cline-no"> </span>
|
|
1823
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1824
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1825
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1826
|
+
<span class="cline-any cline-no"> </span>
|
|
1827
|
+
<span class="cline-any cline-no"> </span>
|
|
1828
|
+
<span class="cline-any cline-no"> </span>
|
|
1829
|
+
<span class="cline-any cline-no"> </span>
|
|
1830
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1831
|
+
<span class="cline-any cline-no"> </span>
|
|
1832
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1833
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1834
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1835
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1836
|
+
<span class="cline-any cline-no"> </span>
|
|
1837
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1838
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1839
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1840
|
+
<span class="cline-any cline-no"> </span>
|
|
1841
|
+
<span class="cline-any cline-no"> </span>
|
|
1842
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1843
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1844
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1845
|
+
<span class="cline-any cline-no"> </span>
|
|
1846
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1847
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1848
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1849
|
+
<span class="cline-any cline-no"> </span>
|
|
1850
|
+
<span class="cline-any cline-no"> </span>
|
|
1851
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1852
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1853
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1854
|
+
<span class="cline-any cline-no"> </span>
|
|
1855
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1856
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1857
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1858
|
+
<span class="cline-any cline-no"> </span>
|
|
1859
|
+
<span class="cline-any cline-no"> </span>
|
|
1860
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1861
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1862
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1863
|
+
<span class="cline-any cline-no"> </span>
|
|
1864
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1865
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1866
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1867
|
+
<span class="cline-any cline-no"> </span>
|
|
1868
|
+
<span class="cline-any cline-no"> </span>
|
|
1869
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1870
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1871
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1872
|
+
<span class="cline-any cline-no"> </span>
|
|
1873
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1874
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1875
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1876
|
+
<span class="cline-any cline-no"> </span>
|
|
1877
|
+
<span class="cline-any cline-no"> </span>
|
|
1878
|
+
<span class="cline-any cline-no"> </span>
|
|
1879
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1880
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1881
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1882
|
+
<span class="cline-any cline-no"> </span>
|
|
1883
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1884
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1885
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1886
|
+
<span class="cline-any cline-no"> </span>
|
|
1887
|
+
<span class="cline-any cline-no"> </span>
|
|
1888
|
+
<span class="cline-any cline-no"> </span>
|
|
1889
|
+
<span class="cline-any cline-no"> </span>
|
|
1890
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1891
|
+
<span class="cline-any cline-no"> </span>
|
|
1892
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1893
|
+
<span class="cline-any cline-no"> </span>
|
|
1894
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1895
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1896
|
+
<span class="cline-any cline-no"> </span>
|
|
1897
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1898
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1900
|
+
<span class="cline-any cline-no"> </span>
|
|
1901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1902
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1903
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1904
|
+
<span class="cline-any cline-no"> </span>
|
|
1905
|
+
<span class="cline-any cline-no"> </span>
|
|
1906
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1907
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1909
|
+
<span class="cline-any cline-no"> </span>
|
|
1910
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1911
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1912
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1913
|
+
<span class="cline-any cline-no"> </span>
|
|
1914
|
+
<span class="cline-any cline-no"> </span>
|
|
1915
|
+
<span class="cline-any cline-no"> </span>
|
|
1916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1917
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1918
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1919
|
+
<span class="cline-any cline-no"> </span>
|
|
1920
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1921
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1922
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1923
|
+
<span class="cline-any cline-no"> </span>
|
|
1924
|
+
<span class="cline-any cline-no"> </span>
|
|
1925
|
+
<span class="cline-any cline-no"> </span>
|
|
1926
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1927
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1928
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1929
|
+
<span class="cline-any cline-no"> </span>
|
|
1930
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1931
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1932
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1933
|
+
<span class="cline-any cline-no"> </span>
|
|
1934
|
+
<span class="cline-any cline-no"> </span>
|
|
1935
|
+
<span class="cline-any cline-no"> </span>
|
|
1936
|
+
<span class="cline-any cline-no"> </span>
|
|
1937
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1938
|
+
<span class="cline-any cline-no"> </span>
|
|
1939
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1940
|
+
<span class="cline-any cline-no"> </span>
|
|
1941
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1942
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1943
|
+
<span class="cline-any cline-no"> </span>
|
|
1944
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1945
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1946
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1947
|
+
<span class="cline-any cline-no"> </span>
|
|
1948
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1949
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1950
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1951
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1952
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1953
|
+
<span class="cline-any cline-no"> </span>
|
|
1954
|
+
<span class="cline-any cline-no"> </span>
|
|
1955
|
+
<span class="cline-any cline-no"> </span>
|
|
1956
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1957
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1958
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1959
|
+
<span class="cline-any cline-no"> </span>
|
|
1960
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1961
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1962
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1963
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1965
|
+
<span class="cline-any cline-no"> </span>
|
|
1966
|
+
<span class="cline-any cline-no"> </span>
|
|
1967
|
+
<span class="cline-any cline-no"> </span>
|
|
1968
|
+
<span class="cline-any cline-no"> </span>
|
|
1969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1971
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1972
|
+
<span class="cline-any cline-no"> </span>
|
|
1973
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1974
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1975
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1976
|
+
<span class="cline-any cline-no"> </span>
|
|
1977
|
+
<span class="cline-any cline-no"> </span>
|
|
1978
|
+
<span class="cline-any cline-no"> </span>
|
|
1979
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1980
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1981
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1982
|
+
<span class="cline-any cline-no"> </span>
|
|
1983
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1984
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1985
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1986
|
+
<span class="cline-any cline-no"> </span>
|
|
1987
|
+
<span class="cline-any cline-no"> </span>
|
|
1988
|
+
<span class="cline-any cline-no"> </span>
|
|
1989
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1990
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1991
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1992
|
+
<span class="cline-any cline-no"> </span>
|
|
1993
|
+
<span class="cline-any cline-no"> </span>
|
|
1994
|
+
<span class="cline-any cline-no"> </span>
|
|
1995
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1996
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1997
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1998
|
+
<span class="cline-any cline-no"> </span>
|
|
1999
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2000
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2001
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2002
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2003
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2004
|
+
<span class="cline-any cline-no"> </span>
|
|
2005
|
+
<span class="cline-any cline-no"> </span>
|
|
2006
|
+
<span class="cline-any cline-no"> </span>
|
|
2007
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2008
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2009
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2010
|
+
<span class="cline-any cline-no"> </span>
|
|
2011
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2012
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2013
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2014
|
+
<span class="cline-any cline-no"> </span>
|
|
2015
|
+
<span class="cline-any cline-no"> </span>
|
|
2016
|
+
<span class="cline-any cline-no"> </span>
|
|
2017
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2018
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2019
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2020
|
+
<span class="cline-any cline-no"> </span>
|
|
2021
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2022
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2023
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2024
|
+
<span class="cline-any cline-no"> </span>
|
|
2025
|
+
<span class="cline-any cline-no"> </span>
|
|
2026
|
+
<span class="cline-any cline-no"> </span>
|
|
2027
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2028
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2029
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2030
|
+
<span class="cline-any cline-no"> </span>
|
|
2031
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2032
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2033
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2034
|
+
<span class="cline-any cline-no"> </span>
|
|
2035
|
+
<span class="cline-any cline-no"> </span>
|
|
2036
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2037
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2038
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2039
|
+
<span class="cline-any cline-no"> </span>
|
|
2040
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2041
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2042
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2043
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2044
|
+
<span class="cline-any cline-no"> </span>
|
|
2045
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2046
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2047
|
+
<span class="cline-any cline-no"> </span>
|
|
2048
|
+
<span class="cline-any cline-no"> </span>
|
|
2049
|
+
<span class="cline-any cline-no"> </span>
|
|
2050
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2051
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2052
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2053
|
+
<span class="cline-any cline-no"> </span>
|
|
2054
|
+
<span class="cline-any cline-no"> </span>
|
|
2055
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2056
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2057
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2058
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2059
|
+
<span class="cline-any cline-no"> </span>
|
|
2060
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2061
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2062
|
+
<span class="cline-any cline-no"> </span>
|
|
2063
|
+
<span class="cline-any cline-no"> </span>
|
|
2064
|
+
<span class="cline-any cline-no"> </span>
|
|
2065
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2066
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2067
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2068
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2069
|
+
<span class="cline-any cline-no"> </span>
|
|
2070
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2071
|
+
<span class="cline-any cline-no"> </span>
|
|
2072
|
+
<span class="cline-any cline-no"> </span>
|
|
2073
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2074
|
+
<span class="cline-any cline-no"> </span>
|
|
2075
|
+
<span class="cline-any cline-no"> </span>
|
|
2076
|
+
<span class="cline-any cline-no"> </span>
|
|
2077
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2078
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2079
|
+
<span class="cline-any cline-no"> </span>
|
|
2080
|
+
<span class="cline-any cline-no"> </span>
|
|
2081
|
+
<span class="cline-any cline-no"> </span>
|
|
2082
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2083
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2084
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2085
|
+
<span class="cline-any cline-no"> </span>
|
|
2086
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2087
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2088
|
+
<span class="cline-any cline-no"> </span>
|
|
2089
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2090
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2091
|
+
<span class="cline-any cline-no"> </span>
|
|
2092
|
+
<span class="cline-any cline-no"> </span>
|
|
2093
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2094
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2095
|
+
<span class="cline-any cline-no"> </span>
|
|
2096
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2097
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2098
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2099
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2100
|
+
<span class="cline-any cline-no"> </span>
|
|
2101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2104
|
+
<span class="cline-any cline-no"> </span>
|
|
2105
|
+
<span class="cline-any cline-no"> </span>
|
|
2106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2108
|
+
<span class="cline-any cline-no"> </span>
|
|
2109
|
+
<span class="cline-any cline-no"> </span>
|
|
2110
|
+
<span class="cline-any cline-no"> </span>
|
|
2111
|
+
<span class="cline-any cline-no"> </span>
|
|
2112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2114
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2115
|
+
<span class="cline-any cline-no"> </span>
|
|
2116
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2119
|
+
<span class="cline-any cline-no"> </span>
|
|
2120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2123
|
+
<span class="cline-any cline-no"> </span>
|
|
2124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2127
|
+
<span class="cline-any cline-no"> </span>
|
|
2128
|
+
<span class="cline-any cline-no"> </span>
|
|
2129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2130
|
+
<span class="cline-any cline-no"> </span>
|
|
2131
|
+
<span class="cline-any cline-no"> </span>
|
|
2132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2133
|
+
<span class="cline-any cline-no"> </span>
|
|
2134
|
+
<span class="cline-any cline-no"> </span>
|
|
2135
|
+
<span class="cline-any cline-no"> </span>
|
|
2136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2139
|
+
<span class="cline-any cline-no"> </span>
|
|
2140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2144
|
+
<span class="cline-any cline-no"> </span>
|
|
2145
|
+
<span class="cline-any cline-no"> </span>
|
|
2146
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2147
|
+
<span class="cline-any cline-no"> </span>
|
|
2148
|
+
<span class="cline-any cline-no"> </span>
|
|
2149
|
+
<span class="cline-any cline-no"> </span>
|
|
2150
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2151
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2152
|
+
<span class="cline-any cline-no"> </span>
|
|
2153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2156
|
+
<span class="cline-any cline-no"> </span>
|
|
2157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2158
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2159
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2160
|
+
<span class="cline-any cline-no"> </span>
|
|
2161
|
+
<span class="cline-any cline-no"> </span>
|
|
2162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2164
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2165
|
+
<span class="cline-any cline-no"> </span>
|
|
2166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2169
|
+
<span class="cline-any cline-no"> </span>
|
|
2170
|
+
<span class="cline-any cline-no"> </span>
|
|
2171
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2172
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2174
|
+
<span class="cline-any cline-no"> </span>
|
|
2175
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2176
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2177
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2178
|
+
<span class="cline-any cline-no"> </span>
|
|
2179
|
+
<span class="cline-any cline-no"> </span>
|
|
2180
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2181
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2183
|
+
<span class="cline-any cline-no"> </span>
|
|
2184
|
+
<span class="cline-any cline-no"> </span>
|
|
2185
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2186
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2188
|
+
<span class="cline-any cline-no"> </span>
|
|
2189
|
+
<span class="cline-any cline-no"> </span>
|
|
2190
|
+
<span class="cline-any cline-no"> </span>
|
|
2191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2193
|
+
<span class="cline-any cline-no"> </span>
|
|
2194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2196
|
+
<span class="cline-any cline-no"> </span>
|
|
2197
|
+
<span class="cline-any cline-no"> </span>
|
|
2198
|
+
<span class="cline-any cline-no"> </span>
|
|
2199
|
+
<span class="cline-any cline-no"> </span>
|
|
2200
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2201
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2202
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2203
|
+
<span class="cline-any cline-no"> </span>
|
|
2204
|
+
<span class="cline-any cline-no"> </span>
|
|
2205
|
+
<span class="cline-any cline-no"> </span>
|
|
2206
|
+
<span class="cline-any cline-no"> </span>
|
|
2207
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2208
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2209
|
+
<span class="cline-any cline-no"> </span>
|
|
2210
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2211
|
+
<span class="cline-any cline-no"> </span>
|
|
2212
|
+
<span class="cline-any cline-no"> </span>
|
|
2213
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2214
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2215
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2216
|
+
<span class="cline-any cline-no"> </span>
|
|
2217
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2218
|
+
<span class="cline-any cline-no"> </span>
|
|
2219
|
+
<span class="cline-any cline-no"> </span>
|
|
2220
|
+
<span class="cline-any cline-no"> </span>
|
|
2221
|
+
<span class="cline-any cline-no"> </span>
|
|
2222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2224
|
+
<span class="cline-any cline-no"> </span>
|
|
2225
|
+
<span class="cline-any cline-no"> </span>
|
|
2226
|
+
<span class="cline-any cline-no"> </span>
|
|
2227
|
+
<span class="cline-any cline-no"> </span>
|
|
2228
|
+
<span class="cline-any cline-no"> </span>
|
|
2229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2231
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2234
|
+
<span class="cline-any cline-no"> </span>
|
|
2235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2236
|
+
<span class="cline-any cline-no"> </span>
|
|
2237
|
+
<span class="cline-any cline-no"> </span>
|
|
2238
|
+
<span class="cline-any cline-no"> </span>
|
|
2239
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2241
|
+
<span class="cline-any cline-no"> </span>
|
|
2242
|
+
<span class="cline-any cline-no"> </span>
|
|
2243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2244
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2246
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2247
|
+
<span class="cline-any cline-no"> </span>
|
|
2248
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2249
|
+
<span class="cline-any cline-no"> </span>
|
|
2250
|
+
<span class="cline-any cline-no"> </span>
|
|
2251
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2253
|
+
<span class="cline-any cline-no"> </span>
|
|
2254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2261
|
+
<span class="cline-any cline-no"> </span>
|
|
2262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2263
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2264
|
+
<span class="cline-any cline-no"> </span>
|
|
2265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2266
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2267
|
+
<span class="cline-any cline-no"> </span>
|
|
2268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2269
|
+
<span class="cline-any cline-no"> </span>
|
|
2270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2271
|
+
<span class="cline-any cline-no"> </span>
|
|
2272
|
+
<span class="cline-any cline-no"> </span>
|
|
2273
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2274
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2275
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2276
|
+
<span class="cline-any cline-no"> </span>
|
|
2277
|
+
<span class="cline-any cline-no"> </span>
|
|
2278
|
+
<span class="cline-any cline-no"> </span>
|
|
2279
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2280
|
+
<span class="cline-any cline-no"> </span>
|
|
2281
|
+
<span class="cline-any cline-no"> </span>
|
|
2282
|
+
<span class="cline-any cline-no"> </span>
|
|
2283
|
+
<span class="cline-any cline-no"> </span>
|
|
2284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2285
|
+
<span class="cline-any cline-no"> </span>
|
|
2286
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2288
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2289
|
+
<span class="cline-any cline-no"> </span>
|
|
2290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2294
|
+
<span class="cline-any cline-no"> </span>
|
|
2295
|
+
<span class="cline-any cline-no"> </span>
|
|
2296
|
+
<span class="cline-any cline-no"> </span>
|
|
2297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2305
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2307
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2318
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Mesh, RepeatWrapping, Raycaster, Color, Vector3, sRGBEncoding } from "three";
|
|
2319
|
+
|
|
2320
|
+
import Entity from "../entities/Entity";
|
|
2321
|
+
import { ENTITY_TYPES, ENTITY_EVENTS } from "../entities/constants";
|
|
2322
|
+
|
|
2323
|
+
import {
|
|
2324
|
+
ELEMENT_NOT_SET,
|
|
2325
|
+
ANIMATION_HANDLER_NOT_FOUND,
|
|
2326
|
+
ELEMENT_SET_COLOR_MISSING_COLOR,
|
|
2327
|
+
ELEMENT_MATERIAL_NO_SUPPORT_FOR_TEXTURE,
|
|
2328
|
+
DEPRECATIONS,
|
|
2329
|
+
ELEMENT_SET_FOG_MISSING_MISSING_VALUE,
|
|
2330
|
+
ELEMENT_SET_REFLECTIVITY_MISSING_VALUE,
|
|
2331
|
+
ELEMENT_SET_REFRACTION_RATIO_MISSING_VALUE,
|
|
2332
|
+
} from "../lib/messages";
|
|
2333
|
+
import Images from "../images/Images";
|
|
2334
|
+
import AnimationHandler from "./animations/AnimationHandler";
|
|
2335
|
+
import Config from "../core/config";
|
|
2336
|
+
import Scene from "../core/Scene";
|
|
2337
|
+
import {
|
|
2338
|
+
COLLISION_EVENT,
|
|
2339
|
+
MATERIALS,
|
|
2340
|
+
MATERIAL_PROPERTIES_DEFAULT_VALUES,
|
|
2341
|
+
MATERIAL_PROPERTIES_MAP,
|
|
2342
|
+
PROPERTIES,
|
|
2343
|
+
TEXTURES,
|
|
2344
|
+
} from "../lib/constants";
|
|
2345
|
+
import Universe from "../core/Universe";
|
|
2346
|
+
import Physics from "../physics";
|
|
2347
|
+
import { DEFAULT_ANGULAR_VELOCITY, DEFAULT_LINEAR_VELOCITY } from "../physics/constants";
|
|
2348
|
+
|
|
2349
|
+
import {
|
|
2350
|
+
extractBoundingBox,
|
|
2351
|
+
extractBiggestBoundingBox,
|
|
2352
|
+
extractBoundingSphere,
|
|
2353
|
+
extractBiggestBoundingSphere,
|
|
2354
|
+
} from "../physics/utils";
|
|
2355
|
+
|
|
2356
|
+
import { clamp } from "../lib/math";
|
|
2357
|
+
import {
|
|
2358
|
+
replaceMaterialByName,
|
|
2359
|
+
hasMaterial,
|
|
2360
|
+
hasGeometry,
|
|
2361
|
+
disposeTextures,
|
|
2362
|
+
disposeMaterial,
|
|
2363
|
+
disposeGeometry,
|
|
2364
|
+
setUpLightsAndShadows,
|
|
2365
|
+
applyMaterialChange,
|
|
2366
|
+
extractMaterialProperty,
|
|
2367
|
+
} from "../lib/meshUtils";
|
|
2368
|
+
import { isTextureMapAllowedForMaterial } from "../materials/helpers";
|
|
2369
|
+
import { generateRandomName } from "../lib/uuid";
|
|
2370
|
+
import { tweenTo } from "../lib/easing";
|
|
2371
|
+
import { populateMap, serializeMap } from "../lib/map";
|
|
2372
|
+
|
|
2373
|
+
const COLLIDER_TAG = <span class="cstat-no" title="statement not covered" >"collider";</span>
|
|
2374
|
+
const DEFAULT_COLLIDER_OFFSET = <span class="cstat-no" title="statement not covered" >{ x: 0, y: 0, z: 0 };</span>
|
|
2375
|
+
const DEFAULT_PHYSICS_OPTIONS = <span class="cstat-no" title="statement not covered" >{</span>
|
|
2376
|
+
applyPhysicsUpdate: true,
|
|
2377
|
+
};
|
|
2378
|
+
|
|
2379
|
+
export default class Element extends Entity {
|
|
2380
|
+
<span class="fstat-no" title="function not covered" > co</span>nstructor(options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
2381
|
+
<span class="cstat-no" title="statement not covered" > super(options);</span>
|
|
2382
|
+
|
|
2383
|
+
const {
|
|
2384
|
+
name = <span class="branch-0 cbranch-no" title="branch not covered" >generateRandomName(this.constructor.name),</span>
|
|
2385
|
+
geometry,
|
|
2386
|
+
material,
|
|
2387
|
+
body,
|
|
2388
|
+
} = <span class="cstat-no" title="statement not covered" >options;</span>
|
|
2389
|
+
|
|
2390
|
+
<span class="cstat-no" title="statement not covered" > this.textures = new Map();</span>
|
|
2391
|
+
<span class="cstat-no" title="statement not covered" > this.opacity = 1;</span>
|
|
2392
|
+
<span class="cstat-no" title="statement not covered" > this.extendOptions({ name });</span>
|
|
2393
|
+
|
|
2394
|
+
<span class="cstat-no" title="statement not covered" > this.physicsOptions = DEFAULT_PHYSICS_OPTIONS;</span>
|
|
2395
|
+
<span class="cstat-no" title="statement not covered" > this.physicsState = new Map();</span>
|
|
2396
|
+
|
|
2397
|
+
<span class="cstat-no" title="statement not covered" > this.setBody({ geometry, material, body });</span>
|
|
2398
|
+
|
|
2399
|
+
<span class="cstat-no" title="statement not covered" > this.colliders = [];</span>
|
|
2400
|
+
<span class="cstat-no" title="statement not covered" > this.collisionsEnabled = true;</span>
|
|
2401
|
+
|
|
2402
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler = undefined;</span>
|
|
2403
|
+
<span class="cstat-no" title="statement not covered" > this.animations = [];</span>
|
|
2404
|
+
|
|
2405
|
+
<span class="cstat-no" title="statement not covered" > this.setMaterialType();</span>
|
|
2406
|
+
<span class="cstat-no" title="statement not covered" > this.setEntityType(ENTITY_TYPES.MESH.TYPE);</span>
|
|
2407
|
+
<span class="cstat-no" title="statement not covered" > this.setEntitySubtype(ENTITY_TYPES.MESH.SUBTYPES.DEFAULT);</span>
|
|
2408
|
+
}
|
|
2409
|
+
|
|
2410
|
+
<span class="fstat-no" title="function not covered" > se</span>tBody({ body, geometry, material }) {
|
|
2411
|
+
<span class="cstat-no" title="statement not covered" > if (body) {</span>
|
|
2412
|
+
<span class="cstat-no" title="statement not covered" > this.body = body;</span>
|
|
2413
|
+
} else <span class="cstat-no" title="statement not covered" >if (geometry && material) {</span>
|
|
2414
|
+
<span class="cstat-no" title="statement not covered" > this.geometry = geometry;</span>
|
|
2415
|
+
<span class="cstat-no" title="statement not covered" > this.material = material;</span>
|
|
2416
|
+
<span class="cstat-no" title="statement not covered" > this.body = new Mesh(this.geometry, this.material);</span>
|
|
2417
|
+
}
|
|
2418
|
+
|
|
2419
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasBody()) {</span>
|
|
2420
|
+
<span class="cstat-no" title="statement not covered" > this.postBodyCreation();</span>
|
|
2421
|
+
<span class="cstat-no" title="statement not covered" > this.addToScene();</span>
|
|
2422
|
+
}
|
|
2423
|
+
}
|
|
2424
|
+
|
|
2425
|
+
<span class="fstat-no" title="function not covered" > ev</span>aluateBoundingBox() {
|
|
2426
|
+
<span class="cstat-no" title="statement not covered" > if (hasGeometry(this.getBody())) {</span>
|
|
2427
|
+
<span class="cstat-no" title="statement not covered" > this.boundingBox = extractBoundingBox(this.getBody());</span>
|
|
2428
|
+
} else {
|
|
2429
|
+
<span class="cstat-no" title="statement not covered" > this.boundingBox = extractBiggestBoundingBox(this.getBody());</span>
|
|
2430
|
+
}
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
<span class="fstat-no" title="function not covered" > ev</span>aluateBoundingSphere() {
|
|
2434
|
+
<span class="cstat-no" title="statement not covered" > if (hasGeometry(this.getBody())) {</span>
|
|
2435
|
+
<span class="cstat-no" title="statement not covered" > this.boundingSphere = extractBoundingSphere(this.getBody());</span>
|
|
2436
|
+
} else {
|
|
2437
|
+
<span class="cstat-no" title="statement not covered" > this.boundingSphere = extractBiggestBoundingSphere(this.getBody());</span>
|
|
2438
|
+
}
|
|
2439
|
+
}
|
|
2440
|
+
|
|
2441
|
+
<span class="fstat-no" title="function not covered" > po</span>stBodyCreation() {
|
|
2442
|
+
const { name, shadowsEnabled = <span class="branch-0 cbranch-no" title="branch not covered" >true </span>} = <span class="cstat-no" title="statement not covered" >this.options;</span>
|
|
2443
|
+
|
|
2444
|
+
<span class="cstat-no" title="statement not covered" > this.evaluateBoundingBox();</span>
|
|
2445
|
+
<span class="cstat-no" title="statement not covered" > this.evaluateBoundingSphere();</span>
|
|
2446
|
+
|
|
2447
|
+
<span class="cstat-no" title="statement not covered" > this.setName(name);</span>
|
|
2448
|
+
|
|
2449
|
+
<span class="cstat-no" title="statement not covered" > if (shadowsEnabled) {</span>
|
|
2450
|
+
<span class="cstat-no" title="statement not covered" > setUpLightsAndShadows(this.getBody());</span>
|
|
2451
|
+
}
|
|
2452
|
+
}
|
|
2453
|
+
|
|
2454
|
+
<span class="fstat-no" title="function not covered" > ad</span>dToScene() {
|
|
2455
|
+
const { addUniverse = <span class="branch-0 cbranch-no" title="branch not covered" >true </span>} = <span class="cstat-no" title="statement not covered" >this.options;</span>
|
|
2456
|
+
|
|
2457
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasBody()) {</span>
|
|
2458
|
+
<span class="cstat-no" title="statement not covered" > Scene.add(this.getBody(), this, addUniverse);</span>
|
|
2459
|
+
} else {
|
|
2460
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ELEMENT_NOT_SET);</span>
|
|
2461
|
+
}
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
<span class="fstat-no" title="function not covered" > se</span>tName(name, { replace = <span class="branch-0 cbranch-no" title="branch not covered" >false </span>} = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
2465
|
+
const oldName = <span class="cstat-no" title="statement not covered" >this.name;</span>
|
|
2466
|
+
<span class="cstat-no" title="statement not covered" > super.setName(name);</span>
|
|
2467
|
+
|
|
2468
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasBody()) {</span>
|
|
2469
|
+
<span class="cstat-no" title="statement not covered" > if (replace) <span class="cstat-no" title="statement not covered" >this.dispose();</span></span>
|
|
2470
|
+
|
|
2471
|
+
<span class="cstat-no" title="statement not covered" > this.body.name = name;</span>
|
|
2472
|
+
<span class="cstat-no" title="statement not covered" > Universe.updateNameIndex(this.uuid(), oldName, name);</span>
|
|
2473
|
+
|
|
2474
|
+
<span class="cstat-no" title="statement not covered" > if (replace) <span class="cstat-no" title="statement not covered" >this.addToScene();</span></span>
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
<span class="fstat-no" title="function not covered" > to</span>ggleShadows(flag = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
|
|
2479
|
+
<span class="cstat-no" title="statement not covered" > if (this.isModel()) {</span>
|
|
2480
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().castShadow = flag;</span>
|
|
2481
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().receiveShadow = flag;</span>
|
|
2482
|
+
|
|
2483
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().traverse(<span class="fstat-no" title="function not covered" >ch</span>ild => {</span>
|
|
2484
|
+
<span class="cstat-no" title="statement not covered" > child.castShadow = flag;</span>
|
|
2485
|
+
<span class="cstat-no" title="statement not covered" > child.receiveShadow = flag;</span>
|
|
2486
|
+
});
|
|
2487
|
+
}
|
|
2488
|
+
}
|
|
2489
|
+
|
|
2490
|
+
/**
|
|
2491
|
+
* TODO: the entire animation system needs to be a component
|
|
2492
|
+
* e.g.
|
|
2493
|
+
*
|
|
2494
|
+
* const animationComponent = new AnimationComponent();
|
|
2495
|
+
* element.addComponent(animationComponent);
|
|
2496
|
+
*
|
|
2497
|
+
* element.getComponent("animation").play("animationId");
|
|
2498
|
+
*/
|
|
2499
|
+
|
|
2500
|
+
<span class="fstat-no" title="function not covered" > se</span>tArmature(armature) {
|
|
2501
|
+
<span class="cstat-no" title="statement not covered" > this.armature = armature;</span>
|
|
2502
|
+
|
|
2503
|
+
<span class="cstat-no" title="statement not covered" > Scene.add(this.armature, null, false);</span>
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2506
|
+
<span class="fstat-no" title="function not covered" > ad</span>dAnimationHandler(animations = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> {
|
|
2507
|
+
<span class="cstat-no" title="statement not covered" > this.animations = animations;</span>
|
|
2508
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler = new AnimationHandler(this.getBody(), animations);</span>
|
|
2509
|
+
<span class="cstat-no" title="statement not covered" > this.addAnimationHandlerListeners();</span>
|
|
2510
|
+
}
|
|
2511
|
+
|
|
2512
|
+
handleAnimationHandlerEvents = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >e </span>=> {</span>
|
|
2513
|
+
<span class="cstat-no" title="statement not covered" > this.dispatchEvent(e);</span>
|
|
2514
|
+
};
|
|
2515
|
+
|
|
2516
|
+
<span class="fstat-no" title="function not covered" > ad</span>dAnimationHandlerListeners() {
|
|
2517
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.addEventListener(</span>
|
|
2518
|
+
ENTITY_EVENTS.ANIMATION.LOOP,
|
|
2519
|
+
this.handleAnimationHandlerEvents,
|
|
2520
|
+
);
|
|
2521
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.addEventListener(</span>
|
|
2522
|
+
ENTITY_EVENTS.ANIMATION.FINISHED,
|
|
2523
|
+
this.handleAnimationHandlerEvents,
|
|
2524
|
+
);
|
|
2525
|
+
}
|
|
2526
|
+
|
|
2527
|
+
<span class="fstat-no" title="function not covered" > re</span>moveAnimationHandlerListeners() {
|
|
2528
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.removeEventListener(</span>
|
|
2529
|
+
ENTITY_EVENTS.ANIMATION.LOOP,
|
|
2530
|
+
this.handleAnimationHandlerEvents,
|
|
2531
|
+
);
|
|
2532
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.removeEventListener(</span>
|
|
2533
|
+
ENTITY_EVENTS.ANIMATION.FINISHED,
|
|
2534
|
+
this.handleAnimationHandlerEvents,
|
|
2535
|
+
);
|
|
2536
|
+
}
|
|
2537
|
+
|
|
2538
|
+
<span class="fstat-no" title="function not covered" > ha</span>sAnimationHandler() {
|
|
2539
|
+
<span class="cstat-no" title="statement not covered" > return !!this.animationHandler;</span>
|
|
2540
|
+
}
|
|
2541
|
+
|
|
2542
|
+
<span class="fstat-no" title="function not covered" > ha</span>sAnimations() {
|
|
2543
|
+
<span class="cstat-no" title="statement not covered" > return !!this.animations.length;</span>
|
|
2544
|
+
}
|
|
2545
|
+
|
|
2546
|
+
<span class="fstat-no" title="function not covered" > pl</span>ayAnimation(id, options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
2547
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
2548
|
+
|
|
2549
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2550
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.playAnimation(id, options);</span>
|
|
2551
|
+
} else {
|
|
2552
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2553
|
+
}
|
|
2554
|
+
}
|
|
2555
|
+
|
|
2556
|
+
<span class="fstat-no" title="function not covered" > st</span>opAllAnimations() {
|
|
2557
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
2558
|
+
|
|
2559
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2560
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.stopAll();</span>
|
|
2561
|
+
} else {
|
|
2562
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2563
|
+
}
|
|
2564
|
+
}
|
|
2565
|
+
|
|
2566
|
+
<span class="fstat-no" title="function not covered" > st</span>opCurrentAnimation() {
|
|
2567
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
2568
|
+
|
|
2569
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2570
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.stopCurrentAnimation();</span>
|
|
2571
|
+
} else {
|
|
2572
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2573
|
+
}
|
|
2574
|
+
}
|
|
2575
|
+
|
|
2576
|
+
<span class="fstat-no" title="function not covered" > ge</span>tAvailableAnimations() {
|
|
2577
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return [];</span></span>
|
|
2578
|
+
|
|
2579
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2580
|
+
<span class="cstat-no" title="statement not covered" > return this.animationHandler.getAvailableAnimations();</span>
|
|
2581
|
+
} else {
|
|
2582
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2583
|
+
}
|
|
2584
|
+
|
|
2585
|
+
<span class="cstat-no" title="statement not covered" > return [];</span>
|
|
2586
|
+
}
|
|
2587
|
+
|
|
2588
|
+
/**
|
|
2589
|
+
* Crossfade from current animation to a new animation
|
|
2590
|
+
* @param {string|number} id - Target animation name or index
|
|
2591
|
+
* @param {Object} options - Blend options
|
|
2592
|
+
* @param {number} options.blendDuration - Duration of the crossfade (default: 0.3)
|
|
2593
|
+
* @param {number} options.loop - Loop mode (LoopRepeat, LoopOnce)
|
|
2594
|
+
* @param {number} options.timeScale - Playback speed (1 = normal)
|
|
2595
|
+
* @param {boolean} options.warp - Whether to warp time scales during blend
|
|
2596
|
+
*/
|
|
2597
|
+
<span class="fstat-no" title="function not covered" > cr</span>ossFadeTo(id, options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
2598
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
2599
|
+
|
|
2600
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2601
|
+
<span class="cstat-no" title="statement not covered" > return this.animationHandler.crossFadeTo(id, options);</span>
|
|
2602
|
+
} else {
|
|
2603
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2604
|
+
}
|
|
2605
|
+
}
|
|
2606
|
+
|
|
2607
|
+
/**
|
|
2608
|
+
* Stop an animation. If no id is provided, stops the current animation.
|
|
2609
|
+
* @param {string|number} [id] - Animation name or index (optional)
|
|
2610
|
+
* @param {number} fadeOutDuration - Duration to fade out (0 for immediate)
|
|
2611
|
+
*/
|
|
2612
|
+
<span class="fstat-no" title="function not covered" > st</span>opAnimation(id, fadeOutDuration = <span class="branch-0 cbranch-no" title="branch not covered" >0)</span> {
|
|
2613
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
2614
|
+
|
|
2615
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2616
|
+
// If no id provided, stop the current animation
|
|
2617
|
+
<span class="cstat-no" title="statement not covered" > if (id === undefined || id === null) {</span>
|
|
2618
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.stopCurrentAnimation();</span>
|
|
2619
|
+
} else {
|
|
2620
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.stopAnimation(id, fadeOutDuration);</span>
|
|
2621
|
+
}
|
|
2622
|
+
} else {
|
|
2623
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2624
|
+
}
|
|
2625
|
+
}
|
|
2626
|
+
|
|
2627
|
+
/**
|
|
2628
|
+
* Set the weight of an animation for layered blending
|
|
2629
|
+
* @param {string|number} id - Animation name or index
|
|
2630
|
+
* @param {number} weight - Weight value (0-1)
|
|
2631
|
+
* @param {number} fadeDuration - Optional fade duration
|
|
2632
|
+
*/
|
|
2633
|
+
<span class="fstat-no" title="function not covered" > se</span>tAnimationWeight(id, weight, fadeDuration = <span class="branch-0 cbranch-no" title="branch not covered" >0)</span> {
|
|
2634
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
2635
|
+
|
|
2636
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2637
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.setAnimationWeight(id, weight, fadeDuration);</span>
|
|
2638
|
+
} else {
|
|
2639
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2640
|
+
}
|
|
2641
|
+
}
|
|
2642
|
+
|
|
2643
|
+
/**
|
|
2644
|
+
* Set the playback speed of an animation
|
|
2645
|
+
* @param {string|number} id - Animation name or index
|
|
2646
|
+
* @param {number} timeScale - Speed multiplier (1 = normal, 2 = double speed)
|
|
2647
|
+
*/
|
|
2648
|
+
<span class="fstat-no" title="function not covered" > se</span>tAnimationTimeScale(id, timeScale) {
|
|
2649
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
2650
|
+
|
|
2651
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2652
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.setAnimationTimeScale(id, timeScale);</span>
|
|
2653
|
+
} else {
|
|
2654
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2655
|
+
}
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
/**
|
|
2659
|
+
* Get the duration of an animation clip
|
|
2660
|
+
* @param {string|number} id - Animation name or index
|
|
2661
|
+
* @returns {number} Duration in seconds
|
|
2662
|
+
*/
|
|
2663
|
+
<span class="fstat-no" title="function not covered" > ge</span>tAnimationDuration(id) {
|
|
2664
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return 0;</span></span>
|
|
2665
|
+
|
|
2666
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2667
|
+
<span class="cstat-no" title="statement not covered" > return this.animationHandler.getAnimationDuration(id);</span>
|
|
2668
|
+
} else {
|
|
2669
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2670
|
+
<span class="cstat-no" title="statement not covered" > return 0;</span>
|
|
2671
|
+
}
|
|
2672
|
+
}
|
|
2673
|
+
|
|
2674
|
+
/**
|
|
2675
|
+
* Check if a specific animation is currently playing
|
|
2676
|
+
* @param {string|number} id - Animation name or index
|
|
2677
|
+
* @returns {boolean}
|
|
2678
|
+
*/
|
|
2679
|
+
<span class="fstat-no" title="function not covered" > is</span>AnimationPlaying(id) {
|
|
2680
|
+
<span class="cstat-no" title="statement not covered" > if (!this.hasAnimations()) <span class="cstat-no" title="statement not covered" >return false;</span></span>
|
|
2681
|
+
|
|
2682
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
2683
|
+
<span class="cstat-no" title="statement not covered" > return this.animationHandler.isAnimationPlaying(id);</span>
|
|
2684
|
+
} else {
|
|
2685
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ANIMATION_HANDLER_NOT_FOUND);</span>
|
|
2686
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2687
|
+
}
|
|
2688
|
+
}
|
|
2689
|
+
|
|
2690
|
+
/**
|
|
2691
|
+
* TODO: the entire physics system needs to be a component
|
|
2692
|
+
* e.g.
|
|
2693
|
+
*
|
|
2694
|
+
* const physicscomponent = new PhysicsComponent();
|
|
2695
|
+
* element.addComponent(physicscomponent);
|
|
2696
|
+
*
|
|
2697
|
+
* element.getComponent("physics").play("animationId");
|
|
2698
|
+
*/
|
|
2699
|
+
|
|
2700
|
+
<span class="fstat-no" title="function not covered" > se</span>tPhysicsOptions({ applyPhysicsUpdate = <span class="branch-0 cbranch-no" title="branch not covered" >true,</span> ...rest } = <span class="branch-0 cbranch-no" title="branch not covered" >DEFAULT_PHYSICS_OPTIONS)</span> {
|
|
2701
|
+
const parsedOptions = <span class="cstat-no" title="statement not covered" >{</span>
|
|
2702
|
+
applyPhysicsUpdate,
|
|
2703
|
+
...rest,
|
|
2704
|
+
};
|
|
2705
|
+
<span class="cstat-no" title="statement not covered" > this.physicsOptions = parsedOptions;</span>
|
|
2706
|
+
}
|
|
2707
|
+
|
|
2708
|
+
<span class="fstat-no" title="function not covered" > ge</span>tPhysicsOptions(option) {
|
|
2709
|
+
<span class="cstat-no" title="statement not covered" > return option ? this.physicsOptions[option] : this.physicsOptions;</span>
|
|
2710
|
+
}
|
|
2711
|
+
|
|
2712
|
+
<span class="fstat-no" title="function not covered" > se</span>tPhysicsState({ dt, event, ...data } = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
2713
|
+
<span class="cstat-no" title="statement not covered" > populateMap(this.physicsState, data);</span>
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
<span class="fstat-no" title="function not covered" > ge</span>tPhysicsState(key) {
|
|
2717
|
+
<span class="cstat-no" title="statement not covered" > return key ? this.physicsState.get(key) : this.physicsState;</span>
|
|
2718
|
+
}
|
|
2719
|
+
|
|
2720
|
+
<span class="fstat-no" title="function not covered" > en</span>ablePhysics(options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
2721
|
+
const { mass } = <span class="cstat-no" title="statement not covered" >options;</span>
|
|
2722
|
+
<span class="cstat-no" title="statement not covered" > this.setPhysicsOptions(options);</span>
|
|
2723
|
+
|
|
2724
|
+
<span class="cstat-no" title="statement not covered" > if (Config.physics().enabled) {</span>
|
|
2725
|
+
<span class="cstat-no" title="statement not covered" > if (this.isModel() && mass === 0) {</span>
|
|
2726
|
+
<span class="cstat-no" title="statement not covered" > Physics.addModel(this, options);</span>
|
|
2727
|
+
} else {
|
|
2728
|
+
<span class="cstat-no" title="statement not covered" > Physics.add(this, options);</span>
|
|
2729
|
+
}
|
|
2730
|
+
}
|
|
2731
|
+
}
|
|
2732
|
+
|
|
2733
|
+
<span class="fstat-no" title="function not covered" > ge</span>tAngularVelocity() {
|
|
2734
|
+
<span class="cstat-no" title="statement not covered" > return this.angularVelocity || DEFAULT_ANGULAR_VELOCITY;</span>
|
|
2735
|
+
}
|
|
2736
|
+
|
|
2737
|
+
<span class="fstat-no" title="function not covered" > se</span>tAngularVelocity(velocity) {
|
|
2738
|
+
const numericVelocity = <span class="cstat-no" title="statement not covered" >{</span>
|
|
2739
|
+
x: Number(velocity?.x) || 0,
|
|
2740
|
+
y: Number(velocity?.y) || 0,
|
|
2741
|
+
z: Number(velocity?.z) || 0,
|
|
2742
|
+
};
|
|
2743
|
+
<span class="cstat-no" title="statement not covered" > this.angularVelocity = numericVelocity;</span>
|
|
2744
|
+
<span class="cstat-no" title="statement not covered" > Physics.updateAngularVelocity(this.uuid(), numericVelocity);</span>
|
|
2745
|
+
}
|
|
2746
|
+
|
|
2747
|
+
<span class="fstat-no" title="function not covered" > ge</span>tLinearVelocity() {
|
|
2748
|
+
<span class="cstat-no" title="statement not covered" > return this.linearVelocity || DEFAULT_LINEAR_VELOCITY;</span>
|
|
2749
|
+
}
|
|
2750
|
+
|
|
2751
|
+
<span class="fstat-no" title="function not covered" > se</span>tLinearVelocity(velocity) {
|
|
2752
|
+
const numericVelocity = <span class="cstat-no" title="statement not covered" >{</span>
|
|
2753
|
+
x: Number(velocity?.x) || 0,
|
|
2754
|
+
y: Number(velocity?.y) || 0,
|
|
2755
|
+
z: Number(velocity?.z) || 0,
|
|
2756
|
+
};
|
|
2757
|
+
<span class="cstat-no" title="statement not covered" > this.linearVelocity = numericVelocity;</span>
|
|
2758
|
+
<span class="cstat-no" title="statement not covered" > Physics.updateLinearVelocity(this.uuid(), numericVelocity);</span>
|
|
2759
|
+
}
|
|
2760
|
+
|
|
2761
|
+
hasRayColliders = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >this.colliders.length > 0;</span></span>
|
|
2762
|
+
|
|
2763
|
+
areCollisionsEnabled = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> => <span class="cstat-no" title="statement not covered" >this.collisionsEnabled;</span></span>
|
|
2764
|
+
|
|
2765
|
+
enableCollisions = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> => (<span class="cstat-no" title="statement not covered" >this.collisionsEnabled = true)</span>;</span>
|
|
2766
|
+
disableCollisions = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> => (<span class="cstat-no" title="statement not covered" >this.collisionsEnabled = false)</span>;</span>
|
|
2767
|
+
|
|
2768
|
+
updateRayColliders = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
2769
|
+
<span class="cstat-no" title="statement not covered" > this.colliders.forEach(<span class="fstat-no" title="function not covered" >({</span> ray, helper, offset = <span class="branch-0 cbranch-no" title="branch not covered" >DEFAULT_COLLIDER_OFFSET </span>}) => {</span>
|
|
2770
|
+
const position = <span class="cstat-no" title="statement not covered" >this.body.position</span>
|
|
2771
|
+
.clone()
|
|
2772
|
+
.add(new Vector3(offset.x, offset.y, offset.z));
|
|
2773
|
+
|
|
2774
|
+
<span class="cstat-no" title="statement not covered" > if (helper) {</span>
|
|
2775
|
+
<span class="cstat-no" title="statement not covered" > helper.updatePoints(this.getPointsFromRayCollider(ray, position));</span>
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
<span class="cstat-no" title="statement not covered" > ray.ray.origin.copy(position);</span>
|
|
2779
|
+
});
|
|
2780
|
+
};
|
|
2781
|
+
|
|
2782
|
+
getPointsFromRayCollider = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(r</span>ay, position) => {</span>
|
|
2783
|
+
const origin = <span class="cstat-no" title="statement not covered" >position.clone();</span>
|
|
2784
|
+
const end = <span class="cstat-no" title="statement not covered" >origin.clone().add(ray.ray.direction.clone().multiplyScalar(ray.far));</span>
|
|
2785
|
+
//ray.ray.direction.clone().multiplyScalar(ray.far);
|
|
2786
|
+
|
|
2787
|
+
<span class="cstat-no" title="statement not covered" > return [origin, end];</span>
|
|
2788
|
+
};
|
|
2789
|
+
|
|
2790
|
+
//TODO: ray colliders need refactoring
|
|
2791
|
+
createRayColliderFromVector = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >({</span> type, vector }, near, far, offset, debug) => {</span>
|
|
2792
|
+
const parsedOffset = <span class="cstat-no" title="statement not covered" >{</span>
|
|
2793
|
+
...DEFAULT_COLLIDER_OFFSET,
|
|
2794
|
+
...offset,
|
|
2795
|
+
};
|
|
2796
|
+
|
|
2797
|
+
const position = <span class="cstat-no" title="statement not covered" >this.body.position</span>
|
|
2798
|
+
.clone()
|
|
2799
|
+
.add(new Vector3(parsedOffset.x, parsedOffset.y, parsedOffset.z));
|
|
2800
|
+
|
|
2801
|
+
const ray = <span class="cstat-no" title="statement not covered" >new Raycaster(position, vector, near, far);</span>
|
|
2802
|
+
|
|
2803
|
+
let helper;
|
|
2804
|
+
// if (debug) {
|
|
2805
|
+
// const points = this.getPointsFromRayCollider(ray, position);
|
|
2806
|
+
// helper = new Line(points);
|
|
2807
|
+
// helper.addTag(COLLIDER_TAG);
|
|
2808
|
+
// helper.setColor(COLLIDER_COLOR);
|
|
2809
|
+
// helper.setThickness(4);
|
|
2810
|
+
// }
|
|
2811
|
+
|
|
2812
|
+
<span class="cstat-no" title="statement not covered" > if (this.getEntityType() === ENTITY_TYPES.SPRITE) {</span>
|
|
2813
|
+
<span class="cstat-no" title="statement not covered" > ray.setFromCamera(position, Scene.getCameraBody());</span>
|
|
2814
|
+
}
|
|
2815
|
+
|
|
2816
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2817
|
+
type,
|
|
2818
|
+
ray,
|
|
2819
|
+
helper,
|
|
2820
|
+
offset: parsedOffset,
|
|
2821
|
+
};
|
|
2822
|
+
};
|
|
2823
|
+
|
|
2824
|
+
setColliders = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(v</span>ectors = <span class="branch-0 cbranch-no" title="branch not covered" >[],</span> options = <span class="branch-0 cbranch-no" title="branch not covered" >[])</span> => {</span>
|
|
2825
|
+
const colliders = <span class="cstat-no" title="statement not covered" >vectors.map(<span class="fstat-no" title="function not covered" >(v</span>ector, i) => {</span>
|
|
2826
|
+
const {
|
|
2827
|
+
near = <span class="branch-0 cbranch-no" title="branch not covered" >0,</span>
|
|
2828
|
+
far = <span class="branch-0 cbranch-no" title="branch not covered" >10,</span>
|
|
2829
|
+
debug = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
|
|
2830
|
+
offset = <span class="branch-0 cbranch-no" title="branch not covered" >DEFAULT_COLLIDER_OFFSET,</span>
|
|
2831
|
+
} = <span class="cstat-no" title="statement not covered" >options[i];</span>
|
|
2832
|
+
<span class="cstat-no" title="statement not covered" > return this.createRayColliderFromVector(vector, near, far, offset, debug);</span>
|
|
2833
|
+
});
|
|
2834
|
+
|
|
2835
|
+
<span class="cstat-no" title="statement not covered" > this.colliders = [...this.colliders, ...colliders];</span>
|
|
2836
|
+
};
|
|
2837
|
+
|
|
2838
|
+
checkRayCollider = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >({</span> ray, type }) => {</span>
|
|
2839
|
+
const mapCollision = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >co</span>llision => {</span>
|
|
2840
|
+
const { distance, object } = <span class="cstat-no" title="statement not covered" >collision;</span>
|
|
2841
|
+
const { uuid } = <span class="cstat-no" title="statement not covered" >object;</span>
|
|
2842
|
+
|
|
2843
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2844
|
+
distance,
|
|
2845
|
+
body: Universe.getByUUID(uuid),
|
|
2846
|
+
};
|
|
2847
|
+
};
|
|
2848
|
+
|
|
2849
|
+
const collisions = <span class="cstat-no" title="statement not covered" >ray</span>
|
|
2850
|
+
.intersectObjects(Scene.scene.children)
|
|
2851
|
+
.filter(<span class="fstat-no" title="function not covered" >co</span>llision => <span class="cstat-no" title="statement not covered" >collision.object.uuid !== this.uuid())</span>
|
|
2852
|
+
.map(mapCollision)
|
|
2853
|
+
.filter(<span class="fstat-no" title="function not covered" >({</span> body }) => <span class="cstat-no" title="statement not covered" >!body.hasTag(COLLIDER_TAG))</span>;
|
|
2854
|
+
|
|
2855
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
2856
|
+
collisions,
|
|
2857
|
+
type,
|
|
2858
|
+
};
|
|
2859
|
+
};
|
|
2860
|
+
|
|
2861
|
+
checkCollisions = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> => {</span>
|
|
2862
|
+
const collisions = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
2863
|
+
<span class="cstat-no" title="statement not covered" > this.colliders.forEach(<span class="fstat-no" title="function not covered" >co</span>llider => {</span>
|
|
2864
|
+
const collision = <span class="cstat-no" title="statement not covered" >this.checkRayCollider(collider);</span>
|
|
2865
|
+
|
|
2866
|
+
<span class="cstat-no" title="statement not covered" > if (collision) {</span>
|
|
2867
|
+
<span class="cstat-no" title="statement not covered" > collisions.push(collision);</span>
|
|
2868
|
+
}
|
|
2869
|
+
});
|
|
2870
|
+
|
|
2871
|
+
<span class="cstat-no" title="statement not covered" > if (collisions.length) {</span>
|
|
2872
|
+
<span class="cstat-no" title="statement not covered" > this.dispatchEvent({</span>
|
|
2873
|
+
type: COLLISION_EVENT,
|
|
2874
|
+
collisions,
|
|
2875
|
+
});
|
|
2876
|
+
}
|
|
2877
|
+
|
|
2878
|
+
<span class="cstat-no" title="statement not covered" > return collisions;</span>
|
|
2879
|
+
};
|
|
2880
|
+
|
|
2881
|
+
<span class="fstat-no" title="function not covered" > is</span>CollidingOnDirection(direction) {
|
|
2882
|
+
const collider = <span class="cstat-no" title="statement not covered" >this.colliders.filter(<span class="fstat-no" title="function not covered" >({</span> type }) => <span class="cstat-no" title="statement not covered" >type === direction)</span>[0];</span>
|
|
2883
|
+
const emptyCollision = <span class="cstat-no" title="statement not covered" >{</span>
|
|
2884
|
+
collisions: [],
|
|
2885
|
+
type: direction,
|
|
2886
|
+
};
|
|
2887
|
+
|
|
2888
|
+
<span class="cstat-no" title="statement not covered" > return collider ? this.checkRayCollider(collider) : emptyCollision;</span>
|
|
2889
|
+
}
|
|
2890
|
+
|
|
2891
|
+
<span class="fstat-no" title="function not covered" > se</span>tGeometryRotation(rotation = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
2892
|
+
const x = <span class="cstat-no" title="statement not covered" >Number(rotation?.x) || 0;</span>
|
|
2893
|
+
const y = <span class="cstat-no" title="statement not covered" >Number(rotation?.y) || 0;</span>
|
|
2894
|
+
const z = <span class="cstat-no" title="statement not covered" >Number(rotation?.z) || 0;</span>
|
|
2895
|
+
|
|
2896
|
+
<span class="cstat-no" title="statement not covered" > if (x !== 0) {</span>
|
|
2897
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().geometry.rotateX(x);</span>
|
|
2898
|
+
}
|
|
2899
|
+
|
|
2900
|
+
<span class="cstat-no" title="statement not covered" > if (y !== 0) {</span>
|
|
2901
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().geometry.rotateY(y);</span>
|
|
2902
|
+
}
|
|
2903
|
+
|
|
2904
|
+
<span class="cstat-no" title="statement not covered" > if (z !== 0) {</span>
|
|
2905
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().geometry.rotateZ(z);</span>
|
|
2906
|
+
}
|
|
2907
|
+
}
|
|
2908
|
+
|
|
2909
|
+
<span class="fstat-no" title="function not covered" > se</span>tColor(color = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.COLOR])</span> {
|
|
2910
|
+
const _setColor = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => {</span>
|
|
2911
|
+
<span class="cstat-no" title="statement not covered" > if (color && typeof color === 'object' && 'r' in color && 'g' in color && 'b' in color) {</span>
|
|
2912
|
+
<span class="cstat-no" title="statement not covered" > material.color.setRGB(color.r, color.g, color.b);</span>
|
|
2913
|
+
} else {
|
|
2914
|
+
<span class="cstat-no" title="statement not covered" > material.color = new Color(color);</span>
|
|
2915
|
+
}
|
|
2916
|
+
};
|
|
2917
|
+
<span class="cstat-no" title="statement not covered" > if (color) {</span>
|
|
2918
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setColor);</span>
|
|
2919
|
+
} else {
|
|
2920
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ELEMENT_SET_COLOR_MISSING_COLOR);</span>
|
|
2921
|
+
}
|
|
2922
|
+
}
|
|
2923
|
+
|
|
2924
|
+
<span class="fstat-no" title="function not covered" > ge</span>tColor() {
|
|
2925
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.COLOR);</span>
|
|
2926
|
+
}
|
|
2927
|
+
|
|
2928
|
+
<span class="fstat-no" title="function not covered" > se</span>tFog(enabled = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.FOG])</span> {
|
|
2929
|
+
const _setFog = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.FOG] = enabled)</span>;</span>
|
|
2930
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setFog);</span>
|
|
2931
|
+
}
|
|
2932
|
+
|
|
2933
|
+
<span class="fstat-no" title="function not covered" > ge</span>tFog() {
|
|
2934
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.FOG);</span>
|
|
2935
|
+
}
|
|
2936
|
+
|
|
2937
|
+
<span class="fstat-no" title="function not covered" > se</span>tReflectivity(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.REFLECTIVITY])</span> {
|
|
2938
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
2939
|
+
const _setReflectivity = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.REFLECTIVITY] = numericValue)</span>;</span>
|
|
2940
|
+
<span class="cstat-no" title="statement not covered" > if (value != undefined) {</span>
|
|
2941
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setReflectivity);</span>
|
|
2942
|
+
} else {
|
|
2943
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ELEMENT_SET_REFLECTIVITY_MISSING_VALUE);</span>
|
|
2944
|
+
}
|
|
2945
|
+
}
|
|
2946
|
+
|
|
2947
|
+
<span class="fstat-no" title="function not covered" > ge</span>tReflectivity() {
|
|
2948
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.REFLECTIVITY);</span>
|
|
2949
|
+
}
|
|
2950
|
+
|
|
2951
|
+
<span class="fstat-no" title="function not covered" > se</span>tRefractionRatio(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.REFRACTION_RATIO])</span> {
|
|
2952
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
2953
|
+
const _setRefractionRatio = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.REFRACTION_RATIO] = numericValue)</span>;</span>
|
|
2954
|
+
<span class="cstat-no" title="statement not covered" > if (value != undefined) {</span>
|
|
2955
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setRefractionRatio);</span>
|
|
2956
|
+
} else {
|
|
2957
|
+
<span class="cstat-no" title="statement not covered" > console.warn(ELEMENT_SET_REFRACTION_RATIO_MISSING_VALUE);</span>
|
|
2958
|
+
}
|
|
2959
|
+
}
|
|
2960
|
+
|
|
2961
|
+
<span class="fstat-no" title="function not covered" > ge</span>tRefractionRatio() {
|
|
2962
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.REFRACTION_RATIO);</span>
|
|
2963
|
+
}
|
|
2964
|
+
|
|
2965
|
+
<span class="fstat-no" title="function not covered" > se</span>tDepthWrite(flag = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.DEPTH_WRITE])</span> {
|
|
2966
|
+
const _setDepthWrite = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.DEPTH_WRITE] = flag)</span>;</span>
|
|
2967
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setDepthWrite);</span>
|
|
2968
|
+
}
|
|
2969
|
+
|
|
2970
|
+
<span class="fstat-no" title="function not covered" > ge</span>tDepthWrite() {
|
|
2971
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.DEPTH_WRITE);</span>
|
|
2972
|
+
}
|
|
2973
|
+
|
|
2974
|
+
<span class="fstat-no" title="function not covered" > se</span>tDepthTest(flag = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.DEPTH_TEST])</span> {
|
|
2975
|
+
const _setDepthTest = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.DEPTH_TEST] = flag)</span>;</span>
|
|
2976
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setDepthTest);</span>
|
|
2977
|
+
}
|
|
2978
|
+
|
|
2979
|
+
<span class="fstat-no" title="function not covered" > ge</span>tDepthTest() {
|
|
2980
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.DEPTH_TEST);</span>
|
|
2981
|
+
}
|
|
2982
|
+
|
|
2983
|
+
<span class="fstat-no" title="function not covered" > se</span>tCombine(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.COMBINE])</span> {
|
|
2984
|
+
const _setCombine = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.COMBINE] = value)</span>;</span>
|
|
2985
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setCombine);</span>
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2988
|
+
<span class="fstat-no" title="function not covered" > ge</span>tCombine() {
|
|
2989
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.COMBINE);</span>
|
|
2990
|
+
}
|
|
2991
|
+
|
|
2992
|
+
<span class="fstat-no" title="function not covered" > se</span>tFlatShading(flag = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.FLAT_SHADING])</span> {
|
|
2993
|
+
const _setFlatShading = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.FLAT_SHADING] = flag)</span>;</span>
|
|
2994
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setFlatShading);</span>
|
|
2995
|
+
}
|
|
2996
|
+
|
|
2997
|
+
<span class="fstat-no" title="function not covered" > ge</span>tFlatShading() {
|
|
2998
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.FLAT_SHADING);</span>
|
|
2999
|
+
}
|
|
3000
|
+
|
|
3001
|
+
<span class="fstat-no" title="function not covered" > se</span>tShininess(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.SHININESS])</span> {
|
|
3002
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3003
|
+
const _setShininess = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.SHININESS] = numericValue)</span>;</span>
|
|
3004
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setShininess);</span>
|
|
3005
|
+
}
|
|
3006
|
+
|
|
3007
|
+
<span class="fstat-no" title="function not covered" > ge</span>tShininess() {
|
|
3008
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.SHININESS);</span>
|
|
3009
|
+
}
|
|
3010
|
+
|
|
3011
|
+
<span class="fstat-no" title="function not covered" > se</span>tSpecularColor(color = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.SPECULAR])</span> {
|
|
3012
|
+
const _setSpecularColor = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => {</span>
|
|
3013
|
+
<span class="cstat-no" title="statement not covered" > if (color && typeof color === 'object' && 'r' in color && 'g' in color && 'b' in color) {</span>
|
|
3014
|
+
<span class="cstat-no" title="statement not covered" > if (!material[PROPERTIES.SPECULAR]) {</span>
|
|
3015
|
+
<span class="cstat-no" title="statement not covered" > material[PROPERTIES.SPECULAR] = new Color();</span>
|
|
3016
|
+
}
|
|
3017
|
+
<span class="cstat-no" title="statement not covered" > material[PROPERTIES.SPECULAR].setRGB(color.r, color.g, color.b);</span>
|
|
3018
|
+
} else {
|
|
3019
|
+
<span class="cstat-no" title="statement not covered" > material[PROPERTIES.SPECULAR] = new Color(color);</span>
|
|
3020
|
+
}
|
|
3021
|
+
};
|
|
3022
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setSpecularColor);</span>
|
|
3023
|
+
}
|
|
3024
|
+
|
|
3025
|
+
<span class="fstat-no" title="function not covered" > ge</span>tSpecularColor() {
|
|
3026
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.SPECULAR);</span>
|
|
3027
|
+
}
|
|
3028
|
+
|
|
3029
|
+
<span class="fstat-no" title="function not covered" > se</span>tNormalScale(normalScale = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.NORMAL_SCALE])</span> {
|
|
3030
|
+
const _setNormalScale = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.NORMAL_SCALE] = normalScale)</span>;</span>
|
|
3031
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setNormalScale);</span>
|
|
3032
|
+
}
|
|
3033
|
+
|
|
3034
|
+
<span class="fstat-no" title="function not covered" > ge</span>tNormalScale() {
|
|
3035
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.NORMAL_SCALE);</span>
|
|
3036
|
+
}
|
|
3037
|
+
|
|
3038
|
+
<span class="fstat-no" title="function not covered" > se</span>tMetalness(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.METALNESS])</span> {
|
|
3039
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3040
|
+
const _setMetalness = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.METALNESS] = numericValue)</span>;</span>
|
|
3041
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setMetalness);</span>
|
|
3042
|
+
}
|
|
3043
|
+
|
|
3044
|
+
<span class="fstat-no" title="function not covered" > ge</span>tMetalness() {
|
|
3045
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.METALNESS);</span>
|
|
3046
|
+
}
|
|
3047
|
+
|
|
3048
|
+
<span class="fstat-no" title="function not covered" > se</span>tRoughness(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.ROUGHNESS])</span> {
|
|
3049
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3050
|
+
const _setRoughness = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.ROUGHNESS] = numericValue)</span>;</span>
|
|
3051
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setRoughness);</span>
|
|
3052
|
+
}
|
|
3053
|
+
|
|
3054
|
+
<span class="fstat-no" title="function not covered" > ge</span>tRoughness() {
|
|
3055
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.ROUGHNESS);</span>
|
|
3056
|
+
}
|
|
3057
|
+
|
|
3058
|
+
<span class="fstat-no" title="function not covered" > se</span>tEmissive(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.EMISSIVE])</span> {
|
|
3059
|
+
const _setEmissive = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => {</span>
|
|
3060
|
+
<span class="cstat-no" title="statement not covered" > if (value && typeof value === 'object' && 'r' in value && 'g' in value && 'b' in value) {</span>
|
|
3061
|
+
<span class="cstat-no" title="statement not covered" > if (!material[PROPERTIES.EMISSIVE]) {</span>
|
|
3062
|
+
<span class="cstat-no" title="statement not covered" > material[PROPERTIES.EMISSIVE] = new Color();</span>
|
|
3063
|
+
}
|
|
3064
|
+
<span class="cstat-no" title="statement not covered" > material[PROPERTIES.EMISSIVE].setRGB(value.r, value.g, value.b);</span>
|
|
3065
|
+
} else {
|
|
3066
|
+
<span class="cstat-no" title="statement not covered" > material[PROPERTIES.EMISSIVE] = new Color(value);</span>
|
|
3067
|
+
}
|
|
3068
|
+
};
|
|
3069
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setEmissive);</span>
|
|
3070
|
+
}
|
|
3071
|
+
|
|
3072
|
+
<span class="fstat-no" title="function not covered" > ge</span>tEmissive() {
|
|
3073
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.EMISSIVE);</span>
|
|
3074
|
+
}
|
|
3075
|
+
|
|
3076
|
+
<span class="fstat-no" title="function not covered" > se</span>tEmissiveIntensity(
|
|
3077
|
+
value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.EMISSIVE_INTENSITY],</span>
|
|
3078
|
+
) {
|
|
3079
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3080
|
+
const _setEmissiveIntensity = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.EMISSIVE_INTENSITY] = numericValue)</span>;</span>
|
|
3081
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setEmissiveIntensity);</span>
|
|
3082
|
+
}
|
|
3083
|
+
|
|
3084
|
+
<span class="fstat-no" title="function not covered" > ge</span>tEmissiveIntensity() {
|
|
3085
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.EMISSIVE_INTENSITY);</span>
|
|
3086
|
+
}
|
|
3087
|
+
|
|
3088
|
+
<span class="fstat-no" title="function not covered" > se</span>tLightMapIntensity(
|
|
3089
|
+
value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.LIGHT_MAP_INTENSITY],</span>
|
|
3090
|
+
) {
|
|
3091
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3092
|
+
const _setLightMapIntensity = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial =></span>
|
|
3093
|
+
(<span class="cstat-no" title="statement not covered" >material[PROPERTIES.LIGHT_MAP_INTENSITY] = numericValue)</span>;
|
|
3094
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setLightMapIntensity);</span>
|
|
3095
|
+
}
|
|
3096
|
+
|
|
3097
|
+
<span class="fstat-no" title="function not covered" > ge</span>tLightMapIntensity() {
|
|
3098
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.LIGHT_MAP_INTENSITY);</span>
|
|
3099
|
+
}
|
|
3100
|
+
|
|
3101
|
+
<span class="fstat-no" title="function not covered" > se</span>tAOMapIntensity(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.AO_MAP_INTENSITY])</span> {
|
|
3102
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3103
|
+
const _setAOMapIntensity = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.AO_MAP_INTENSITY] = numericValue)</span>;</span>
|
|
3104
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setAOMapIntensity);</span>
|
|
3105
|
+
}
|
|
3106
|
+
|
|
3107
|
+
<span class="fstat-no" title="function not covered" > ge</span>tAOMapIntensity() {
|
|
3108
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.AO_MAP_INTENSITY);</span>
|
|
3109
|
+
}
|
|
3110
|
+
|
|
3111
|
+
<span class="fstat-no" title="function not covered" > se</span>tAoMapIntensity(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.AO_MAP_INTENSITY])</span> {
|
|
3112
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3113
|
+
const _setAoMapIntensity = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.AO_MAP_INTENSITY] = numericValue)</span>;</span>
|
|
3114
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setAoMapIntensity);</span>
|
|
3115
|
+
}
|
|
3116
|
+
|
|
3117
|
+
<span class="fstat-no" title="function not covered" > se</span>tEnvMapIntensity(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.ENV_MAP_INTENSITY])</span> {
|
|
3118
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3119
|
+
const _setEnvMapIntensity = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.ENV_MAP_INTENSITY] = numericValue)</span>;</span>
|
|
3120
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setEnvMapIntensity);</span>
|
|
3121
|
+
}
|
|
3122
|
+
|
|
3123
|
+
<span class="fstat-no" title="function not covered" > ge</span>tEnvMapIntensity() {
|
|
3124
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.ENV_MAP_INTENSITY);</span>
|
|
3125
|
+
}
|
|
3126
|
+
|
|
3127
|
+
<span class="fstat-no" title="function not covered" > se</span>tDisplacementScale(
|
|
3128
|
+
value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.DISPLACEMENT_SCALE],</span>
|
|
3129
|
+
) {
|
|
3130
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3131
|
+
const _setDisplacementScale = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.DISPLACEMENT_SCALE] = numericValue)</span>;</span>
|
|
3132
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setDisplacementScale);</span>
|
|
3133
|
+
}
|
|
3134
|
+
|
|
3135
|
+
<span class="fstat-no" title="function not covered" > ge</span>tDisplacementScale() {
|
|
3136
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.DISPLACEMENT_SCALE);</span>
|
|
3137
|
+
}
|
|
3138
|
+
|
|
3139
|
+
<span class="fstat-no" title="function not covered" > se</span>tDisplacementBias(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.DISPLACEMENT_BIAS])</span> {
|
|
3140
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3141
|
+
const _setDisplacementBias = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.DISPLACEMENT_BIAS] = numericValue)</span>;</span>
|
|
3142
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setDisplacementBias);</span>
|
|
3143
|
+
}
|
|
3144
|
+
|
|
3145
|
+
<span class="fstat-no" title="function not covered" > ge</span>tDisplacementBias() {
|
|
3146
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.DISPLACEMENT_BIAS);</span>
|
|
3147
|
+
}
|
|
3148
|
+
|
|
3149
|
+
<span class="fstat-no" title="function not covered" > se</span>tBumpScale(value = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.BUMP_SCALE])</span> {
|
|
3150
|
+
const numericValue = <span class="cstat-no" title="statement not covered" >Number(value) || 0;</span>
|
|
3151
|
+
const _setBumpScale = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.BUMP_SCALE] = numericValue)</span>;</span>
|
|
3152
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setBumpScale);</span>
|
|
3153
|
+
}
|
|
3154
|
+
|
|
3155
|
+
<span class="fstat-no" title="function not covered" > ge</span>tBumpScale() {
|
|
3156
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.BUMP_SCALE);</span>
|
|
3157
|
+
}
|
|
3158
|
+
|
|
3159
|
+
<span class="fstat-no" title="function not covered" > se</span>tSide(side = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIAL_PROPERTIES_DEFAULT_VALUES[PROPERTIES.SIDE])</span> {
|
|
3160
|
+
const _setSide = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material[PROPERTIES.SIDE] = side)</span>;</span>
|
|
3161
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setSide);</span>
|
|
3162
|
+
}
|
|
3163
|
+
|
|
3164
|
+
<span class="fstat-no" title="function not covered" > ge</span>tSide() {
|
|
3165
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.SIDE);</span>
|
|
3166
|
+
}
|
|
3167
|
+
|
|
3168
|
+
<span class="fstat-no" title="function not covered" > re</span>cordTexture(id, type, options, assetPath) {
|
|
3169
|
+
// assetPath is the relative path like "textures/mytexture.png"
|
|
3170
|
+
<span class="cstat-no" title="statement not covered" > this.textures.set(type, { id, options, assetPath });</span>
|
|
3171
|
+
}
|
|
3172
|
+
|
|
3173
|
+
setTextureMap = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(t</span>extureId, options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => {</span>
|
|
3174
|
+
<span class="cstat-no" title="statement not covered" > console.warn(DEPRECATIONS.ELEMENT_SET_TEXTURE_MAP);</span>
|
|
3175
|
+
<span class="cstat-no" title="statement not covered" > return this.setTexture(textureId, TEXTURES.MAP, options);</span>
|
|
3176
|
+
};
|
|
3177
|
+
|
|
3178
|
+
<span class="fstat-no" title="function not covered" > se</span>tTexture(textureId, textureType = <span class="branch-0 cbranch-no" title="branch not covered" >TEXTURES.MAP,</span> options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
3179
|
+
<span class="cstat-no" title="statement not covered" > if (!isTextureMapAllowedForMaterial(this.getMaterialType(), textureType)) {</span>
|
|
3180
|
+
<span class="cstat-no" title="statement not covered" > console.log(</span>
|
|
3181
|
+
ELEMENT_MATERIAL_NO_SUPPORT_FOR_TEXTURE,
|
|
3182
|
+
textureType,
|
|
3183
|
+
this.getMaterialType(),
|
|
3184
|
+
);
|
|
3185
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3186
|
+
}
|
|
3187
|
+
|
|
3188
|
+
<span class="cstat-no" title="statement not covered" > if (textureId) {</span>
|
|
3189
|
+
const { repeat = <span class="branch-0 cbranch-no" title="branch not covered" >{ x: 1, y: 1 },</span> wrap = <span class="branch-0 cbranch-no" title="branch not covered" >RepeatWrapping,</span> assetPath } = <span class="cstat-no" title="statement not covered" >options;</span>
|
|
3190
|
+
const textureOptions = <span class="cstat-no" title="statement not covered" >{</span>
|
|
3191
|
+
repeat,
|
|
3192
|
+
wrap,
|
|
3193
|
+
};
|
|
3194
|
+
|
|
3195
|
+
<span class="cstat-no" title="statement not covered" > this.recordTexture(textureId, textureType, textureOptions, assetPath);</span>
|
|
3196
|
+
|
|
3197
|
+
const applyTextureTo = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => {</span>
|
|
3198
|
+
const texture = <span class="cstat-no" title="statement not covered" >Images.get(textureId);</span>
|
|
3199
|
+
|
|
3200
|
+
<span class="cstat-no" title="statement not covered" > if (!texture) {</span>
|
|
3201
|
+
<span class="cstat-no" title="statement not covered" > console.warn(`[Mage] Texture not found: ${textureId}`);</span>
|
|
3202
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
3203
|
+
}
|
|
3204
|
+
|
|
3205
|
+
<span class="cstat-no" title="statement not covered" > texture.wrapS = textureOptions.wrap;</span>
|
|
3206
|
+
<span class="cstat-no" title="statement not covered" > texture.wrapT = textureOptions.wrap;</span>
|
|
3207
|
+
<span class="cstat-no" title="statement not covered" > texture.repeat.set(textureOptions.repeat.x, textureOptions.repeat.y);</span>
|
|
3208
|
+
|
|
3209
|
+
// Set sRGB encoding for color textures (map, emissiveMap, specularMap)
|
|
3210
|
+
// This is required for textures to display with correct colors
|
|
3211
|
+
<span class="cstat-no" title="statement not covered" > if (textureType === TEXTURES.MAP ||</span>
|
|
3212
|
+
textureType === TEXTURES.EMISSIVE ||
|
|
3213
|
+
textureType === TEXTURES.SPECULAR) {
|
|
3214
|
+
<span class="cstat-no" title="statement not covered" > texture.encoding = sRGBEncoding;</span>
|
|
3215
|
+
}
|
|
3216
|
+
|
|
3217
|
+
<span class="cstat-no" title="statement not covered" > material[textureType] = texture;</span>
|
|
3218
|
+
<span class="cstat-no" title="statement not covered" > material.needsUpdate = true;</span>
|
|
3219
|
+
};
|
|
3220
|
+
|
|
3221
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), applyTextureTo);</span>
|
|
3222
|
+
}
|
|
3223
|
+
}
|
|
3224
|
+
|
|
3225
|
+
<span class="fstat-no" title="function not covered" > ge</span>tTexture(textureType = <span class="branch-0 cbranch-no" title="branch not covered" >TEXTURES.MAP)</span> {
|
|
3226
|
+
<span class="cstat-no" title="statement not covered" > return this.getBody().material[textureType];</span>
|
|
3227
|
+
}
|
|
3228
|
+
|
|
3229
|
+
<span class="fstat-no" title="function not covered" > ge</span>tMaterials() {
|
|
3230
|
+
<span class="cstat-no" title="statement not covered" > if (hasMaterial(this.getBody())) {</span>
|
|
3231
|
+
<span class="cstat-no" title="statement not covered" > return [this.getBody().material];</span>
|
|
3232
|
+
}
|
|
3233
|
+
|
|
3234
|
+
const materials = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
3235
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().traverse(<span class="fstat-no" title="function not covered" >ch</span>ild => {</span>
|
|
3236
|
+
<span class="cstat-no" title="statement not covered" > if (hasMaterial(child)) {</span>
|
|
3237
|
+
<span class="cstat-no" title="statement not covered" > materials.push(child.material);</span>
|
|
3238
|
+
}
|
|
3239
|
+
});
|
|
3240
|
+
|
|
3241
|
+
<span class="cstat-no" title="statement not covered" > return materials;</span>
|
|
3242
|
+
}
|
|
3243
|
+
|
|
3244
|
+
<span class="fstat-no" title="function not covered" > ge</span>tMaterialType() {
|
|
3245
|
+
<span class="cstat-no" title="statement not covered" > return this.materialType;</span>
|
|
3246
|
+
}
|
|
3247
|
+
|
|
3248
|
+
<span class="fstat-no" title="function not covered" > se</span>tMaterialType(materialType = <span class="branch-0 cbranch-no" title="branch not covered" >MATERIALS.BASIC)</span> {
|
|
3249
|
+
<span class="cstat-no" title="statement not covered" > this.materialType = materialType;</span>
|
|
3250
|
+
}
|
|
3251
|
+
|
|
3252
|
+
<span class="fstat-no" title="function not covered" > se</span>tMaterialFromName(materialName, options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
3253
|
+
<span class="cstat-no" title="statement not covered" > this.setMaterialType(materialName);</span>
|
|
3254
|
+
const newMaterials = <span class="cstat-no" title="statement not covered" >[];</span>
|
|
3255
|
+
|
|
3256
|
+
<span class="cstat-no" title="statement not covered" > if (hasMaterial(this.getBody())) {</span>
|
|
3257
|
+
<span class="cstat-no" title="statement not covered" > return replaceMaterialByName(materialName, this.getBody(), options);</span>
|
|
3258
|
+
} else {
|
|
3259
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().traverse(<span class="fstat-no" title="function not covered" >ch</span>ild => {</span>
|
|
3260
|
+
<span class="cstat-no" title="statement not covered" > if (hasMaterial(child)) {</span>
|
|
3261
|
+
<span class="cstat-no" title="statement not covered" > newMaterials.push(replaceMaterialByName(materialName, child, options));</span>
|
|
3262
|
+
}
|
|
3263
|
+
});
|
|
3264
|
+
|
|
3265
|
+
<span class="cstat-no" title="statement not covered" > return newMaterials;</span>
|
|
3266
|
+
}
|
|
3267
|
+
}
|
|
3268
|
+
|
|
3269
|
+
<span class="fstat-no" title="function not covered" > se</span>tOpacity(value = <span class="branch-0 cbranch-no" title="branch not covered" >1.0)</span> {
|
|
3270
|
+
const opacity = <span class="cstat-no" title="statement not covered" >clamp(value, 0, 1);</span>
|
|
3271
|
+
<span class="cstat-no" title="statement not covered" > this.opacity = opacity;</span>
|
|
3272
|
+
|
|
3273
|
+
const _setOpacity = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => {</span>
|
|
3274
|
+
<span class="cstat-no" title="statement not covered" > material.transparent = true;</span>
|
|
3275
|
+
<span class="cstat-no" title="statement not covered" > material.opacity = this.opacity;</span>
|
|
3276
|
+
};
|
|
3277
|
+
|
|
3278
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setOpacity);</span>
|
|
3279
|
+
}
|
|
3280
|
+
|
|
3281
|
+
<span class="fstat-no" title="function not covered" > ge</span>tOpacity() {
|
|
3282
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.OPACITY);</span>
|
|
3283
|
+
}
|
|
3284
|
+
|
|
3285
|
+
<span class="fstat-no" title="function not covered" > se</span>tTransparent(flag = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
|
|
3286
|
+
const _setTransparent = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material.transparent = flag)</span>;</span>
|
|
3287
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setTransparent);</span>
|
|
3288
|
+
}
|
|
3289
|
+
|
|
3290
|
+
<span class="fstat-no" title="function not covered" > is</span>Transparent() {
|
|
3291
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.TRANSPARENT);</span>
|
|
3292
|
+
}
|
|
3293
|
+
|
|
3294
|
+
<span class="fstat-no" title="function not covered" > se</span>tVisible(flag = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
|
|
3295
|
+
const _setVisible = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material.visible = flag)</span>;</span>
|
|
3296
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setVisible);</span>
|
|
3297
|
+
}
|
|
3298
|
+
|
|
3299
|
+
<span class="fstat-no" title="function not covered" > is</span>Visible() {
|
|
3300
|
+
<span class="cstat-no" title="statement not covered" > return extractMaterialProperty(this.getBody(), PROPERTIES.VISIBLE);</span>
|
|
3301
|
+
}
|
|
3302
|
+
|
|
3303
|
+
<span class="fstat-no" title="function not covered" > fa</span>deTo(opacity = <span class="branch-0 cbranch-no" title="branch not covered" >1,</span> time = <span class="branch-0 cbranch-no" title="branch not covered" >250,</span> options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
3304
|
+
const onUpdate = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >va</span>lue => <span class="cstat-no" title="statement not covered" >!this.isDisposed() && this.setOpacity(value);</span></span>
|
|
3305
|
+
<span class="cstat-no" title="statement not covered" > return tweenTo(this.opacity, clamp(opacity, 0, 1), { ...options, time, onUpdate });</span>
|
|
3306
|
+
}
|
|
3307
|
+
|
|
3308
|
+
<span class="fstat-no" title="function not covered" > se</span>tWireframe(flag = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
|
|
3309
|
+
const _setWireframe = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => (<span class="cstat-no" title="statement not covered" >material.wireframe = flag)</span>;</span>
|
|
3310
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setWireframe);</span>
|
|
3311
|
+
}
|
|
3312
|
+
|
|
3313
|
+
<span class="fstat-no" title="function not covered" > se</span>tWireframeLineWidth(width = <span class="branch-0 cbranch-no" title="branch not covered" >1)</span> {
|
|
3314
|
+
const numericWidth = <span class="cstat-no" title="statement not covered" >Number(width) || 1;</span>
|
|
3315
|
+
const _setWireframeLineWidth = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ma</span>terial => {</span>
|
|
3316
|
+
<span class="cstat-no" title="statement not covered" > material.wireframeLinewidth = numericWidth;</span>
|
|
3317
|
+
};
|
|
3318
|
+
|
|
3319
|
+
<span class="cstat-no" title="statement not covered" > applyMaterialChange(this.getBody(), _setWireframeLineWidth);</span>
|
|
3320
|
+
}
|
|
3321
|
+
|
|
3322
|
+
lookAt = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >({</span> x = <span class="branch-0 cbranch-no" title="branch not covered" >0,</span> y = <span class="branch-0 cbranch-no" title="branch not covered" >0,</span> z = <span class="branch-0 cbranch-no" title="branch not covered" >0 </span>} = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> => {</span>
|
|
3323
|
+
const body = <span class="cstat-no" title="statement not covered" >this.getBody();</span>
|
|
3324
|
+
<span class="cstat-no" title="statement not covered" > if (body.lookAt) {</span>
|
|
3325
|
+
<span class="cstat-no" title="statement not covered" > body.lookAt(x, y, z);</span>
|
|
3326
|
+
}
|
|
3327
|
+
};
|
|
3328
|
+
|
|
3329
|
+
handlePhysicsUpdate = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >({</span> position, quaternion, ...data }) => {</span>
|
|
3330
|
+
<span class="cstat-no" title="statement not covered" > this.setPosition(position);</span>
|
|
3331
|
+
<span class="cstat-no" title="statement not covered" > this.setQuaternion(quaternion);</span>
|
|
3332
|
+
<span class="cstat-no" title="statement not covered" > this.setPhysicsState(data);</span>
|
|
3333
|
+
};
|
|
3334
|
+
|
|
3335
|
+
equals = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >ob</span>ject => <span class="cstat-no" title="statement not covered" >this.name === object.name && this.body.uuid === object.body.uuid;</span></span>
|
|
3336
|
+
|
|
3337
|
+
traverse = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >cb</span> => {</span>
|
|
3338
|
+
<span class="cstat-no" title="statement not covered" > this.body.traverse(cb);</span>
|
|
3339
|
+
};
|
|
3340
|
+
|
|
3341
|
+
<span class="fstat-no" title="function not covered" > di</span>sposeBody() {
|
|
3342
|
+
<span class="cstat-no" title="statement not covered" > super.disposeBody();</span>
|
|
3343
|
+
|
|
3344
|
+
<span class="cstat-no" title="statement not covered" > if (hasMaterial(this.getBody())) {</span>
|
|
3345
|
+
<span class="cstat-no" title="statement not covered" > disposeTextures(this.getBody());</span>
|
|
3346
|
+
<span class="cstat-no" title="statement not covered" > disposeMaterial(this.getBody());</span>
|
|
3347
|
+
<span class="cstat-no" title="statement not covered" > disposeGeometry(this.getBody());</span>
|
|
3348
|
+
}
|
|
3349
|
+
|
|
3350
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().traverse(<span class="fstat-no" title="function not covered" >ch</span>ild => {</span>
|
|
3351
|
+
<span class="cstat-no" title="statement not covered" > if (hasMaterial(child)) {</span>
|
|
3352
|
+
<span class="cstat-no" title="statement not covered" > disposeTextures(child);</span>
|
|
3353
|
+
<span class="cstat-no" title="statement not covered" > disposeMaterial(child);</span>
|
|
3354
|
+
<span class="cstat-no" title="statement not covered" > disposeGeometry(child);</span>
|
|
3355
|
+
}
|
|
3356
|
+
});
|
|
3357
|
+
}
|
|
3358
|
+
|
|
3359
|
+
<span class="fstat-no" title="function not covered" > up</span>date(dt) {
|
|
3360
|
+
<span class="cstat-no" title="statement not covered" > super.update(dt);</span>
|
|
3361
|
+
|
|
3362
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasRayColliders() && this.areCollisionsEnabled()) {</span>
|
|
3363
|
+
<span class="cstat-no" title="statement not covered" > this.updateRayColliders();</span>
|
|
3364
|
+
<span class="cstat-no" title="statement not covered" > this.checkCollisions();</span>
|
|
3365
|
+
}
|
|
3366
|
+
|
|
3367
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler() && this.animationHandler.isPlaying) {</span>
|
|
3368
|
+
<span class="cstat-no" title="statement not covered" > this.animationHandler.update(dt);</span>
|
|
3369
|
+
}
|
|
3370
|
+
}
|
|
3371
|
+
|
|
3372
|
+
<span class="fstat-no" title="function not covered" > di</span>spose() {
|
|
3373
|
+
<span class="cstat-no" title="statement not covered" > super.dispose();</span>
|
|
3374
|
+
|
|
3375
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasAnimationHandler()) {</span>
|
|
3376
|
+
<span class="cstat-no" title="statement not covered" > this.removeAnimationHandlerListeners();</span>
|
|
3377
|
+
}
|
|
3378
|
+
|
|
3379
|
+
<span class="cstat-no" title="statement not covered" > Physics.disposeElement(this);</span>
|
|
3380
|
+
}
|
|
3381
|
+
|
|
3382
|
+
/**
|
|
3383
|
+
* Serialize only the material properties that the Importer actually uses.
|
|
3384
|
+
* This avoids bloating the JSON with full Three.js material data.
|
|
3385
|
+
*/
|
|
3386
|
+
<span class="fstat-no" title="function not covered" > se</span>rializeMaterialProperties() {
|
|
3387
|
+
const materialType = <span class="cstat-no" title="statement not covered" >this.getMaterialType();</span>
|
|
3388
|
+
// Use allowed properties for known material types, or fallback to STANDARD properties
|
|
3389
|
+
// which has the most comprehensive set
|
|
3390
|
+
const allowedProperties = <span class="cstat-no" title="statement not covered" >MATERIAL_PROPERTIES_MAP[materialType]</span>
|
|
3391
|
+
|| MATERIAL_PROPERTIES_MAP[MATERIALS.STANDARD]
|
|
3392
|
+
|| [];
|
|
3393
|
+
const materials = <span class="cstat-no" title="statement not covered" >this.getMaterials();</span>
|
|
3394
|
+
|
|
3395
|
+
<span class="cstat-no" title="statement not covered" > if (!materials.length) <span class="cstat-no" title="statement not covered" >return [];</span></span>
|
|
3396
|
+
|
|
3397
|
+
<span class="cstat-no" title="statement not covered" > return materials.map(<span class="fstat-no" title="function not covered" >ma</span>terial => {</span>
|
|
3398
|
+
const serialized = <span class="cstat-no" title="statement not covered" >{</span>
|
|
3399
|
+
// Always include the material type for the inspector
|
|
3400
|
+
type: material.type,
|
|
3401
|
+
};
|
|
3402
|
+
<span class="cstat-no" title="statement not covered" > for (const prop of allowedProperties) {</span>
|
|
3403
|
+
<span class="cstat-no" title="statement not covered" > if (material[prop] !== undefined) {</span>
|
|
3404
|
+
const value = <span class="cstat-no" title="statement not covered" >material[prop];</span>
|
|
3405
|
+
// Serialize Color objects to plain objects
|
|
3406
|
+
<span class="cstat-no" title="statement not covered" > if (value && value.isColor) {</span>
|
|
3407
|
+
<span class="cstat-no" title="statement not covered" > serialized[prop] = { r: value.r, g: value.g, b: value.b };</span>
|
|
3408
|
+
} else <span class="cstat-no" title="statement not covered" >if (value && value.isVector2) {</span>
|
|
3409
|
+
<span class="cstat-no" title="statement not covered" > serialized[prop] = { x: value.x, y: value.y };</span>
|
|
3410
|
+
} else {
|
|
3411
|
+
<span class="cstat-no" title="statement not covered" > serialized[prop] = value;</span>
|
|
3412
|
+
}
|
|
3413
|
+
}
|
|
3414
|
+
}
|
|
3415
|
+
<span class="cstat-no" title="statement not covered" > return serialized;</span>
|
|
3416
|
+
});
|
|
3417
|
+
}
|
|
3418
|
+
|
|
3419
|
+
<span class="fstat-no" title="function not covered" > to</span>JSON(parseJSON = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
|
|
3420
|
+
<span class="cstat-no" title="statement not covered" > if (this.isSerializable()) {</span>
|
|
3421
|
+
const color = <span class="cstat-no" title="statement not covered" >this.getColor();</span>
|
|
3422
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
3423
|
+
...super.toJSON(parseJSON),
|
|
3424
|
+
// Physics options (state is not used by Importer, only options)
|
|
3425
|
+
physics: {
|
|
3426
|
+
options: this.getPhysicsOptions(),
|
|
3427
|
+
},
|
|
3428
|
+
// Textures with serialized map
|
|
3429
|
+
textures: serializeMap(this.textures),
|
|
3430
|
+
// Material type name (e.g., "STANDARD", "BASIC")
|
|
3431
|
+
materialType: this.getMaterialType(),
|
|
3432
|
+
// Lightweight material properties (type + allowed properties only)
|
|
3433
|
+
materials: this.serializeMaterialProperties(),
|
|
3434
|
+
// Opacity
|
|
3435
|
+
opacity: this.opacity,
|
|
3436
|
+
// Color (for inspector display)
|
|
3437
|
+
color: parseJSON ? { r: color?.r, g: color?.g, b: color?.b } : color,
|
|
3438
|
+
// Animation names (for inspector display - actual animations loaded from model file)
|
|
3439
|
+
animations: this.getAvailableAnimations(),
|
|
3440
|
+
};
|
|
3441
|
+
}
|
|
3442
|
+
}
|
|
3443
|
+
}
|
|
3444
|
+
</pre></td></tr></table></pre>
|
|
3445
|
+
|
|
3446
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
3447
|
+
</div><!-- /wrapper -->
|
|
3448
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
3449
|
+
Code coverage generated by
|
|
3450
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
3451
|
+
at 2026-03-02T17:28:15.675Z
|
|
3452
|
+
</div>
|
|
3453
|
+
<script src="../prettify.js"></script>
|
|
3454
|
+
<script>
|
|
3455
|
+
window.onload = function () {
|
|
3456
|
+
prettyPrint();
|
|
3457
|
+
};
|
|
3458
|
+
</script>
|
|
3459
|
+
<script src="../sorter.js"></script>
|
|
3460
|
+
<script src="../block-navigation.js"></script>
|
|
3461
|
+
</body>
|
|
3462
|
+
</html>
|
|
3463
|
+
|