@copilotkitnext/angular 0.0.31 → 0.0.32
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/package.json +5 -5
- package/coverage/clover.xml +0 -2008
- package/coverage/coverage-final.json +0 -44
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -251
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message-buttons.ts.html +0 -1039
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message-renderer.ts.html +0 -1411
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message-toolbar.ts.html +0 -145
- package/coverage/lcov-report/src/components/chat/copilot-chat-assistant-message.ts.html +0 -1486
- package/coverage/lcov-report/src/components/chat/copilot-chat-audio-recorder.ts.html +0 -811
- package/coverage/lcov-report/src/components/chat/copilot-chat-buttons.ts.html +0 -1009
- package/coverage/lcov-report/src/components/chat/copilot-chat-input.ts.html +0 -1519
- package/coverage/lcov-report/src/components/chat/copilot-chat-input.types.ts.html +0 -529
- package/coverage/lcov-report/src/components/chat/copilot-chat-message-view-cursor.ts.html +0 -196
- package/coverage/lcov-report/src/components/chat/copilot-chat-message-view.ts.html +0 -715
- package/coverage/lcov-report/src/components/chat/copilot-chat-textarea.ts.html +0 -634
- package/coverage/lcov-report/src/components/chat/copilot-chat-tool-calls-view.ts.html +0 -889
- package/coverage/lcov-report/src/components/chat/copilot-chat-toolbar.ts.html +0 -175
- package/coverage/lcov-report/src/components/chat/copilot-chat-tools-menu.ts.html +0 -625
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-branch-navigation.ts.html +0 -403
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-buttons.ts.html +0 -580
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-renderer.ts.html +0 -181
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message-toolbar.ts.html +0 -184
- package/coverage/lcov-report/src/components/chat/copilot-chat-user-message.ts.html +0 -784
- package/coverage/lcov-report/src/components/chat/copilot-chat-view-handlers.ts.html +0 -127
- package/coverage/lcov-report/src/components/chat/index.html +0 -401
- package/coverage/lcov-report/src/core/chat-configuration/chat-configuration.providers.ts.html +0 -304
- package/coverage/lcov-report/src/core/chat-configuration/chat-configuration.ts.html +0 -580
- package/coverage/lcov-report/src/core/chat-configuration/chat-configuration.types.ts.html +0 -256
- package/coverage/lcov-report/src/core/chat-configuration/index.html +0 -146
- package/coverage/lcov-report/src/core/copilotkit.providers.ts.html +0 -262
- package/coverage/lcov-report/src/core/copilotkit.ts.html +0 -1612
- package/coverage/lcov-report/src/core/copilotkit.types.ts.html +0 -478
- package/coverage/lcov-report/src/core/index.html +0 -146
- package/coverage/lcov-report/src/directives/copilotkit-agent-context.ts.html +0 -499
- package/coverage/lcov-report/src/directives/copilotkit-agent.ts.html +0 -742
- package/coverage/lcov-report/src/directives/copilotkit-chat-config.ts.html +0 -781
- package/coverage/lcov-report/src/directives/copilotkit-config.ts.html +0 -328
- package/coverage/lcov-report/src/directives/copilotkit-frontend-tool.ts.html +0 -517
- package/coverage/lcov-report/src/directives/copilotkit-human-in-the-loop.ts.html +0 -925
- package/coverage/lcov-report/src/directives/index.html +0 -191
- package/coverage/lcov-report/src/lib/directives/index.html +0 -116
- package/coverage/lcov-report/src/lib/directives/tooltip.ts.html +0 -958
- package/coverage/lcov-report/src/lib/index.html +0 -116
- package/coverage/lcov-report/src/lib/slots/copilot-slot.ts.html +0 -526
- package/coverage/lcov-report/src/lib/slots/index.html +0 -146
- package/coverage/lcov-report/src/lib/slots/slot.types.ts.html +0 -274
- package/coverage/lcov-report/src/lib/slots/slot.utils.ts.html +0 -985
- package/coverage/lcov-report/src/lib/utils.ts.html +0 -112
- package/coverage/lcov-report/src/testing/index.html +0 -116
- package/coverage/lcov-report/src/testing/testing.utils.ts.html +0 -835
- package/coverage/lcov-report/src/utils/agent.utils.ts.html +0 -850
- package/coverage/lcov-report/src/utils/chat-config.utils.ts.html +0 -745
- package/coverage/lcov-report/src/utils/frontend-tool.utils.ts.html +0 -871
- package/coverage/lcov-report/src/utils/human-in-the-loop.utils.ts.html +0 -1150
- package/coverage/lcov-report/src/utils/index.html +0 -161
- package/coverage/lcov-report/test-mocks/index.html +0 -116
- package/coverage/lcov-report/test-mocks/marked.ts.html +0 -127
- package/coverage/lcov.info +0 -4216
|
@@ -1,1612 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/core/copilotkit.ts</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">src/core</a> copilotkit.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">93.61% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>132/141</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">73.91% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>34/46</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">88.67% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>47/53</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">93.18% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>123/132</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 high'></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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">14x</span>
|
|
576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-neutral"> </span>
|
|
580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-neutral"> </span>
|
|
582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-yes">14x</span>
|
|
587
|
-
<span class="cline-any cline-yes">14x</span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-neutral"> </span>
|
|
594
|
-
<span class="cline-any cline-neutral"> </span>
|
|
595
|
-
<span class="cline-any cline-neutral"> </span>
|
|
596
|
-
<span class="cline-any cline-neutral"> </span>
|
|
597
|
-
<span class="cline-any cline-neutral"> </span>
|
|
598
|
-
<span class="cline-any cline-neutral"> </span>
|
|
599
|
-
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-yes">14x</span>
|
|
601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
602
|
-
<span class="cline-any cline-neutral"> </span>
|
|
603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-neutral"> </span>
|
|
606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-neutral"> </span>
|
|
609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-yes">14x</span>
|
|
613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-neutral"> </span>
|
|
621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
622
|
-
<span class="cline-any cline-neutral"> </span>
|
|
623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
629
|
-
<span class="cline-any cline-neutral"> </span>
|
|
630
|
-
<span class="cline-any cline-neutral"> </span>
|
|
631
|
-
<span class="cline-any cline-neutral"> </span>
|
|
632
|
-
<span class="cline-any cline-neutral"> </span>
|
|
633
|
-
<span class="cline-any cline-neutral"> </span>
|
|
634
|
-
<span class="cline-any cline-neutral"> </span>
|
|
635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-neutral"> </span>
|
|
640
|
-
<span class="cline-any cline-neutral"> </span>
|
|
641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-neutral"> </span>
|
|
644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
648
|
-
<span class="cline-any cline-neutral"> </span>
|
|
649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
652
|
-
<span class="cline-any cline-neutral"> </span>
|
|
653
|
-
<span class="cline-any cline-neutral"> </span>
|
|
654
|
-
<span class="cline-any cline-neutral"> </span>
|
|
655
|
-
<span class="cline-any cline-neutral"> </span>
|
|
656
|
-
<span class="cline-any cline-neutral"> </span>
|
|
657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
658
|
-
<span class="cline-any cline-neutral"> </span>
|
|
659
|
-
<span class="cline-any cline-neutral"> </span>
|
|
660
|
-
<span class="cline-any cline-neutral"> </span>
|
|
661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-neutral"> </span>
|
|
663
|
-
<span class="cline-any cline-neutral"> </span>
|
|
664
|
-
<span class="cline-any cline-neutral"> </span>
|
|
665
|
-
<span class="cline-any cline-neutral"> </span>
|
|
666
|
-
<span class="cline-any cline-neutral"> </span>
|
|
667
|
-
<span class="cline-any cline-neutral"> </span>
|
|
668
|
-
<span class="cline-any cline-neutral"> </span>
|
|
669
|
-
<span class="cline-any cline-neutral"> </span>
|
|
670
|
-
<span class="cline-any cline-neutral"> </span>
|
|
671
|
-
<span class="cline-any cline-neutral"> </span>
|
|
672
|
-
<span class="cline-any cline-neutral"> </span>
|
|
673
|
-
<span class="cline-any cline-neutral"> </span>
|
|
674
|
-
<span class="cline-any cline-neutral"> </span>
|
|
675
|
-
<span class="cline-any cline-neutral"> </span>
|
|
676
|
-
<span class="cline-any cline-neutral"> </span>
|
|
677
|
-
<span class="cline-any cline-neutral"> </span>
|
|
678
|
-
<span class="cline-any cline-yes">143x</span>
|
|
679
|
-
<span class="cline-any cline-yes">143x</span>
|
|
680
|
-
<span class="cline-any cline-yes">143x</span>
|
|
681
|
-
<span class="cline-any cline-neutral"> </span>
|
|
682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
683
|
-
<span class="cline-any cline-yes">143x</span>
|
|
684
|
-
<span class="cline-any cline-neutral"> </span>
|
|
685
|
-
<span class="cline-any cline-neutral"> </span>
|
|
686
|
-
<span class="cline-any cline-neutral"> </span>
|
|
687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
688
|
-
<span class="cline-any cline-neutral"> </span>
|
|
689
|
-
<span class="cline-any cline-neutral"> </span>
|
|
690
|
-
<span class="cline-any cline-yes">143x</span>
|
|
691
|
-
<span class="cline-any cline-neutral"> </span>
|
|
692
|
-
<span class="cline-any cline-neutral"> </span>
|
|
693
|
-
<span class="cline-any cline-neutral"> </span>
|
|
694
|
-
<span class="cline-any cline-neutral"> </span>
|
|
695
|
-
<span class="cline-any cline-neutral"> </span>
|
|
696
|
-
<span class="cline-any cline-neutral"> </span>
|
|
697
|
-
<span class="cline-any cline-neutral"> </span>
|
|
698
|
-
<span class="cline-any cline-neutral"> </span>
|
|
699
|
-
<span class="cline-any cline-yes">143x</span>
|
|
700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
701
|
-
<span class="cline-any cline-yes">143x</span>
|
|
702
|
-
<span class="cline-any cline-neutral"> </span>
|
|
703
|
-
<span class="cline-any cline-yes">143x</span>
|
|
704
|
-
<span class="cline-any cline-yes">143x</span>
|
|
705
|
-
<span class="cline-any cline-yes">143x</span>
|
|
706
|
-
<span class="cline-any cline-yes">143x</span>
|
|
707
|
-
<span class="cline-any cline-yes">143x</span>
|
|
708
|
-
<span class="cline-any cline-yes">143x</span>
|
|
709
|
-
<span class="cline-any cline-yes">143x</span>
|
|
710
|
-
<span class="cline-any cline-neutral"> </span>
|
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
712
|
-
<span class="cline-any cline-yes">143x</span>
|
|
713
|
-
<span class="cline-any cline-yes">143x</span>
|
|
714
|
-
<span class="cline-any cline-neutral"> </span>
|
|
715
|
-
<span class="cline-any cline-neutral"> </span>
|
|
716
|
-
<span class="cline-any cline-yes">143x</span>
|
|
717
|
-
<span class="cline-any cline-yes">16x</span>
|
|
718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
719
|
-
<span class="cline-any cline-neutral"> </span>
|
|
720
|
-
<span class="cline-any cline-neutral"> </span>
|
|
721
|
-
<span class="cline-any cline-yes">143x</span>
|
|
722
|
-
<span class="cline-any cline-yes">8x</span>
|
|
723
|
-
<span class="cline-any cline-neutral"> </span>
|
|
724
|
-
<span class="cline-any cline-neutral"> </span>
|
|
725
|
-
<span class="cline-any cline-neutral"> </span>
|
|
726
|
-
<span class="cline-any cline-neutral"> </span>
|
|
727
|
-
<span class="cline-any cline-no"> </span>
|
|
728
|
-
<span class="cline-any cline-no"> </span>
|
|
729
|
-
<span class="cline-any cline-neutral"> </span>
|
|
730
|
-
<span class="cline-any cline-neutral"> </span>
|
|
731
|
-
<span class="cline-any cline-no"> </span>
|
|
732
|
-
<span class="cline-any cline-neutral"> </span>
|
|
733
|
-
<span class="cline-any cline-neutral"> </span>
|
|
734
|
-
<span class="cline-any cline-yes">8x</span>
|
|
735
|
-
<span class="cline-any cline-neutral"> </span>
|
|
736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
737
|
-
<span class="cline-any cline-yes">143x</span>
|
|
738
|
-
<span class="cline-any cline-neutral"> </span>
|
|
739
|
-
<span class="cline-any cline-neutral"> </span>
|
|
740
|
-
<span class="cline-any cline-yes">143x</span>
|
|
741
|
-
<span class="cline-any cline-yes">143x</span>
|
|
742
|
-
<span class="cline-any cline-neutral"> </span>
|
|
743
|
-
<span class="cline-any cline-neutral"> </span>
|
|
744
|
-
<span class="cline-any cline-yes">143x</span>
|
|
745
|
-
<span class="cline-any cline-yes">16x</span>
|
|
746
|
-
<span class="cline-any cline-yes">7x</span>
|
|
747
|
-
<span class="cline-any cline-neutral"> </span>
|
|
748
|
-
<span class="cline-any cline-neutral"> </span>
|
|
749
|
-
<span class="cline-any cline-neutral"> </span>
|
|
750
|
-
<span class="cline-any cline-neutral"> </span>
|
|
751
|
-
<span class="cline-any cline-neutral"> </span>
|
|
752
|
-
<span class="cline-any cline-neutral"> </span>
|
|
753
|
-
<span class="cline-any cline-neutral"> </span>
|
|
754
|
-
<span class="cline-any cline-neutral"> </span>
|
|
755
|
-
<span class="cline-any cline-yes">143x</span>
|
|
756
|
-
<span class="cline-any cline-yes">8x</span>
|
|
757
|
-
<span class="cline-any cline-yes">8x</span>
|
|
758
|
-
<span class="cline-any cline-neutral"> </span>
|
|
759
|
-
<span class="cline-any cline-neutral"> </span>
|
|
760
|
-
<span class="cline-any cline-neutral"> </span>
|
|
761
|
-
<span class="cline-any cline-neutral"> </span>
|
|
762
|
-
<span class="cline-any cline-neutral"> </span>
|
|
763
|
-
<span class="cline-any cline-neutral"> </span>
|
|
764
|
-
<span class="cline-any cline-neutral"> </span>
|
|
765
|
-
<span class="cline-any cline-yes">143x</span>
|
|
766
|
-
<span class="cline-any cline-neutral"> </span>
|
|
767
|
-
<span class="cline-any cline-neutral"> </span>
|
|
768
|
-
<span class="cline-any cline-neutral"> </span>
|
|
769
|
-
<span class="cline-any cline-yes">143x</span>
|
|
770
|
-
<span class="cline-any cline-yes">143x</span>
|
|
771
|
-
<span class="cline-any cline-yes">143x</span>
|
|
772
|
-
<span class="cline-any cline-yes">143x</span>
|
|
773
|
-
<span class="cline-any cline-yes">143x</span>
|
|
774
|
-
<span class="cline-any cline-yes">143x</span>
|
|
775
|
-
<span class="cline-any cline-yes">143x</span>
|
|
776
|
-
<span class="cline-any cline-yes">143x</span>
|
|
777
|
-
<span class="cline-any cline-yes">143x</span>
|
|
778
|
-
<span class="cline-any cline-neutral"> </span>
|
|
779
|
-
<span class="cline-any cline-neutral"> </span>
|
|
780
|
-
<span class="cline-any cline-yes">143x</span>
|
|
781
|
-
<span class="cline-any cline-yes">143x</span>
|
|
782
|
-
<span class="cline-any cline-yes">143x</span>
|
|
783
|
-
<span class="cline-any cline-yes">143x</span>
|
|
784
|
-
<span class="cline-any cline-yes">143x</span>
|
|
785
|
-
<span class="cline-any cline-yes">143x</span>
|
|
786
|
-
<span class="cline-any cline-yes">143x</span>
|
|
787
|
-
<span class="cline-any cline-yes">143x</span>
|
|
788
|
-
<span class="cline-any cline-neutral"> </span>
|
|
789
|
-
<span class="cline-any cline-neutral"> </span>
|
|
790
|
-
<span class="cline-any cline-yes">143x</span>
|
|
791
|
-
<span class="cline-any cline-neutral"> </span>
|
|
792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
793
|
-
<span class="cline-any cline-yes">193x</span>
|
|
794
|
-
<span class="cline-any cline-neutral"> </span>
|
|
795
|
-
<span class="cline-any cline-yes">193x</span>
|
|
796
|
-
<span class="cline-any cline-neutral"> </span>
|
|
797
|
-
<span class="cline-any cline-neutral"> </span>
|
|
798
|
-
<span class="cline-any cline-neutral"> </span>
|
|
799
|
-
<span class="cline-any cline-no"> </span>
|
|
800
|
-
<span class="cline-any cline-neutral"> </span>
|
|
801
|
-
<span class="cline-any cline-neutral"> </span>
|
|
802
|
-
<span class="cline-any cline-neutral"> </span>
|
|
803
|
-
<span class="cline-any cline-yes">143x</span>
|
|
804
|
-
<span class="cline-any cline-neutral"> </span>
|
|
805
|
-
<span class="cline-any cline-neutral"> </span>
|
|
806
|
-
<span class="cline-any cline-yes">143x</span>
|
|
807
|
-
<span class="cline-any cline-yes">143x</span>
|
|
808
|
-
<span class="cline-any cline-yes">143x</span>
|
|
809
|
-
<span class="cline-any cline-neutral"> </span>
|
|
810
|
-
<span class="cline-any cline-neutral"> </span>
|
|
811
|
-
<span class="cline-any cline-neutral"> </span>
|
|
812
|
-
<span class="cline-any cline-neutral"> </span>
|
|
813
|
-
<span class="cline-any cline-neutral"> </span>
|
|
814
|
-
<span class="cline-any cline-neutral"> </span>
|
|
815
|
-
<span class="cline-any cline-neutral"> </span>
|
|
816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
817
|
-
<span class="cline-any cline-neutral"> </span>
|
|
818
|
-
<span class="cline-any cline-neutral"> </span>
|
|
819
|
-
<span class="cline-any cline-neutral"> </span>
|
|
820
|
-
<span class="cline-any cline-neutral"> </span>
|
|
821
|
-
<span class="cline-any cline-neutral"> </span>
|
|
822
|
-
<span class="cline-any cline-yes">143x</span>
|
|
823
|
-
<span class="cline-any cline-yes">143x</span>
|
|
824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
825
|
-
<span class="cline-any cline-neutral"> </span>
|
|
826
|
-
<span class="cline-any cline-yes">143x</span>
|
|
827
|
-
<span class="cline-any cline-yes">16x</span>
|
|
828
|
-
<span class="cline-any cline-neutral"> </span>
|
|
829
|
-
<span class="cline-any cline-neutral"> </span>
|
|
830
|
-
<span class="cline-any cline-yes">16x</span>
|
|
831
|
-
<span class="cline-any cline-yes">7x</span>
|
|
832
|
-
<span class="cline-any cline-neutral"> </span>
|
|
833
|
-
<span class="cline-any cline-neutral"> </span>
|
|
834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
835
|
-
<span class="cline-any cline-neutral"> </span>
|
|
836
|
-
<span class="cline-any cline-neutral"> </span>
|
|
837
|
-
<span class="cline-any cline-neutral"> </span>
|
|
838
|
-
<span class="cline-any cline-neutral"> </span>
|
|
839
|
-
<span class="cline-any cline-neutral"> </span>
|
|
840
|
-
<span class="cline-any cline-yes">143x</span>
|
|
841
|
-
<span class="cline-any cline-neutral"> </span>
|
|
842
|
-
<span class="cline-any cline-yes">8x</span>
|
|
843
|
-
<span class="cline-any cline-neutral"> </span>
|
|
844
|
-
<span class="cline-any cline-neutral"> </span>
|
|
845
|
-
<span class="cline-any cline-neutral"> </span>
|
|
846
|
-
<span class="cline-any cline-neutral"> </span>
|
|
847
|
-
<span class="cline-any cline-neutral"> </span>
|
|
848
|
-
<span class="cline-any cline-yes">1x</span>
|
|
849
|
-
<span class="cline-any cline-neutral"> </span>
|
|
850
|
-
<span class="cline-any cline-yes">1x</span>
|
|
851
|
-
<span class="cline-any cline-neutral"> </span>
|
|
852
|
-
<span class="cline-any cline-neutral"> </span>
|
|
853
|
-
<span class="cline-any cline-yes">1x</span>
|
|
854
|
-
<span class="cline-any cline-neutral"> </span>
|
|
855
|
-
<span class="cline-any cline-neutral"> </span>
|
|
856
|
-
<span class="cline-any cline-yes">8x</span>
|
|
857
|
-
<span class="cline-any cline-neutral"> </span>
|
|
858
|
-
<span class="cline-any cline-neutral"> </span>
|
|
859
|
-
<span class="cline-any cline-yes">8x</span>
|
|
860
|
-
<span class="cline-any cline-yes">8x</span>
|
|
861
|
-
<span class="cline-any cline-neutral"> </span>
|
|
862
|
-
<span class="cline-any cline-neutral"> </span>
|
|
863
|
-
<span class="cline-any cline-neutral"> </span>
|
|
864
|
-
<span class="cline-any cline-neutral"> </span>
|
|
865
|
-
<span class="cline-any cline-neutral"> </span>
|
|
866
|
-
<span class="cline-any cline-neutral"> </span>
|
|
867
|
-
<span class="cline-any cline-neutral"> </span>
|
|
868
|
-
<span class="cline-any cline-yes">143x</span>
|
|
869
|
-
<span class="cline-any cline-neutral"> </span>
|
|
870
|
-
<span class="cline-any cline-neutral"> </span>
|
|
871
|
-
<span class="cline-any cline-neutral"> </span>
|
|
872
|
-
<span class="cline-any cline-neutral"> </span>
|
|
873
|
-
<span class="cline-any cline-neutral"> </span>
|
|
874
|
-
<span class="cline-any cline-neutral"> </span>
|
|
875
|
-
<span class="cline-any cline-neutral"> </span>
|
|
876
|
-
<span class="cline-any cline-yes">143x</span>
|
|
877
|
-
<span class="cline-any cline-yes">143x</span>
|
|
878
|
-
<span class="cline-any cline-yes">143x</span>
|
|
879
|
-
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-neutral"> </span>
|
|
881
|
-
<span class="cline-any cline-neutral"> </span>
|
|
882
|
-
<span class="cline-any cline-no"> </span>
|
|
883
|
-
<span class="cline-any cline-no"> </span>
|
|
884
|
-
<span class="cline-any cline-neutral"> </span>
|
|
885
|
-
<span class="cline-any cline-neutral"> </span>
|
|
886
|
-
<span class="cline-any cline-neutral"> </span>
|
|
887
|
-
<span class="cline-any cline-neutral"> </span>
|
|
888
|
-
<span class="cline-any cline-neutral"> </span>
|
|
889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
890
|
-
<span class="cline-any cline-neutral"> </span>
|
|
891
|
-
<span class="cline-any cline-yes">143x</span>
|
|
892
|
-
<span class="cline-any cline-yes">143x</span>
|
|
893
|
-
<span class="cline-any cline-yes">143x</span>
|
|
894
|
-
<span class="cline-any cline-neutral"> </span>
|
|
895
|
-
<span class="cline-any cline-neutral"> </span>
|
|
896
|
-
<span class="cline-any cline-neutral"> </span>
|
|
897
|
-
<span class="cline-any cline-no"> </span>
|
|
898
|
-
<span class="cline-any cline-no"> </span>
|
|
899
|
-
<span class="cline-any cline-neutral"> </span>
|
|
900
|
-
<span class="cline-any cline-neutral"> </span>
|
|
901
|
-
<span class="cline-any cline-neutral"> </span>
|
|
902
|
-
<span class="cline-any cline-neutral"> </span>
|
|
903
|
-
<span class="cline-any cline-neutral"> </span>
|
|
904
|
-
<span class="cline-any cline-neutral"> </span>
|
|
905
|
-
<span class="cline-any cline-neutral"> </span>
|
|
906
|
-
<span class="cline-any cline-neutral"> </span>
|
|
907
|
-
<span class="cline-any cline-neutral"> </span>
|
|
908
|
-
<span class="cline-any cline-neutral"> </span>
|
|
909
|
-
<span class="cline-any cline-neutral"> </span>
|
|
910
|
-
<span class="cline-any cline-neutral"> </span>
|
|
911
|
-
<span class="cline-any cline-neutral"> </span>
|
|
912
|
-
<span class="cline-any cline-neutral"> </span>
|
|
913
|
-
<span class="cline-any cline-yes">143x</span>
|
|
914
|
-
<span class="cline-any cline-yes">155x</span>
|
|
915
|
-
<span class="cline-any cline-yes">155x</span>
|
|
916
|
-
<span class="cline-any cline-neutral"> </span>
|
|
917
|
-
<span class="cline-any cline-neutral"> </span>
|
|
918
|
-
<span class="cline-any cline-neutral"> </span>
|
|
919
|
-
<span class="cline-any cline-yes">143x</span>
|
|
920
|
-
<span class="cline-any cline-yes">149x</span>
|
|
921
|
-
<span class="cline-any cline-yes">149x</span>
|
|
922
|
-
<span class="cline-any cline-neutral"> </span>
|
|
923
|
-
<span class="cline-any cline-neutral"> </span>
|
|
924
|
-
<span class="cline-any cline-neutral"> </span>
|
|
925
|
-
<span class="cline-any cline-yes">143x</span>
|
|
926
|
-
<span class="cline-any cline-yes">146x</span>
|
|
927
|
-
<span class="cline-any cline-yes">146x</span>
|
|
928
|
-
<span class="cline-any cline-neutral"> </span>
|
|
929
|
-
<span class="cline-any cline-neutral"> </span>
|
|
930
|
-
<span class="cline-any cline-neutral"> </span>
|
|
931
|
-
<span class="cline-any cline-yes">143x</span>
|
|
932
|
-
<span class="cline-any cline-yes">145x</span>
|
|
933
|
-
<span class="cline-any cline-yes">145x</span>
|
|
934
|
-
<span class="cline-any cline-neutral"> </span>
|
|
935
|
-
<span class="cline-any cline-neutral"> </span>
|
|
936
|
-
<span class="cline-any cline-neutral"> </span>
|
|
937
|
-
<span class="cline-any cline-yes">143x</span>
|
|
938
|
-
<span class="cline-any cline-yes">143x</span>
|
|
939
|
-
<span class="cline-any cline-neutral"> </span>
|
|
940
|
-
<span class="cline-any cline-yes">143x</span>
|
|
941
|
-
<span class="cline-any cline-yes">143x</span>
|
|
942
|
-
<span class="cline-any cline-neutral"> </span>
|
|
943
|
-
<span class="cline-any cline-neutral"> </span>
|
|
944
|
-
<span class="cline-any cline-neutral"> </span>
|
|
945
|
-
<span class="cline-any cline-neutral"> </span>
|
|
946
|
-
<span class="cline-any cline-neutral"> </span>
|
|
947
|
-
<span class="cline-any cline-neutral"> </span>
|
|
948
|
-
<span class="cline-any cline-neutral"> </span>
|
|
949
|
-
<span class="cline-any cline-neutral"> </span>
|
|
950
|
-
<span class="cline-any cline-yes">143x</span>
|
|
951
|
-
<span class="cline-any cline-neutral"> </span>
|
|
952
|
-
<span class="cline-any cline-neutral"> </span>
|
|
953
|
-
<span class="cline-any cline-neutral"> </span>
|
|
954
|
-
<span class="cline-any cline-yes">14x</span>
|
|
955
|
-
<span class="cline-any cline-neutral"> </span>
|
|
956
|
-
<span class="cline-any cline-neutral"> </span>
|
|
957
|
-
<span class="cline-any cline-neutral"> </span>
|
|
958
|
-
<span class="cline-any cline-neutral"> </span>
|
|
959
|
-
<span class="cline-any cline-yes">1x</span>
|
|
960
|
-
<span class="cline-any cline-neutral"> </span>
|
|
961
|
-
<span class="cline-any cline-neutral"> </span>
|
|
962
|
-
<span class="cline-any cline-neutral"> </span>
|
|
963
|
-
<span class="cline-any cline-neutral"> </span>
|
|
964
|
-
<span class="cline-any cline-neutral"> </span>
|
|
965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
966
|
-
<span class="cline-any cline-neutral"> </span>
|
|
967
|
-
<span class="cline-any cline-neutral"> </span>
|
|
968
|
-
<span class="cline-any cline-neutral"> </span>
|
|
969
|
-
<span class="cline-any cline-neutral"> </span>
|
|
970
|
-
<span class="cline-any cline-neutral"> </span>
|
|
971
|
-
<span class="cline-any cline-neutral"> </span>
|
|
972
|
-
<span class="cline-any cline-yes">15x</span>
|
|
973
|
-
<span class="cline-any cline-neutral"> </span>
|
|
974
|
-
<span class="cline-any cline-neutral"> </span>
|
|
975
|
-
<span class="cline-any cline-neutral"> </span>
|
|
976
|
-
<span class="cline-any cline-neutral"> </span>
|
|
977
|
-
<span class="cline-any cline-neutral"> </span>
|
|
978
|
-
<span class="cline-any cline-neutral"> </span>
|
|
979
|
-
<span class="cline-any cline-neutral"> </span>
|
|
980
|
-
<span class="cline-any cline-neutral"> </span>
|
|
981
|
-
<span class="cline-any cline-yes">17x</span>
|
|
982
|
-
<span class="cline-any cline-neutral"> </span>
|
|
983
|
-
<span class="cline-any cline-neutral"> </span>
|
|
984
|
-
<span class="cline-any cline-neutral"> </span>
|
|
985
|
-
<span class="cline-any cline-neutral"> </span>
|
|
986
|
-
<span class="cline-any cline-neutral"> </span>
|
|
987
|
-
<span class="cline-any cline-neutral"> </span>
|
|
988
|
-
<span class="cline-any cline-yes">6x</span>
|
|
989
|
-
<span class="cline-any cline-neutral"> </span>
|
|
990
|
-
<span class="cline-any cline-neutral"> </span>
|
|
991
|
-
<span class="cline-any cline-neutral"> </span>
|
|
992
|
-
<span class="cline-any cline-neutral"> </span>
|
|
993
|
-
<span class="cline-any cline-neutral"> </span>
|
|
994
|
-
<span class="cline-any cline-neutral"> </span>
|
|
995
|
-
<span class="cline-any cline-yes">3x</span>
|
|
996
|
-
<span class="cline-any cline-neutral"> </span>
|
|
997
|
-
<span class="cline-any cline-neutral"> </span>
|
|
998
|
-
<span class="cline-any cline-neutral"> </span>
|
|
999
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1000
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1001
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1002
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1003
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1004
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1005
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1006
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1007
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1008
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1009
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1010
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1011
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1012
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1013
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1015
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1018
|
-
<span class="cline-any cline-no"> </span>
|
|
1019
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1020
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1021
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1022
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1023
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1024
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1025
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1026
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1027
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1028
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1029
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1030
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1031
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1032
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1034
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1037
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1038
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1039
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1040
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1041
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1042
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1043
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1046
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1048
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
-
<span class="cline-any cline-yes">27x</span>
|
|
1050
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1051
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1052
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1053
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1054
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
-
<span class="cline-any cline-yes">32x</span>
|
|
1057
|
-
<span class="cline-any cline-yes">32x</span>
|
|
1058
|
-
<span class="cline-any cline-yes">1x</span>
|
|
1059
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
-
<span class="cline-any cline-yes">32x</span>
|
|
1061
|
-
<span class="cline-any cline-yes">6x</span>
|
|
1062
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1064
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1065
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1066
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1067
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1068
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1069
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
-
<span class="cline-any cline-yes">23x</span>
|
|
1071
|
-
<span class="cline-any cline-yes">28x</span>
|
|
1072
|
-
<span class="cline-any cline-yes">23x</span>
|
|
1073
|
-
<span class="cline-any cline-yes">22x</span>
|
|
1074
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
-
<span class="cline-any cline-yes">14x</span>
|
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
1085
|
-
Injectable,
|
|
1086
|
-
Inject,
|
|
1087
|
-
signal,
|
|
1088
|
-
computed,
|
|
1089
|
-
effect,
|
|
1090
|
-
untracked,
|
|
1091
|
-
Signal,
|
|
1092
|
-
WritableSignal,
|
|
1093
|
-
} from "@angular/core";
|
|
1094
|
-
import type { Observable } from "rxjs";
|
|
1095
|
-
import { toObservable } from "@angular/core/rxjs-interop";
|
|
1096
|
-
import {
|
|
1097
|
-
COPILOTKIT_RUNTIME_URL,
|
|
1098
|
-
COPILOTKIT_HEADERS,
|
|
1099
|
-
COPILOTKIT_PROPERTIES,
|
|
1100
|
-
COPILOTKIT_AGENTS,
|
|
1101
|
-
COPILOTKIT_RENDER_TOOL_CALLS,
|
|
1102
|
-
COPILOTKIT_FRONTEND_TOOLS,
|
|
1103
|
-
COPILOTKIT_HUMAN_IN_THE_LOOP,
|
|
1104
|
-
CopilotKitContextValue,
|
|
1105
|
-
ToolCallRender,
|
|
1106
|
-
AngularFrontendTool,
|
|
1107
|
-
AngularHumanInTheLoop,
|
|
1108
|
-
} from "./copilotkit.types";
|
|
1109
|
-
import {
|
|
1110
|
-
CopilotKitCore,
|
|
1111
|
-
CopilotKitCoreConfig,
|
|
1112
|
-
FrontendTool,
|
|
1113
|
-
} from "@copilotkitnext/core";
|
|
1114
|
-
import { AbstractAgent } from "@ag-ui/client";
|
|
1115
|
-
|
|
1116
|
-
/**
|
|
1117
|
-
* Angular service for managing CopilotKit state and interactions.
|
|
1118
|
-
* Provides reactive state management using Angular signals and observables.
|
|
1119
|
-
*/
|
|
1120
|
-
@Injectable({ providedIn: "root" })
|
|
1121
|
-
export class CopilotKit {
|
|
1122
|
-
// Initial values for stability tracking
|
|
1123
|
-
private readonly initialFrontendTools: AngularFrontendTool<any>[];
|
|
1124
|
-
private readonly initialHumanInTheLoop: AngularHumanInTheLoop<any>[];
|
|
1125
|
-
private readonly initialRenderToolCalls: ToolCallRender[];
|
|
1126
|
-
|
|
1127
|
-
// Core instance - created once
|
|
1128
|
-
readonly copilotkit: CopilotKitCore;
|
|
1129
|
-
|
|
1130
|
-
// State signals
|
|
1131
|
-
private readonly _renderToolCalls: WritableSignal<ToolCallRender[]>;
|
|
1132
|
-
private readonly _currentRenderToolCalls: WritableSignal<ToolCallRender[]>;
|
|
1133
|
-
private readonly _runtimeUrl: WritableSignal<string | undefined>;
|
|
1134
|
-
private readonly _headers: WritableSignal<Record<string, string>>;
|
|
1135
|
-
private readonly _properties: WritableSignal<Record<string, unknown>>;
|
|
1136
|
-
private readonly _agents: WritableSignal<Record<string, AbstractAgent>>;
|
|
1137
|
-
private readonly _frontendTools: WritableSignal<AngularFrontendTool<any>[]>;
|
|
1138
|
-
private readonly _humanInTheLoop: WritableSignal<
|
|
1139
|
-
AngularHumanInTheLoop<any>[]
|
|
1140
|
-
>;
|
|
1141
|
-
|
|
1142
|
-
// Runtime state change notification signal
|
|
1143
|
-
private readonly _runtimeStateVersion: WritableSignal<number>;
|
|
1144
|
-
|
|
1145
|
-
// Computed signals for processed values
|
|
1146
|
-
private readonly _allTools: Signal<Record<string, FrontendTool<any>>>;
|
|
1147
|
-
private readonly _allRenderToolCalls: Signal<ToolCallRender[]>;
|
|
1148
|
-
|
|
1149
|
-
// Public readonly signals - will be initialized in constructor
|
|
1150
|
-
readonly renderToolCalls: Signal<ToolCallRender[]>;
|
|
1151
|
-
readonly currentRenderToolCalls: Signal<ToolCallRender[]>;
|
|
1152
|
-
readonly runtimeUrl: Signal<string | undefined>;
|
|
1153
|
-
readonly headers: Signal<Record<string, string>>;
|
|
1154
|
-
readonly properties: Signal<Record<string, unknown>>;
|
|
1155
|
-
readonly agents: Signal<Record<string, AbstractAgent>>;
|
|
1156
|
-
readonly frontendTools: Signal<AngularFrontendTool<any>[]>;
|
|
1157
|
-
readonly humanInTheLoop: Signal<AngularHumanInTheLoop<any>[]>;
|
|
1158
|
-
readonly runtimeStateVersion: Signal<number>;
|
|
1159
|
-
|
|
1160
|
-
// Observable APIs for RxJS users - will be initialized in constructor
|
|
1161
|
-
readonly renderToolCalls$: Observable<ToolCallRender[]>;
|
|
1162
|
-
readonly currentRenderToolCalls$: Observable<ToolCallRender[]>;
|
|
1163
|
-
readonly runtimeUrl$: Observable<string | undefined>;
|
|
1164
|
-
readonly headers$: Observable<Record<string, string>>;
|
|
1165
|
-
readonly properties$: Observable<Record<string, unknown>>;
|
|
1166
|
-
readonly agents$: Observable<Record<string, AbstractAgent>>;
|
|
1167
|
-
readonly frontendTools$: Observable<AngularFrontendTool<any>[]>;
|
|
1168
|
-
readonly humanInTheLoop$: Observable<AngularHumanInTheLoop<any>[]>;
|
|
1169
|
-
|
|
1170
|
-
// Context value as computed signal - will be initialized in constructor
|
|
1171
|
-
readonly context: Signal<CopilotKitContextValue>;
|
|
1172
|
-
readonly context$: Observable<CopilotKitContextValue>;
|
|
1173
|
-
|
|
1174
|
-
constructor(
|
|
1175
|
-
@Inject(COPILOTKIT_RUNTIME_URL) runtimeUrl: string | undefined,
|
|
1176
|
-
@Inject(COPILOTKIT_HEADERS) headers: <span class="branch-1 cbranch-no" title="branch not covered" >Record<span class="branch-0 cbranch-no" title="branch not covered" ><</span>string, string>,</span>
|
|
1177
|
-
@Inject(COPILOTKIT_PROPERTIES) properties: <span class="branch-1 cbranch-no" title="branch not covered" >Record<span class="branch-0 cbranch-no" title="branch not covered" ><</span>string, unknown>,</span>
|
|
1178
|
-
@Inject(COPILOTKIT_AGENTS) agents: <span class="branch-1 cbranch-no" title="branch not covered" >Record<span class="branch-0 cbranch-no" title="branch not covered" ><</span>string, AbstractAgent>,</span>
|
|
1179
|
-
@Inject(COPILOTKIT_RENDER_TOOL_CALLS)
|
|
1180
|
-
renderToolCalls: ToolCallRender[],
|
|
1181
|
-
@Inject(COPILOTKIT_FRONTEND_TOOLS)
|
|
1182
|
-
frontendTools: AngularFrontendTool<any>[],
|
|
1183
|
-
@Inject(COPILOTKIT_HUMAN_IN_THE_LOOP)
|
|
1184
|
-
humanInTheLoop: AngularHumanInTheLoop<any>[]
|
|
1185
|
-
) {
|
|
1186
|
-
// Store initial values for stability checking
|
|
1187
|
-
this.initialFrontendTools = frontendTools;
|
|
1188
|
-
this.initialHumanInTheLoop = humanInTheLoop;
|
|
1189
|
-
this.initialRenderToolCalls = renderToolCalls;
|
|
1190
|
-
|
|
1191
|
-
// Process tools and humanInTheLoop
|
|
1192
|
-
const { allTools, allRenderToolCalls } = this.processTools(
|
|
1193
|
-
frontendTools,
|
|
1194
|
-
humanInTheLoop,
|
|
1195
|
-
renderToolCalls
|
|
1196
|
-
);
|
|
1197
|
-
|
|
1198
|
-
// Initialize core instance with processed tools
|
|
1199
|
-
this.copilotkit = new CopilotKitCore({
|
|
1200
|
-
runtimeUrl: undefined, // Prevent server-side fetching
|
|
1201
|
-
headers,
|
|
1202
|
-
properties,
|
|
1203
|
-
agents,
|
|
1204
|
-
tools: allTools,
|
|
1205
|
-
} as CopilotKitCoreConfig);
|
|
1206
|
-
|
|
1207
|
-
// Initialize state signals
|
|
1208
|
-
this._renderToolCalls =
|
|
1209
|
-
signal<ToolCallRender[]>(allRenderToolCalls);
|
|
1210
|
-
this._currentRenderToolCalls =
|
|
1211
|
-
signal<ToolCallRender[]>(allRenderToolCalls);
|
|
1212
|
-
this._runtimeUrl = signal<string | undefined>(runtimeUrl);
|
|
1213
|
-
this._headers = signal<Record<string, string>>(headers);
|
|
1214
|
-
this._properties = signal<Record<string, unknown>>(properties);
|
|
1215
|
-
this._agents = signal<Record<string, AbstractAgent>>(agents);
|
|
1216
|
-
this._frontendTools = signal<AngularFrontendTool<any>[]>(frontendTools);
|
|
1217
|
-
this._humanInTheLoop = signal<AngularHumanInTheLoop<any>[]>(humanInTheLoop);
|
|
1218
|
-
this._runtimeStateVersion = signal<number>(0);
|
|
1219
|
-
|
|
1220
|
-
// Initialize computed signals for processed values
|
|
1221
|
-
this._allTools = computed(() => {
|
|
1222
|
-
const tools: Record<string, FrontendTool<any>> = {};
|
|
1223
|
-
|
|
1224
|
-
// Add frontend tools
|
|
1225
|
-
this._frontendTools().forEach((tool) => {
|
|
1226
|
-
tools[tool.name] = tool as FrontendTool<any>;
|
|
1227
|
-
});
|
|
1228
|
-
|
|
1229
|
-
// Process human-in-the-loop tools
|
|
1230
|
-
this._humanInTheLoop().forEach((tool) => {
|
|
1231
|
-
const frontendTool: FrontendTool<any> = {
|
|
1232
|
-
name: tool.name,
|
|
1233
|
-
description: tool.description,
|
|
1234
|
-
parameters: tool.parameters,
|
|
1235
|
-
followUp: tool.followUp,
|
|
1236
|
-
handler: <span class="fstat-no" title="function not covered" >async (a</span>rgs: any) =><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
|
|
1237
|
-
<span class="cstat-no" title="statement not covered" > console.warn(</span>
|
|
1238
|
-
`Human-in-the-loop tool '${tool.name}' called but no interactive handler is set up.`
|
|
1239
|
-
);
|
|
1240
|
-
<span class="cstat-no" title="statement not covered" > return undefined;</span>
|
|
1241
|
-
},
|
|
1242
|
-
};
|
|
1243
|
-
tools[tool.name] = frontendTool;
|
|
1244
|
-
});
|
|
1245
|
-
|
|
1246
|
-
return tools;
|
|
1247
|
-
});
|
|
1248
|
-
|
|
1249
|
-
this._allRenderToolCalls = computed(() => {
|
|
1250
|
-
const combined: ToolCallRender[] = [...this._renderToolCalls()];
|
|
1251
|
-
|
|
1252
|
-
// Add render components from frontend tools
|
|
1253
|
-
this._frontendTools().forEach((tool) => {
|
|
1254
|
-
if (tool.render) {
|
|
1255
|
-
combined.push({
|
|
1256
|
-
name: tool.name,
|
|
1257
|
-
render: tool.render,
|
|
1258
|
-
...(tool.agentId && { agentId: tool.agentId }),
|
|
1259
|
-
});
|
|
1260
|
-
}
|
|
1261
|
-
});
|
|
1262
|
-
|
|
1263
|
-
// Add render components from human-in-the-loop tools
|
|
1264
|
-
this._humanInTheLoop().forEach((tool) => {
|
|
1265
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (tool.render) {
|
|
1266
|
-
combined.push({
|
|
1267
|
-
name: tool.name,
|
|
1268
|
-
render: tool.render,
|
|
1269
|
-
...(tool.agentId && { agentId: tool.agentId }),
|
|
1270
|
-
});
|
|
1271
|
-
}
|
|
1272
|
-
});
|
|
1273
|
-
|
|
1274
|
-
return combined;
|
|
1275
|
-
});
|
|
1276
|
-
|
|
1277
|
-
// Initialize public readonly signals
|
|
1278
|
-
this.renderToolCalls = this._allRenderToolCalls;
|
|
1279
|
-
this.currentRenderToolCalls = this._currentRenderToolCalls.asReadonly();
|
|
1280
|
-
this.runtimeUrl = this._runtimeUrl.asReadonly();
|
|
1281
|
-
this.headers = this._headers.asReadonly();
|
|
1282
|
-
this.properties = this._properties.asReadonly();
|
|
1283
|
-
this.agents = this._agents.asReadonly();
|
|
1284
|
-
this.frontendTools = this._frontendTools.asReadonly();
|
|
1285
|
-
this.humanInTheLoop = this._humanInTheLoop.asReadonly();
|
|
1286
|
-
this.runtimeStateVersion = this._runtimeStateVersion.asReadonly();
|
|
1287
|
-
|
|
1288
|
-
// Initialize Observable APIs
|
|
1289
|
-
this.renderToolCalls$ = toObservable(this.renderToolCalls);
|
|
1290
|
-
this.currentRenderToolCalls$ = toObservable(this.currentRenderToolCalls);
|
|
1291
|
-
this.runtimeUrl$ = toObservable(this.runtimeUrl);
|
|
1292
|
-
this.headers$ = toObservable(this.headers);
|
|
1293
|
-
this.properties$ = toObservable(this.properties);
|
|
1294
|
-
this.agents$ = toObservable(this.agents);
|
|
1295
|
-
this.frontendTools$ = toObservable(this.frontendTools);
|
|
1296
|
-
this.humanInTheLoop$ = toObservable(this.humanInTheLoop);
|
|
1297
|
-
|
|
1298
|
-
// Initialize context value as computed signal
|
|
1299
|
-
this.context = computed<CopilotKitContextValue>(() => {
|
|
1300
|
-
// Touch the runtime state version to ensure this computed updates
|
|
1301
|
-
// when runtime events occur (loaded/error)
|
|
1302
|
-
this.runtimeStateVersion();
|
|
1303
|
-
|
|
1304
|
-
return {
|
|
1305
|
-
copilotkit: this.copilotkit,
|
|
1306
|
-
renderToolCalls: this.renderToolCalls(),
|
|
1307
|
-
currentRenderToolCalls: this.currentRenderToolCalls(),
|
|
1308
|
-
setCurrentRenderToolCalls: <span class="fstat-no" title="function not covered" >(v</span>) => <span class="cstat-no" title="statement not covered" >this.setCurrentRenderToolCalls(v),</span>
|
|
1309
|
-
};
|
|
1310
|
-
});
|
|
1311
|
-
|
|
1312
|
-
this.context$ = toObservable(this.context);
|
|
1313
|
-
|
|
1314
|
-
// Effects must be created in injection context (constructor)
|
|
1315
|
-
this.setupRuntimeSyncEffects();
|
|
1316
|
-
this.setupStabilityWarnings();
|
|
1317
|
-
this.setupEventSubscription();
|
|
1318
|
-
}
|
|
1319
|
-
|
|
1320
|
-
/**
|
|
1321
|
-
* Process frontend tools and human-in-the-loop tools
|
|
1322
|
-
*/
|
|
1323
|
-
private processTools(
|
|
1324
|
-
frontendTools: AngularFrontendTool<any>[],
|
|
1325
|
-
humanInTheLoop: AngularHumanInTheLoop<any>[],
|
|
1326
|
-
renderToolCalls: ToolCallRender[]
|
|
1327
|
-
): {
|
|
1328
|
-
allTools: Record<string, FrontendTool<any>>;
|
|
1329
|
-
allRenderToolCalls: ToolCallRender[];
|
|
1330
|
-
} {
|
|
1331
|
-
const allTools: Record<string, FrontendTool<any>> = {};
|
|
1332
|
-
const allRenderToolCalls: ToolCallRender[] = [...renderToolCalls];
|
|
1333
|
-
|
|
1334
|
-
// Add frontend tools
|
|
1335
|
-
frontendTools.forEach((tool) => {
|
|
1336
|
-
allTools[tool.name] = tool as FrontendTool<any>;
|
|
1337
|
-
|
|
1338
|
-
// Add render component if provided
|
|
1339
|
-
if (tool.render) {
|
|
1340
|
-
allRenderToolCalls.push({
|
|
1341
|
-
name: tool.name,
|
|
1342
|
-
render: tool.render,
|
|
1343
|
-
...(tool.agentId && { agentId: tool.agentId }),
|
|
1344
|
-
});
|
|
1345
|
-
}
|
|
1346
|
-
});
|
|
1347
|
-
|
|
1348
|
-
// Process human-in-the-loop tools
|
|
1349
|
-
humanInTheLoop.forEach((tool) => {
|
|
1350
|
-
// Create a frontend tool with placeholder handler
|
|
1351
|
-
const frontendTool: FrontendTool<any> = {
|
|
1352
|
-
name: tool.name,
|
|
1353
|
-
description: tool.description,
|
|
1354
|
-
parameters: tool.parameters,
|
|
1355
|
-
followUp: tool.followUp,
|
|
1356
|
-
...(tool.agentId && { agentId: tool.agentId }),
|
|
1357
|
-
handler: async (args: any) => {
|
|
1358
|
-
// Placeholder handler - actual implementation will be handled by the render component
|
|
1359
|
-
console.warn(
|
|
1360
|
-
`Human-in-the-loop tool '${tool.name}' called but no interactive handler is set up.`
|
|
1361
|
-
);
|
|
1362
|
-
return undefined;
|
|
1363
|
-
},
|
|
1364
|
-
};
|
|
1365
|
-
allTools[tool.name] = frontendTool;
|
|
1366
|
-
|
|
1367
|
-
// Add the render component
|
|
1368
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (tool.render) {
|
|
1369
|
-
allRenderToolCalls.push({
|
|
1370
|
-
name: tool.name,
|
|
1371
|
-
render: tool.render,
|
|
1372
|
-
...(tool.agentId && { agentId: tool.agentId }),
|
|
1373
|
-
});
|
|
1374
|
-
}
|
|
1375
|
-
});
|
|
1376
|
-
|
|
1377
|
-
return { allTools, allRenderToolCalls };
|
|
1378
|
-
}
|
|
1379
|
-
|
|
1380
|
-
/**
|
|
1381
|
-
* Setup stability warning effects
|
|
1382
|
-
*/
|
|
1383
|
-
private setupStabilityWarnings(): void {
|
|
1384
|
-
// Warn if frontendTools changes
|
|
1385
|
-
effect(() => {
|
|
1386
|
-
const current = this._frontendTools();
|
|
1387
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
1388
|
-
current !== this.initialFrontendTools &&
|
|
1389
|
-
this.initialFrontendTools.length > 0
|
|
1390
|
-
) {
|
|
1391
|
-
<span class="cstat-no" title="statement not covered" > untracked(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1392
|
-
<span class="cstat-no" title="statement not covered" > console.error(</span>
|
|
1393
|
-
"frontendTools must be a stable array. To add/remove tools dynamically, use dynamic tool registration."
|
|
1394
|
-
);
|
|
1395
|
-
});
|
|
1396
|
-
}
|
|
1397
|
-
});
|
|
1398
|
-
|
|
1399
|
-
// Warn if humanInTheLoop changes
|
|
1400
|
-
effect(() => {
|
|
1401
|
-
const current = this._humanInTheLoop();
|
|
1402
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
1403
|
-
current !== this.initialHumanInTheLoop &&
|
|
1404
|
-
this.initialHumanInTheLoop.length > 0
|
|
1405
|
-
) {
|
|
1406
|
-
<span class="cstat-no" title="statement not covered" > untracked(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1407
|
-
<span class="cstat-no" title="statement not covered" > console.error(</span>
|
|
1408
|
-
"humanInTheLoop must be a stable array. To add/remove human-in-the-loop tools dynamically, use dynamic tool registration."
|
|
1409
|
-
);
|
|
1410
|
-
});
|
|
1411
|
-
}
|
|
1412
|
-
});
|
|
1413
|
-
|
|
1414
|
-
// Previously warned if renderToolCalls reference changed; removed per UX feedback
|
|
1415
|
-
}
|
|
1416
|
-
|
|
1417
|
-
/**
|
|
1418
|
-
* Setup effects to sync runtime configuration with CopilotKitCore
|
|
1419
|
-
*/
|
|
1420
|
-
private setupRuntimeSyncEffects(): void {
|
|
1421
|
-
// Sync runtime URL
|
|
1422
|
-
effect(() => {
|
|
1423
|
-
const url = this.runtimeUrl();
|
|
1424
|
-
untracked(() => this.copilotkit.setRuntimeUrl(url));
|
|
1425
|
-
});
|
|
1426
|
-
|
|
1427
|
-
// Sync headers
|
|
1428
|
-
effect(() => {
|
|
1429
|
-
const headers = this.headers();
|
|
1430
|
-
untracked(() => this.copilotkit.setHeaders(headers));
|
|
1431
|
-
});
|
|
1432
|
-
|
|
1433
|
-
// Sync properties
|
|
1434
|
-
effect(() => {
|
|
1435
|
-
const properties = this.properties();
|
|
1436
|
-
untracked(() => this.copilotkit.setProperties(properties));
|
|
1437
|
-
});
|
|
1438
|
-
|
|
1439
|
-
// Sync agents
|
|
1440
|
-
effect(() => {
|
|
1441
|
-
const agents = this.agents();
|
|
1442
|
-
untracked(() => this.copilotkit.setAgents(agents));
|
|
1443
|
-
});
|
|
1444
|
-
|
|
1445
|
-
// Sync tools - computed from frontend tools and human-in-the-loop
|
|
1446
|
-
effect(() => {
|
|
1447
|
-
const tools = this._allTools();
|
|
1448
|
-
// Update copilotkit.tools directly since there's no setTools method
|
|
1449
|
-
untracked(() => {
|
|
1450
|
-
this.copilotkit.tools = tools;
|
|
1451
|
-
});
|
|
1452
|
-
});
|
|
1453
|
-
}
|
|
1454
|
-
|
|
1455
|
-
/**
|
|
1456
|
-
* Subscribe to CopilotKit runtime events
|
|
1457
|
-
*/
|
|
1458
|
-
private setupEventSubscription(): void {
|
|
1459
|
-
const unsubscribe = this.copilotkit.subscribe({
|
|
1460
|
-
onRuntimeLoaded: () => {
|
|
1461
|
-
// Increment version to notify all consumers that runtime state has changed
|
|
1462
|
-
// This triggers re-evaluation of computed signals that depend on runtime state
|
|
1463
|
-
this.notifyRuntimeStateChange();
|
|
1464
|
-
},
|
|
1465
|
-
onRuntimeLoadError: () => {
|
|
1466
|
-
// Increment version to notify all consumers that runtime state has changed
|
|
1467
|
-
// This triggers re-evaluation of computed signals that depend on runtime state
|
|
1468
|
-
this.notifyRuntimeStateChange();
|
|
1469
|
-
},
|
|
1470
|
-
});
|
|
1471
|
-
|
|
1472
|
-
// Root service lives for app lifetime; unsubscribe not needed.
|
|
1473
|
-
}
|
|
1474
|
-
|
|
1475
|
-
/**
|
|
1476
|
-
* Notify consumers that the runtime state has changed.
|
|
1477
|
-
* This is similar to React's forceUpdate - it triggers change detection
|
|
1478
|
-
* for any computed signals or effects that depend on runtime state.
|
|
1479
|
-
*/
|
|
1480
|
-
private notifyRuntimeStateChange(): void {
|
|
1481
|
-
this._runtimeStateVersion.update((version) => version + 1);
|
|
1482
|
-
}
|
|
1483
|
-
|
|
1484
|
-
// Public mutation methods
|
|
1485
|
-
|
|
1486
|
-
/**
|
|
1487
|
-
* Update the runtime URL
|
|
1488
|
-
*/
|
|
1489
|
-
setRuntimeUrl(url?: string): void {
|
|
1490
|
-
this._runtimeUrl.set(url);
|
|
1491
|
-
}
|
|
1492
|
-
|
|
1493
|
-
/**
|
|
1494
|
-
* Update request headers
|
|
1495
|
-
*/
|
|
1496
|
-
setHeaders(headers: Record<string, string>): void {
|
|
1497
|
-
this._headers.set(headers);
|
|
1498
|
-
}
|
|
1499
|
-
|
|
1500
|
-
/**
|
|
1501
|
-
* Update runtime properties
|
|
1502
|
-
*/
|
|
1503
|
-
setProperties(properties: Record<string, unknown>): void {
|
|
1504
|
-
this._properties.set(properties);
|
|
1505
|
-
}
|
|
1506
|
-
|
|
1507
|
-
/**
|
|
1508
|
-
* Update agents configuration
|
|
1509
|
-
*/
|
|
1510
|
-
setAgents(agents: Record<string, AbstractAgent>): void {
|
|
1511
|
-
this._agents.set(agents);
|
|
1512
|
-
}
|
|
1513
|
-
|
|
1514
|
-
/**
|
|
1515
|
-
* Get an agent by ID
|
|
1516
|
-
* @param agentId - The agent ID to retrieve
|
|
1517
|
-
* @returns The agent or undefined if not found
|
|
1518
|
-
*/
|
|
1519
|
-
getAgent(agentId: string): AbstractAgent | undefined {
|
|
1520
|
-
return this.copilotkit.getAgent(agentId);
|
|
1521
|
-
}
|
|
1522
|
-
|
|
1523
|
-
/**
|
|
1524
|
-
* Update render tool calls (warns if object reference changes)
|
|
1525
|
-
*/
|
|
1526
|
-
<span class="fstat-no" title="function not covered" > setRenderToolCalls(</span>renderToolCalls: ToolCallRender[]): void {
|
|
1527
|
-
<span class="cstat-no" title="statement not covered" > this._renderToolCalls.set(renderToolCalls);</span>
|
|
1528
|
-
}
|
|
1529
|
-
|
|
1530
|
-
/**
|
|
1531
|
-
* Update frontend tools array
|
|
1532
|
-
*/
|
|
1533
|
-
setFrontendTools(frontendTools: AngularFrontendTool<any>[]): void {
|
|
1534
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (frontendTools !== this.initialFrontendTools) {
|
|
1535
|
-
console.error(
|
|
1536
|
-
"frontendTools must be a stable array. To add/remove tools dynamically, use dynamic tool registration."
|
|
1537
|
-
);
|
|
1538
|
-
}
|
|
1539
|
-
this._frontendTools.set(frontendTools);
|
|
1540
|
-
}
|
|
1541
|
-
|
|
1542
|
-
/**
|
|
1543
|
-
* Update human-in-the-loop array
|
|
1544
|
-
*/
|
|
1545
|
-
setHumanInTheLoop(humanInTheLoop: AngularHumanInTheLoop<any>[]): void {
|
|
1546
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (humanInTheLoop !== this.initialHumanInTheLoop) {
|
|
1547
|
-
console.error(
|
|
1548
|
-
"humanInTheLoop must be a stable array. To add/remove human-in-the-loop tools dynamically, use dynamic tool registration."
|
|
1549
|
-
);
|
|
1550
|
-
}
|
|
1551
|
-
this._humanInTheLoop.set(humanInTheLoop);
|
|
1552
|
-
}
|
|
1553
|
-
|
|
1554
|
-
/**
|
|
1555
|
-
* Update current render tool calls
|
|
1556
|
-
*/
|
|
1557
|
-
setCurrentRenderToolCalls(renderToolCalls: ToolCallRender[]): void {
|
|
1558
|
-
this._currentRenderToolCalls.set(renderToolCalls);
|
|
1559
|
-
}
|
|
1560
|
-
|
|
1561
|
-
/**
|
|
1562
|
-
* Register a tool render
|
|
1563
|
-
*/
|
|
1564
|
-
registerToolRender(name: string, render: ToolCallRender): void {
|
|
1565
|
-
const current = this._currentRenderToolCalls();
|
|
1566
|
-
if (current.find((r) => r.name === name)) {
|
|
1567
|
-
console.warn(`Tool render for '${name}' is being overwritten`);
|
|
1568
|
-
}
|
|
1569
|
-
this._currentRenderToolCalls.set([
|
|
1570
|
-
...current.filter((r) => r.name !== name),
|
|
1571
|
-
render,
|
|
1572
|
-
]);
|
|
1573
|
-
}
|
|
1574
|
-
|
|
1575
|
-
/**
|
|
1576
|
-
* Unregister a tool render
|
|
1577
|
-
*/
|
|
1578
|
-
unregisterToolRender(name: string): void {
|
|
1579
|
-
const current = this._currentRenderToolCalls();
|
|
1580
|
-
const filtered = current.filter((r) => r.name !== name);
|
|
1581
|
-
if (filtered.length !== current.length) {
|
|
1582
|
-
this._currentRenderToolCalls.set(filtered);
|
|
1583
|
-
}
|
|
1584
|
-
}
|
|
1585
|
-
|
|
1586
|
-
/**
|
|
1587
|
-
* Get a specific tool render
|
|
1588
|
-
*/
|
|
1589
|
-
getToolRender(name: string): ToolCallRender | undefined {
|
|
1590
|
-
return this._currentRenderToolCalls().find((r) => r.name === name);
|
|
1591
|
-
}
|
|
1592
|
-
}
|
|
1593
|
-
</pre></td></tr></table></pre>
|
|
1594
|
-
|
|
1595
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
1596
|
-
</div><!-- /wrapper -->
|
|
1597
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
1598
|
-
Code coverage generated by
|
|
1599
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1600
|
-
at 2025-09-15T01:22:45.642Z
|
|
1601
|
-
</div>
|
|
1602
|
-
<script src="../../prettify.js"></script>
|
|
1603
|
-
<script>
|
|
1604
|
-
window.onload = function () {
|
|
1605
|
-
prettyPrint();
|
|
1606
|
-
};
|
|
1607
|
-
</script>
|
|
1608
|
-
<script src="../../sorter.js"></script>
|
|
1609
|
-
<script src="../../block-navigation.js"></script>
|
|
1610
|
-
</body>
|
|
1611
|
-
</html>
|
|
1612
|
-
|