@sebbo2002/node-pyatv 6.0.0-develop.1 → 6.0.0-develop.3

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.
Files changed (120) hide show
  1. package/dist/bin/check.cjs +10 -0
  2. package/dist/bin/check.cjs.map +1 -0
  3. package/dist/bin/check.d.ts +2 -1
  4. package/dist/bin/check.js +4 -45
  5. package/dist/bin/check.js.map +1 -1
  6. package/dist/chunk-TZSWUAOB.js +7 -0
  7. package/dist/chunk-TZSWUAOB.js.map +1 -0
  8. package/dist/lib/index.cjs +7 -0
  9. package/dist/lib/index.cjs.map +1 -0
  10. package/dist/lib/{device.d.ts → index.d.cts} +351 -4
  11. package/dist/lib/index.d.ts +806 -6
  12. package/dist/lib/index.js +1 -7
  13. package/dist/lib/index.js.map +1 -1
  14. package/package.json +23 -14
  15. package/.editorconfig +0 -12
  16. package/.eslintignore +0 -4
  17. package/.eslintrc +0 -60
  18. package/.mocharc.yml +0 -7
  19. package/.nycrc +0 -32
  20. package/CHANGELOG.md +0 -288
  21. package/check.sh +0 -5
  22. package/dist/examples/push.d.ts +0 -1
  23. package/dist/examples/push.js +0 -51
  24. package/dist/examples/push.js.map +0 -1
  25. package/dist/lib/device-event.d.ts +0 -44
  26. package/dist/lib/device-event.js +0 -47
  27. package/dist/lib/device-event.js.map +0 -1
  28. package/dist/lib/device-events.d.ts +0 -30
  29. package/dist/lib/device-events.js +0 -237
  30. package/dist/lib/device-events.js.map +0 -1
  31. package/dist/lib/device.js +0 -756
  32. package/dist/lib/device.js.map +0 -1
  33. package/dist/lib/fake-spawn.d.ts +0 -43
  34. package/dist/lib/fake-spawn.js +0 -85
  35. package/dist/lib/fake-spawn.js.map +0 -1
  36. package/dist/lib/instance.d.ts +0 -97
  37. package/dist/lib/instance.js +0 -208
  38. package/dist/lib/instance.js.map +0 -1
  39. package/dist/lib/tools.d.ts +0 -12
  40. package/dist/lib/tools.js +0 -319
  41. package/dist/lib/tools.js.map +0 -1
  42. package/dist/lib/types.d.ts +0 -199
  43. package/dist/lib/types.js +0 -108
  44. package/dist/lib/types.js.map +0 -1
  45. package/docs/coverage/base.css +0 -224
  46. package/docs/coverage/block-navigation.js +0 -87
  47. package/docs/coverage/cobertura-coverage.xml +0 -2829
  48. package/docs/coverage/device-event.ts.html +0 -256
  49. package/docs/coverage/device-events.ts.html +0 -970
  50. package/docs/coverage/device.ts.html +0 -2401
  51. package/docs/coverage/fake-spawn.ts.html +0 -448
  52. package/docs/coverage/favicon.png +0 -0
  53. package/docs/coverage/index.html +0 -221
  54. package/docs/coverage/index.ts.html +0 -172
  55. package/docs/coverage/instance.ts.html +0 -718
  56. package/docs/coverage/prettify.css +0 -1
  57. package/docs/coverage/prettify.js +0 -2
  58. package/docs/coverage/sort-arrow-sprite.png +0 -0
  59. package/docs/coverage/sorter.js +0 -196
  60. package/docs/coverage/tools.ts.html +0 -1222
  61. package/docs/coverage/types.ts.html +0 -757
  62. package/docs/reference/.nojekyll +0 -1
  63. package/docs/reference/assets/highlight.css +0 -99
  64. package/docs/reference/assets/main.js +0 -58
  65. package/docs/reference/assets/search.js +0 -1
  66. package/docs/reference/assets/style.css +0 -1280
  67. package/docs/reference/classes/NodePyATVDevice.html +0 -1228
  68. package/docs/reference/classes/NodePyATVDeviceEvent.html +0 -123
  69. package/docs/reference/classes/NodePyATVInstance.html +0 -240
  70. package/docs/reference/enums/NodePyATVDeviceState.html +0 -97
  71. package/docs/reference/enums/NodePyATVExecutableType.html +0 -69
  72. package/docs/reference/enums/NodePyATVKeys.html +0 -216
  73. package/docs/reference/enums/NodePyATVListenerState.html +0 -83
  74. package/docs/reference/enums/NodePyATVMediaType.html +0 -83
  75. package/docs/reference/enums/NodePyATVPowerState.html +0 -69
  76. package/docs/reference/enums/NodePyATVProtocol.html +0 -83
  77. package/docs/reference/enums/NodePyATVRepeatState.html +0 -76
  78. package/docs/reference/enums/NodePyATVShuffleState.html +0 -76
  79. package/docs/reference/index.html +0 -139
  80. package/docs/reference/interfaces/NodePyATVDeviceOptions.html +0 -232
  81. package/docs/reference/interfaces/NodePyATVFindAndInstanceOptions.html +0 -193
  82. package/docs/reference/interfaces/NodePyATVFindOptions.html +0 -124
  83. package/docs/reference/interfaces/NodePyATVGetStateOptions.html +0 -66
  84. package/docs/reference/interfaces/NodePyATVInstanceOptions.html +0 -113
  85. package/docs/reference/interfaces/NodePyATVService.html +0 -73
  86. package/docs/reference/interfaces/NodePyATVState.html +0 -164
  87. package/docs/reference/interfaces/NodePyATVVersionResponse.html +0 -73
  88. package/docs/reference/modules.html +0 -106
  89. package/docs/reference/types/NodePyATVEventValueType.html +0 -66
  90. package/docs/tests/assets/MaterialIcons-Regular.woff +0 -0
  91. package/docs/tests/assets/MaterialIcons-Regular.woff2 +0 -0
  92. package/docs/tests/assets/app.css +0 -14
  93. package/docs/tests/assets/app.js +0 -2
  94. package/docs/tests/assets/app.js.LICENSE.txt +0 -55
  95. package/docs/tests/assets/roboto-light-webfont.woff +0 -0
  96. package/docs/tests/assets/roboto-light-webfont.woff2 +0 -0
  97. package/docs/tests/assets/roboto-medium-webfont.woff +0 -0
  98. package/docs/tests/assets/roboto-medium-webfont.woff2 +0 -0
  99. package/docs/tests/assets/roboto-regular-webfont.woff +0 -0
  100. package/docs/tests/assets/roboto-regular-webfont.woff2 +0 -0
  101. package/docs/tests/index.html +0 -2
  102. package/docs/tests/mochawesome.json +0 -4745
  103. package/release.config.cjs +0 -51
  104. package/src/bin/check.ts +0 -41
  105. package/src/examples/push.ts +0 -46
  106. package/src/lib/device-event.ts +0 -57
  107. package/src/lib/device-events.ts +0 -295
  108. package/src/lib/device.ts +0 -772
  109. package/src/lib/fake-spawn.ts +0 -121
  110. package/src/lib/index.ts +0 -29
  111. package/src/lib/instance.ts +0 -211
  112. package/src/lib/tools.ts +0 -379
  113. package/src/lib/types.ts +0 -224
  114. package/test/device-event.ts +0 -88
  115. package/test/device-events.ts +0 -502
  116. package/test/device.ts +0 -784
  117. package/test/instance.ts +0 -428
  118. package/test/tools.ts +0 -301
  119. package/tsconfig.json +0 -19
  120. package/typedoc.json +0 -15
@@ -1,1222 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for tools.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> tools.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">99.2% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>376/379</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">98.13% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>105/107</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>19/19</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">99.2% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>376/379</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 oninput="onInput()" 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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
446
- <span class="cline-any cline-yes">1x</span>
447
- <span class="cline-any cline-yes">1x</span>
448
- <span class="cline-any cline-yes">1x</span>
449
- <span class="cline-any cline-yes">1x</span>
450
- <span class="cline-any cline-yes">1x</span>
451
- <span class="cline-any cline-yes">1x</span>
452
- <span class="cline-any cline-yes">1x</span>
453
- <span class="cline-any cline-yes">1x</span>
454
- <span class="cline-any cline-yes">1x</span>
455
- <span class="cline-any cline-yes">1x</span>
456
- <span class="cline-any cline-yes">1x</span>
457
- <span class="cline-any cline-yes">1x</span>
458
- <span class="cline-any cline-yes">1x</span>
459
- <span class="cline-any cline-yes">1x</span>
460
- <span class="cline-any cline-yes">1x</span>
461
- <span class="cline-any cline-yes">1x</span>
462
- <span class="cline-any cline-yes">1x</span>
463
- <span class="cline-any cline-yes">109x</span>
464
- <span class="cline-any cline-yes">109x</span>
465
- <span class="cline-any cline-yes">109x</span>
466
- <span class="cline-any cline-yes">114x</span>
467
- <span class="cline-any cline-yes">114x</span>
468
- <span class="cline-any cline-yes">109x</span>
469
- <span class="cline-any cline-yes">109x</span>
470
- <span class="cline-any cline-yes">109x</span>
471
- <span class="cline-any cline-yes">114x</span>
472
- <span class="cline-any cline-yes">109x</span>
473
- <span class="cline-any cline-yes">109x</span>
474
- <span class="cline-any cline-yes">109x</span>
475
- <span class="cline-any cline-yes">1x</span>
476
- <span class="cline-any cline-yes">1x</span>
477
- <span class="cline-any cline-yes">116x</span>
478
- <span class="cline-any cline-yes">96x</span>
479
- <span class="cline-any cline-yes">96x</span>
480
- <span class="cline-any cline-yes">116x</span>
481
- <span class="cline-any cline-yes">1x</span>
482
- <span class="cline-any cline-yes">1x</span>
483
- <span class="cline-any cline-yes">2315x</span>
484
- <span class="cline-any cline-yes">9x</span>
485
- <span class="cline-any cline-yes">9x</span>
486
- <span class="cline-any cline-yes">9x</span>
487
- <span class="cline-any cline-yes">9x</span>
488
- <span class="cline-any cline-yes">9x</span>
489
- <span class="cline-any cline-yes">9x</span>
490
- <span class="cline-any cline-yes">9x</span>
491
- <span class="cline-any cline-yes">9x</span>
492
- <span class="cline-any cline-yes">9x</span>
493
- <span class="cline-any cline-yes">9x</span>
494
- <span class="cline-any cline-yes">9x</span>
495
- <span class="cline-any cline-yes">9x</span>
496
- <span class="cline-any cline-yes">9x</span>
497
- <span class="cline-any cline-yes">9x</span>
498
- <span class="cline-any cline-yes">9x</span>
499
- <span class="cline-any cline-yes">9x</span>
500
- <span class="cline-any cline-yes">9x</span>
501
- <span class="cline-any cline-yes">2315x</span>
502
- <span class="cline-any cline-yes">1x</span>
503
- <span class="cline-any cline-yes">1x</span>
504
- <span class="cline-any cline-yes">96x</span>
505
- <span class="cline-any cline-yes">4x</span>
506
- <span class="cline-any cline-yes">4x</span>
507
- <span class="cline-any cline-yes">92x</span>
508
- <span class="cline-any cline-yes">3x</span>
509
- <span class="cline-any cline-yes">3x</span>
510
- <span class="cline-any cline-yes">89x</span>
511
- <span class="cline-any cline-yes">89x</span>
512
- <span class="cline-any cline-yes">89x</span>
513
- <span class="cline-any cline-yes">96x</span>
514
- <span class="cline-any cline-yes">1x</span>
515
- <span class="cline-any cline-yes">1x</span>
516
- <span class="cline-any cline-yes">92x</span>
517
- <span class="cline-any cline-yes">92x</span>
518
- <span class="cline-any cline-yes">92x</span>
519
- <span class="cline-any cline-yes">92x</span>
520
- <span class="cline-any cline-yes">92x</span>
521
- <span class="cline-any cline-yes">92x</span>
522
- <span class="cline-any cline-yes">92x</span>
523
- <span class="cline-any cline-yes">92x</span>
524
- <span class="cline-any cline-yes">92x</span>
525
- <span class="cline-any cline-yes">92x</span>
526
- <span class="cline-any cline-yes">92x</span>
527
- <span class="cline-any cline-yes">92x</span>
528
- <span class="cline-any cline-yes">92x</span>
529
- <span class="cline-any cline-yes">92x</span>
530
- <span class="cline-any cline-yes">92x</span>
531
- <span class="cline-any cline-yes">92x</span>
532
- <span class="cline-any cline-yes">92x</span>
533
- <span class="cline-any cline-yes">92x</span>
534
- <span class="cline-any cline-yes">92x</span>
535
- <span class="cline-any cline-yes">92x</span>
536
- <span class="cline-any cline-yes">92x</span>
537
- <span class="cline-any cline-yes">92x</span>
538
- <span class="cline-any cline-yes">92x</span>
539
- <span class="cline-any cline-yes">92x</span>
540
- <span class="cline-any cline-yes">92x</span>
541
- <span class="cline-any cline-yes">92x</span>
542
- <span class="cline-any cline-yes">92x</span>
543
- <span class="cline-any cline-yes">92x</span>
544
- <span class="cline-any cline-yes">92x</span>
545
- <span class="cline-any cline-yes">92x</span>
546
- <span class="cline-any cline-yes">92x</span>
547
- <span class="cline-any cline-yes">92x</span>
548
- <span class="cline-any cline-yes">92x</span>
549
- <span class="cline-any cline-yes">92x</span>
550
- <span class="cline-any cline-yes">92x</span>
551
- <span class="cline-any cline-yes">92x</span>
552
- <span class="cline-any cline-yes">92x</span>
553
- <span class="cline-any cline-yes">92x</span>
554
- <span class="cline-any cline-yes">92x</span>
555
- <span class="cline-any cline-yes">92x</span>
556
- <span class="cline-any cline-yes">92x</span>
557
- <span class="cline-any cline-yes">92x</span>
558
- <span class="cline-any cline-yes">92x</span>
559
- <span class="cline-any cline-yes">92x</span>
560
- <span class="cline-any cline-yes">92x</span>
561
- <span class="cline-any cline-yes">1x</span>
562
- <span class="cline-any cline-yes">1x</span>
563
- <span class="cline-any cline-yes">73x</span>
564
- <span class="cline-any cline-yes">73x</span>
565
- <span class="cline-any cline-yes">73x</span>
566
- <span class="cline-any cline-yes">73x</span>
567
- <span class="cline-any cline-yes">73x</span>
568
- <span class="cline-any cline-yes">73x</span>
569
- <span class="cline-any cline-yes">73x</span>
570
- <span class="cline-any cline-yes">73x</span>
571
- <span class="cline-any cline-yes">73x</span>
572
- <span class="cline-any cline-yes">73x</span>
573
- <span class="cline-any cline-yes">73x</span>
574
- <span class="cline-any cline-yes">73x</span>
575
- <span class="cline-any cline-yes">73x</span>
576
- <span class="cline-any cline-yes">73x</span>
577
- <span class="cline-any cline-yes">73x</span>
578
- <span class="cline-any cline-yes">73x</span>
579
- <span class="cline-any cline-yes">73x</span>
580
- <span class="cline-any cline-yes">73x</span>
581
- <span class="cline-any cline-yes">73x</span>
582
- <span class="cline-any cline-yes">73x</span>
583
- <span class="cline-any cline-yes">73x</span>
584
- <span class="cline-any cline-yes">73x</span>
585
- <span class="cline-any cline-yes">73x</span>
586
- <span class="cline-any cline-yes">73x</span>
587
- <span class="cline-any cline-yes">73x</span>
588
- <span class="cline-any cline-yes">73x</span>
589
- <span class="cline-any cline-yes">73x</span>
590
- <span class="cline-any cline-yes">73x</span>
591
- <span class="cline-any cline-yes">73x</span>
592
- <span class="cline-any cline-yes">73x</span>
593
- <span class="cline-any cline-yes">73x</span>
594
- <span class="cline-any cline-yes">73x</span>
595
- <span class="cline-any cline-yes">73x</span>
596
- <span class="cline-any cline-yes">73x</span>
597
- <span class="cline-any cline-yes">73x</span>
598
- <span class="cline-any cline-yes">73x</span>
599
- <span class="cline-any cline-yes">73x</span>
600
- <span class="cline-any cline-yes">73x</span>
601
- <span class="cline-any cline-yes">73x</span>
602
- <span class="cline-any cline-yes">73x</span>
603
- <span class="cline-any cline-yes">73x</span>
604
- <span class="cline-any cline-yes">73x</span>
605
- <span class="cline-any cline-yes">73x</span>
606
- <span class="cline-any cline-yes">73x</span>
607
- <span class="cline-any cline-yes">73x</span>
608
- <span class="cline-any cline-yes">68x</span>
609
- <span class="cline-any cline-yes">73x</span>
610
- <span class="cline-any cline-yes">2x</span>
611
- <span class="cline-any cline-yes">2x</span>
612
- <span class="cline-any cline-yes">2x</span>
613
- <span class="cline-any cline-yes">2x</span>
614
- <span class="cline-any cline-yes">73x</span>
615
- <span class="cline-any cline-yes">53x</span>
616
- <span class="cline-any cline-yes">53x</span>
617
- <span class="cline-any cline-yes">53x</span>
618
- <span class="cline-any cline-yes">53x</span>
619
- <span class="cline-any cline-yes">1x</span>
620
- <span class="cline-any cline-yes">1x</span>
621
- <span class="cline-any cline-yes">1x</span>
622
- <span class="cline-any cline-yes">1x</span>
623
- <span class="cline-any cline-yes">53x</span>
624
- <span class="cline-any cline-yes">13x</span>
625
- <span class="cline-any cline-yes">13x</span>
626
- <span class="cline-any cline-yes">13x</span>
627
- <span class="cline-any cline-yes">1x</span>
628
- <span class="cline-any cline-yes">1x</span>
629
- <span class="cline-any cline-yes">80x</span>
630
- <span class="cline-any cline-yes">80x</span>
631
- <span class="cline-any cline-yes">80x</span>
632
- <span class="cline-any cline-yes">1x</span>
633
- <span class="cline-any cline-yes">1x</span>
634
- <span class="cline-any cline-yes">79x</span>
635
- <span class="cline-any cline-yes">66x</span>
636
- <span class="cline-any cline-yes">66x</span>
637
- <span class="cline-any cline-yes">80x</span>
638
- <span class="cline-any cline-yes">1x</span>
639
- <span class="cline-any cline-yes">1x</span>
640
- <span class="cline-any cline-yes">80x</span>
641
- <span class="cline-any cline-yes">1x</span>
642
- <span class="cline-any cline-yes">1x</span>
643
- <span class="cline-any cline-yes">80x</span>
644
- <span class="cline-any cline-yes">1x</span>
645
- <span class="cline-any cline-yes">1x</span>
646
- <span class="cline-any cline-yes">80x</span>
647
- <span class="cline-any cline-yes">1x</span>
648
- <span class="cline-any cline-yes">1x</span>
649
- <span class="cline-any cline-yes">80x</span>
650
- <span class="cline-any cline-yes">1x</span>
651
- <span class="cline-any cline-yes">1x</span>
652
- <span class="cline-any cline-yes">80x</span>
653
- <span class="cline-any cline-yes">1x</span>
654
- <span class="cline-any cline-yes">1x</span>
655
- <span class="cline-any cline-yes">80x</span>
656
- <span class="cline-any cline-yes">1x</span>
657
- <span class="cline-any cline-yes">1x</span>
658
- <span class="cline-any cline-yes">80x</span>
659
- <span class="cline-any cline-yes">80x</span>
660
- <span class="cline-any cline-yes">80x</span>
661
- <span class="cline-any cline-yes">1x</span>
662
- <span class="cline-any cline-yes">945x</span>
663
- <span class="cline-any cline-yes">945x</span>
664
- <span class="cline-any cline-yes">945x</span>
665
- <span class="cline-any cline-yes">945x</span>
666
- <span class="cline-any cline-yes">945x</span>
667
- <span class="cline-any cline-yes">945x</span>
668
- <span class="cline-any cline-yes">945x</span>
669
- <span class="cline-any cline-yes">945x</span>
670
- <span class="cline-any cline-yes">35x</span>
671
- <span class="cline-any cline-yes">35x</span>
672
- <span class="cline-any cline-yes">35x</span>
673
- <span class="cline-any cline-yes">910x</span>
674
- <span class="cline-any cline-yes">910x</span>
675
- <span class="cline-any cline-yes">910x</span>
676
- <span class="cline-any cline-yes">1x</span>
677
- <span class="cline-any cline-yes">1x</span>
678
- <span class="cline-any cline-yes">139x</span>
679
- <span class="cline-any cline-yes">139x</span>
680
- <span class="cline-any cline-yes">139x</span>
681
- <span class="cline-any cline-yes">139x</span>
682
- <span class="cline-any cline-yes">139x</span>
683
- <span class="cline-any cline-yes">139x</span>
684
- <span class="cline-any cline-yes">139x</span>
685
- <span class="cline-any cline-yes">139x</span>
686
- <span class="cline-any cline-yes">139x</span>
687
- <span class="cline-any cline-yes">139x</span>
688
- <span class="cline-any cline-yes">139x</span>
689
- <span class="cline-any cline-yes">139x</span>
690
- <span class="cline-any cline-yes">139x</span>
691
- <span class="cline-any cline-yes">139x</span>
692
- <span class="cline-any cline-yes">139x</span>
693
- <span class="cline-any cline-yes">139x</span>
694
- <span class="cline-any cline-yes">139x</span>
695
- <span class="cline-any cline-yes">139x</span>
696
- <span class="cline-any cline-yes">139x</span>
697
- <span class="cline-any cline-yes">1x</span>
698
- <span class="cline-any cline-yes">1x</span>
699
- <span class="cline-any cline-yes">139x</span>
700
- <span class="cline-any cline-yes">3x</span>
701
- <span class="cline-any cline-yes">3x</span>
702
- <span class="cline-any cline-yes">3x</span>
703
- <span class="cline-any cline-yes">3x</span>
704
- <span class="cline-any cline-yes">3x</span>
705
- <span class="cline-any cline-yes">3x</span>
706
- <span class="cline-any cline-yes">3x</span>
707
- <span class="cline-any cline-yes">135x</span>
708
- <span class="cline-any cline-yes">135x</span>
709
- <span class="cline-any cline-yes">139x</span>
710
- <span class="cline-any cline-yes">9x</span>
711
- <span class="cline-any cline-yes">9x</span>
712
- <span class="cline-any cline-yes">8x</span>
713
- <span class="cline-any cline-yes">8x</span>
714
- <span class="cline-any cline-yes">1x</span>
715
- <span class="cline-any cline-yes">1x</span>
716
- <span class="cline-any cline-yes">1x</span>
717
- <span class="cline-any cline-yes">9x</span>
718
- <span class="cline-any cline-yes">126x</span>
719
- <span class="cline-any cline-yes">126x</span>
720
- <span class="cline-any cline-yes">126x</span>
721
- <span class="cline-any cline-yes">135x</span>
722
- <span class="cline-any cline-yes">135x</span>
723
- <span class="cline-any cline-yes">135x</span>
724
- <span class="cline-any cline-yes">135x</span>
725
- <span class="cline-any cline-yes">135x</span>
726
- <span class="cline-any cline-yes">139x</span>
727
- <span class="cline-any cline-yes">6x</span>
728
- <span class="cline-any cline-yes">6x</span>
729
- <span class="cline-any cline-yes">5x</span>
730
- <span class="cline-any cline-yes">5x</span>
731
- <span class="cline-any cline-yes">1x</span>
732
- <span class="cline-any cline-yes">1x</span>
733
- <span class="cline-any cline-yes">1x</span>
734
- <span class="cline-any cline-yes">139x</span>
735
- <span class="cline-any cline-yes">129x</span>
736
- <span class="cline-any cline-yes">129x</span>
737
- <span class="cline-any cline-yes">135x</span>
738
- <span class="cline-any cline-yes">135x</span>
739
- <span class="cline-any cline-yes">139x</span>
740
- <span class="cline-any cline-yes">6x</span>
741
- <span class="cline-any cline-yes">6x</span>
742
- <span class="cline-any cline-yes">5x</span>
743
- <span class="cline-any cline-yes">5x</span>
744
- <span class="cline-any cline-yes">1x</span>
745
- <span class="cline-any cline-yes">1x</span>
746
- <span class="cline-any cline-yes">1x</span>
747
- <span class="cline-any cline-yes">139x</span>
748
- <span class="cline-any cline-yes">129x</span>
749
- <span class="cline-any cline-yes">129x</span>
750
- <span class="cline-any cline-yes">135x</span>
751
- <span class="cline-any cline-yes">135x</span>
752
- <span class="cline-any cline-yes">135x</span>
753
- <span class="cline-any cline-yes">135x</span>
754
- <span class="cline-any cline-yes">135x</span>
755
- <span class="cline-any cline-yes">135x</span>
756
- <span class="cline-any cline-yes">135x</span>
757
- <span class="cline-any cline-yes">135x</span>
758
- <span class="cline-any cline-yes">135x</span>
759
- <span class="cline-any cline-yes">135x</span>
760
- <span class="cline-any cline-yes">135x</span>
761
- <span class="cline-any cline-yes">135x</span>
762
- <span class="cline-any cline-yes">135x</span>
763
- <span class="cline-any cline-yes">135x</span>
764
- <span class="cline-any cline-yes">139x</span>
765
- <span class="cline-any cline-yes">5x</span>
766
- <span class="cline-any cline-yes">5x</span>
767
- <span class="cline-any cline-yes">130x</span>
768
- <span class="cline-any cline-yes">130x</span>
769
- <span class="cline-any cline-yes">130x</span>
770
- <span class="cline-any cline-yes">135x</span>
771
- <span class="cline-any cline-yes">135x</span>
772
- <span class="cline-any cline-yes">139x</span>
773
- <span class="cline-any cline-yes">5x</span>
774
- <span class="cline-any cline-yes">5x</span>
775
- <span class="cline-any cline-yes">130x</span>
776
- <span class="cline-any cline-yes">130x</span>
777
- <span class="cline-any cline-yes">130x</span>
778
- <span class="cline-any cline-yes">135x</span>
779
- <span class="cline-any cline-yes">135x</span>
780
- <span class="cline-any cline-yes">139x</span>
781
- <span class="cline-any cline-yes">6x</span>
782
- <span class="cline-any cline-yes">6x</span>
783
- <span class="cline-any cline-yes">5x</span>
784
- <span class="cline-any cline-yes">5x</span>
785
- <span class="cline-any cline-yes">1x</span>
786
- <span class="cline-any cline-yes">1x</span>
787
- <span class="cline-any cline-yes">1x</span>
788
- <span class="cline-any cline-yes">139x</span>
789
- <span class="cline-any cline-yes">129x</span>
790
- <span class="cline-any cline-yes">129x</span>
791
- <span class="cline-any cline-yes">135x</span>
792
- <span class="cline-any cline-yes">135x</span>
793
- <span class="cline-any cline-yes">139x</span>
794
- <span class="cline-any cline-yes">6x</span>
795
- <span class="cline-any cline-yes">6x</span>
796
- <span class="cline-any cline-yes">5x</span>
797
- <span class="cline-any cline-yes">5x</span>
798
- <span class="cline-any cline-yes">1x</span>
799
- <span class="cline-any cline-yes">1x</span>
800
- <span class="cline-any cline-yes">1x</span>
801
- <span class="cline-any cline-yes">139x</span>
802
- <span class="cline-any cline-yes">129x</span>
803
- <span class="cline-any cline-yes">129x</span>
804
- <span class="cline-any cline-yes">135x</span>
805
- <span class="cline-any cline-yes">135x</span>
806
- <span class="cline-any cline-yes">135x</span>
807
- <span class="cline-any cline-yes">135x</span>
808
- <span class="cline-any cline-yes">135x</span>
809
- <span class="cline-any cline-yes">135x</span>
810
- <span class="cline-any cline-yes">139x</span>
811
- <span class="cline-any cline-yes">1x</span>
812
- <span class="cline-any cline-yes">1x</span>
813
- <span class="cline-any cline-yes">1x</span>
814
- <span class="cline-any cline-yes">1x</span>
815
- <span class="cline-any cline-no">&nbsp;</span>
816
- <span class="cline-any cline-no">&nbsp;</span>
817
- <span class="cline-any cline-no">&nbsp;</span>
818
- <span class="cline-any cline-yes">139x</span>
819
- <span class="cline-any cline-yes">134x</span>
820
- <span class="cline-any cline-yes">134x</span>
821
- <span class="cline-any cline-yes">135x</span>
822
- <span class="cline-any cline-yes">135x</span>
823
- <span class="cline-any cline-yes">135x</span>
824
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
825
- &nbsp;
826
- import {
827
- NodePyATVDeviceState,
828
- NodePyATVExecutableType,
829
- NodePyATVFindAndInstanceOptions,
830
- NodePyATVInstanceOptions,
831
- NodePyATVInternalState,
832
- NodePyATVMediaType, NodePyATVPowerState, NodePyATVRepeatState, NodePyATVShuffleState,
833
- NodePyATVState
834
- } from './types.js';
835
- &nbsp;
836
- import {ChildProcess, spawn, SpawnOptions} from 'child_process';
837
- import {FakeChildProcess} from './fake-spawn.js';
838
- &nbsp;
839
- const requestIds: string[] = [];
840
- &nbsp;
841
- export function addRequestId(): string {
842
- let id = '?';
843
- &nbsp;
844
- for (let i = 0; i &lt; 1000; i += 1) {
845
- id = Math.round(Math.random() * (i + 6) * 36).toString(36).toUpperCase();
846
- if (!requestIds.includes(id)) {
847
- requestIds.push(id);
848
- break;
849
- }
850
- }
851
- &nbsp;
852
- return id;
853
- }
854
- &nbsp;
855
- export function removeRequestId(id: string | undefined): void {
856
- if (id &amp;&amp; requestIds.includes(id)) {
857
- requestIds.splice(requestIds.indexOf(id), 1);
858
- }
859
- }
860
- &nbsp;
861
- export function debug(id: string, message: string, options: NodePyATVInstanceOptions): void {
862
- if (options.debug) {
863
- const log = typeof options.debug === 'function' ? options.debug : console.log;
864
- const enableColors = !process.env.NO_COLOR &amp;&amp; !options.noColors;
865
- &nbsp;
866
- const parts = [
867
- enableColors ? '\x1b[0m' : '', // Color Reset
868
- enableColors ? '\x1b[90m' : '', // Grey
869
- '[node-pyatv][',
870
- enableColors ? '\x1b[37m' : '', // Light Grey
871
- id,
872
- enableColors ? '\x1b[90m' : '', // Grey
873
- '] ',
874
- enableColors ? '\x1b[0m' : '', // Color Reset
875
- message
876
- ];
877
- &nbsp;
878
- log.apply(null, [parts.join('')]);
879
- }
880
- }
881
- &nbsp;
882
- export function getExecutable(executable: NodePyATVExecutableType, options: NodePyATVInstanceOptions): string {
883
- if (executable === NodePyATVExecutableType.atvremote &amp;&amp; typeof options.atvremotePath === 'string') {
884
- return options.atvremotePath;
885
- }
886
- else if (executable === NodePyATVExecutableType.atvscript &amp;&amp; typeof options.atvscriptPath === 'string') {
887
- return options.atvscriptPath;
888
- }
889
- else {
890
- return executable;
891
- }
892
- }
893
- &nbsp;
894
- export function execute(
895
- requestId: string,
896
- executableType: NodePyATVExecutableType,
897
- parameters: string[],
898
- options: NodePyATVInstanceOptions
899
- ): ChildProcess | FakeChildProcess {
900
- const executable = getExecutable(executableType, options);
901
- const mySpawn: ((command: string, args: Array&lt;string&gt;, options: SpawnOptions) =&gt; (ChildProcess | FakeChildProcess)) = typeof options.spawn === 'function' ? options.spawn : spawn;
902
- &nbsp;
903
- debug(requestId, `${executable} ${parameters.join(' ')}`, options);
904
- const child = mySpawn(executable, parameters, {
905
- env: process.env
906
- });
907
- &nbsp;
908
- /* eslint-disable @typescript-eslint/no-explicit-any*/
909
- const onStdOut = (data: any) =&gt; debug(requestId, `stdout: ${String(data).trim()}`, options);
910
- const onStdErr = (data: any) =&gt; debug(requestId, `stderr: ${String(data).trim()}`, options);
911
- const onError = (data: any) =&gt; debug(requestId, `error: ${String(data).trim()}`, options);
912
- /* eslint-enable @typescript-eslint/no-explicit-any*/
913
- &nbsp;
914
- const onClose = (code: number) =&gt; {
915
- debug(requestId, `${executable} exited with code: ${code}`, options);
916
- &nbsp;
917
- if (child.stdout) {
918
- child.stdout.off('data', onStdOut);
919
- }
920
- if (child.stderr) {
921
- child.stderr.off('data', onStdErr);
922
- }
923
- &nbsp;
924
- child.off('error', onError);
925
- child.off('close', onClose);
926
- };
927
- &nbsp;
928
- if (child.stdout) {
929
- child.stdout.on('data', onStdOut);
930
- }
931
- if (child.stderr) {
932
- child.stderr.on('data', onStdErr);
933
- }
934
- &nbsp;
935
- child.on('error', onError);
936
- child.on('close', onClose);
937
- &nbsp;
938
- return child;
939
- }
940
- &nbsp;
941
- export async function request(
942
- requestId: string,
943
- executableType: NodePyATVExecutableType,
944
- parameters: string[],
945
- options: NodePyATVInstanceOptions
946
- ): Promise&lt;string|Record&lt;string,unknown&gt;&gt; {
947
- const result = {
948
- stdout: '',
949
- stderr: '',
950
- code: 0
951
- };
952
- &nbsp;
953
- await new Promise((resolve, reject) =&gt; {
954
- const pyatv = execute(requestId, executableType, parameters, options);
955
- &nbsp;
956
- /* eslint-disable @typescript-eslint/no-explicit-any*/
957
- const onStdOut = (data: any) =&gt; result.stdout += String(data).trim();
958
- const onStdErr = (data: any) =&gt; result.stderr += String(data).trim();
959
- const onError = (data: any) =&gt; reject(data instanceof Error ? data <span class="branch-0 cbranch-no" title="branch not covered" >: new Error(String(data)))</span>;
960
- /* eslint-enable @typescript-eslint/no-explicit-any*/
961
- &nbsp;
962
- const onClose: (code: number) =&gt; void = (code: number) =&gt; {
963
- result.code = code;
964
- &nbsp;
965
- if (pyatv.stdout) {
966
- pyatv.stdout.off('data', onStdOut);
967
- }
968
- if (pyatv.stderr) {
969
- pyatv.stderr.off('data', onStdErr);
970
- }
971
- &nbsp;
972
- pyatv.off('error', onError);
973
- pyatv.off('close', onClose);
974
- resolve(undefined);
975
- };
976
- &nbsp;
977
- if (pyatv.stdout) {
978
- pyatv.stdout.on('data', onStdOut);
979
- }
980
- if (pyatv.stderr) {
981
- pyatv.stderr.on('data', onStdErr);
982
- }
983
- &nbsp;
984
- pyatv.on('error', onError);
985
- pyatv.on('close', onClose);
986
- });
987
- &nbsp;
988
- if (result.stderr.length &gt; 0) {
989
- const msg = `Unable to execute request ${requestId}: ${result.stderr}`;
990
- debug(requestId, msg, options);
991
- throw new Error(msg);
992
- }
993
- if (executableType === NodePyATVExecutableType.atvscript) {
994
- try {
995
- return JSON.parse(result.stdout);
996
- }
997
- catch (error) {
998
- const msg = `Unable to parse result ${requestId} json: ${error}`;
999
- debug(requestId, msg, options);
1000
- throw new Error(msg);
1001
- }
1002
- }
1003
- &nbsp;
1004
- return result.stdout;
1005
- }
1006
- &nbsp;
1007
- export function getParamters(options: NodePyATVFindAndInstanceOptions = {}): string[] {
1008
- const parameters: string[] = [];
1009
- &nbsp;
1010
- if (options.hosts) {
1011
- parameters.push('-s', options.hosts.join(','));
1012
- }
1013
- else if (options.host) {
1014
- parameters.push('-s', options.host);
1015
- }
1016
- if (options.id) {
1017
- parameters.push('-i', options.id);
1018
- }
1019
- if (options.protocol) {
1020
- parameters.push('--protocol', options.protocol);
1021
- }
1022
- if (options.dmapCredentials) {
1023
- parameters.push('--dmap-credentials', options.dmapCredentials);
1024
- }
1025
- if (options.mrpCredentials) {
1026
- parameters.push('--mrp-credentials', options.mrpCredentials);
1027
- }
1028
- if (options.airplayCredentials) {
1029
- parameters.push('--airplay-credentials', options.airplayCredentials);
1030
- }
1031
- if (options.companionCredentials) {
1032
- parameters.push('--companion-credentials', options.companionCredentials);
1033
- }
1034
- if (options.raopCredentials) {
1035
- parameters.push('--raop-credentials', options.raopCredentials);
1036
- }
1037
- &nbsp;
1038
- return parameters;
1039
- }
1040
- &nbsp;
1041
- function parseStateStringAttr(
1042
- input: NodePyATVInternalState,
1043
- output: NodePyATVState,
1044
- inputAttr: ('hash' | 'title' | 'album' | 'artist' | 'genre' | 'app' | 'app_id'),
1045
- outputAttr: ('hash' | 'title' | 'album' | 'artist' | 'genre' | 'app' | 'appId'),
1046
- d: (msg: string) =&gt; void
1047
- ): void {
1048
- if (typeof input[inputAttr] === 'string') {
1049
- output[outputAttr] = input[inputAttr] as string;
1050
- return;
1051
- }
1052
- &nbsp;
1053
- d(`No ${outputAttr} value found in input (${JSON.stringify(input)})`);
1054
- }
1055
- &nbsp;
1056
- export function parseState(input: NodePyATVInternalState, id: string, options: NodePyATVInstanceOptions): NodePyATVState {
1057
- const d = (msg: string) =&gt; debug(id, msg, options);
1058
- const result: NodePyATVState = {
1059
- dateTime: null,
1060
- hash: null,
1061
- mediaType: null,
1062
- deviceState: null,
1063
- title: null,
1064
- artist: null,
1065
- album: null,
1066
- genre: null,
1067
- totalTime: null,
1068
- position: null,
1069
- shuffle: null,
1070
- repeat: null,
1071
- app: null,
1072
- appId: null,
1073
- powerState: null
1074
- };
1075
- if (!input || typeof input !== 'object') {
1076
- return result;
1077
- }
1078
- if(input.exception) {
1079
- let errorStr = 'Got pyatv Error: ' + input.exception;
1080
- if(input.stacktrace) {
1081
- errorStr += '\n\npyatv Stacktrace:\n' + input.stacktrace;
1082
- }
1083
- &nbsp;
1084
- throw new Error(errorStr);
1085
- }
1086
- &nbsp;
1087
- // datetime
1088
- if (typeof input.datetime === 'string') {
1089
- const date = new Date(input.datetime);
1090
- if (!isNaN(date.getTime())) {
1091
- result.dateTime = date;
1092
- }
1093
- else {
1094
- d(`Invalid datetime value ${input.datetime}, ignore attribute`);
1095
- }
1096
- }
1097
- else {
1098
- d(`No datetime value found in input (${JSON.stringify(input)})`);
1099
- }
1100
- &nbsp;
1101
- // hash
1102
- parseStateStringAttr(input, result, 'hash', 'hash', d);
1103
- &nbsp;
1104
- // mediaType
1105
- if(typeof input.media_type === 'string') {
1106
- const validValues = Object.keys(NodePyATVMediaType).map(o =&gt; String(o));
1107
- if (validValues.includes(input.media_type)) {
1108
- result.mediaType = NodePyATVMediaType[input.media_type as NodePyATVMediaType];
1109
- }
1110
- else {
1111
- d(`Unsupported mediaType value ${input.media_type}, ignore attribute`);
1112
- }
1113
- } else {
1114
- d(`No mediaType value found in input (${JSON.stringify(input)})`);
1115
- }
1116
- &nbsp;
1117
- // deviceState
1118
- if(typeof input.device_state === 'string') {
1119
- const validValues = Object.keys(NodePyATVDeviceState).map(o =&gt; String(o));
1120
- if (validValues.includes(input.device_state)) {
1121
- result.deviceState = NodePyATVDeviceState[input.device_state as NodePyATVDeviceState];
1122
- }
1123
- else {
1124
- d(`Unsupported deviceState value ${input.device_state}, ignore attribute`);
1125
- }
1126
- } else {
1127
- d(`No deviceState value found in input (${JSON.stringify(input)})`);
1128
- }
1129
- &nbsp;
1130
- // title
1131
- parseStateStringAttr(input, result, 'title', 'title', d);
1132
- &nbsp;
1133
- // artist
1134
- parseStateStringAttr(input, result, 'artist', 'artist', d);
1135
- &nbsp;
1136
- // album
1137
- parseStateStringAttr(input, result, 'album', 'album', d);
1138
- &nbsp;
1139
- // genre
1140
- parseStateStringAttr(input, result, 'genre', 'genre', d);
1141
- &nbsp;
1142
- // totalTime
1143
- if (typeof input.total_time === 'number') {
1144
- result.totalTime = input.total_time;
1145
- }
1146
- else {
1147
- d(`No totalTime value found in input (${JSON.stringify(input)})`);
1148
- }
1149
- &nbsp;
1150
- // position
1151
- if (typeof input.position === 'number') {
1152
- result.position = input.position;
1153
- }
1154
- else {
1155
- d(`No position value found in input (${JSON.stringify(input)})`);
1156
- }
1157
- &nbsp;
1158
- // shuffle
1159
- if(typeof input.shuffle === 'string') {
1160
- const validValues = Object.keys(NodePyATVShuffleState).map(o =&gt; String(o));
1161
- if (validValues.includes(input.shuffle)) {
1162
- result.shuffle = NodePyATVShuffleState[input.shuffle as NodePyATVShuffleState];
1163
- }
1164
- else {
1165
- d(`Unsupported shuffle value ${input.shuffle}, ignore attribute`);
1166
- }
1167
- } else {
1168
- d(`No shuffle value found in input (${JSON.stringify(input)})`);
1169
- }
1170
- &nbsp;
1171
- // repeat
1172
- if(typeof input.repeat === 'string') {
1173
- const validValues = Object.keys(NodePyATVRepeatState).map(o =&gt; String(o));
1174
- if (validValues.includes(input.repeat)) {
1175
- result.repeat = NodePyATVRepeatState[input.repeat as NodePyATVRepeatState];
1176
- }
1177
- else {
1178
- d(`Unsupported repeat value ${input.repeat}, ignore attribute`);
1179
- }
1180
- } else {
1181
- d(`No repeat value found in input (${JSON.stringify(input)})`);
1182
- }
1183
- &nbsp;
1184
- // app
1185
- parseStateStringAttr(input, result, 'app', 'app', d);
1186
- parseStateStringAttr(input, result, 'app_id', 'appId', d);
1187
- &nbsp;
1188
- // powerState
1189
- if(typeof input.power_state === 'string') {
1190
- const validValues = Object.keys(NodePyATVPowerState).map(o =&gt; String(o));
1191
- if (validValues.includes(input.power_state)) {
1192
- result.powerState = NodePyATVPowerState[input.power_state as NodePyATVPowerState];
1193
- }
1194
- <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" > else {</span></span>
1195
- <span class="cstat-no" title="statement not covered" > d(`Unsupported powerState value ${input.power_state}, ignore attribute`);</span>
1196
- <span class="cstat-no" title="statement not covered" > }</span>
1197
- } else {
1198
- d(`No powerState value found in input (${JSON.stringify(input)})`);
1199
- }
1200
- &nbsp;
1201
- return result;
1202
- }
1203
- &nbsp;</pre></td></tr></table></pre>
1204
-
1205
- <div class='push'></div><!-- for sticky footer -->
1206
- </div><!-- /wrapper -->
1207
- <div class='footer quiet pad2 space-top1 center small'>
1208
- Code coverage generated by
1209
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1210
- at 2023-02-12T20:22:09.777Z
1211
- </div>
1212
- <script src="prettify.js"></script>
1213
- <script>
1214
- window.onload = function () {
1215
- prettyPrint();
1216
- };
1217
- </script>
1218
- <script src="sorter.js"></script>
1219
- <script src="block-navigation.js"></script>
1220
- </body>
1221
- </html>
1222
-