1/*
2 * Copyright (c) 2017-2021 The Khronos Group Inc.
3 * Copyright (c) 2017-2021 Valve Corporation
4 * Copyright (c) 2017-2021 LunarG, Inc.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 * Author Jon Ashburn <jon@lunarg.com>
19 * Author: Lenny Komow <lenny@lunarg.com>
20 * Author: Charles Giessen <charles@lunarg.com>
21 */
22
23// This code is used to pass on physical device extensions through the call chain. It must do this without creating a stack frame,
24// because the actual parameters of the call are not known. Since the first parameter is known to be a VkPhysicalDevice, it can
25// unwrap the physical device, overwriting the wrapped device, and then jump to the next function in the call chain. This code
26// attempts to accomplish this by relying on tail-call optimizations, but there is no guarantee that this will work. As a result,
27// this code is only compiled on systems where an assembly alternative has not been written.
28
29#include "loader.h"
30#include "log.h"
31
32#if defined(__GNUC__) && !defined(__clang__)
33#pragma GCC optimize(3)  // force gcc to use tail-calls
34#endif
35
36// Trampoline function macro for unknown physical device extension command.
37#define PhysDevExtTramp(num)                                                              \
38    VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTramp##num(VkPhysicalDevice physical_device) { \
39        const struct loader_instance_dispatch_table *disp;                                \
40        disp = loader_get_instance_dispatch(physical_device);                             \
41        disp->phys_dev_ext[num](loader_unwrap_physical_device(physical_device));          \
42    }
43
44// Terminator function macro for unknown physical device extension command.
45#define PhysDevExtTermin(num)                                                                                      \
46    VKAPI_ATTR void VKAPI_CALL vkPhysDevExtTermin##num(VkPhysicalDevice physical_device) {                         \
47        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physical_device; \
48        struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;                                           \
49        struct loader_instance *inst = (struct loader_instance *)icd_term->this_instance;                          \
50        if (NULL == icd_term->phys_dev_ext[num]) {                                                                 \
51            loader_log(inst, VULKAN_LOADER_ERROR_BIT, 0, "Function %s not supported for this physical device",     \
52                       inst->phys_dev_ext_disp_functions[num]);                                                    \
53        }                                                                                                          \
54        icd_term->phys_dev_ext[num](phys_dev_term->phys_dev);                                                      \
55    }
56
57// Trampoline function macro for unknown physical device extension command.
58#define DevExtTramp(num)                                         \
59    VKAPI_ATTR void VKAPI_CALL vkdev_ext##num(VkDevice device) { \
60        const struct loader_dev_dispatch_table *disp;            \
61        disp = loader_get_dev_dispatch(device);                  \
62        disp->ext_dispatch[num](device);                         \
63    }
64
65// clang-format off
66// Instantiations of the trampoline
67PhysDevExtTramp(0)
68PhysDevExtTramp(1)
69PhysDevExtTramp(2)
70PhysDevExtTramp(3)
71PhysDevExtTramp(4)
72PhysDevExtTramp(5)
73PhysDevExtTramp(6)
74PhysDevExtTramp(7)
75PhysDevExtTramp(8)
76PhysDevExtTramp(9)
77PhysDevExtTramp(10)
78PhysDevExtTramp(11)
79PhysDevExtTramp(12)
80PhysDevExtTramp(13)
81PhysDevExtTramp(14)
82PhysDevExtTramp(15)
83PhysDevExtTramp(16)
84PhysDevExtTramp(17)
85PhysDevExtTramp(18)
86PhysDevExtTramp(19)
87PhysDevExtTramp(20)
88PhysDevExtTramp(21)
89PhysDevExtTramp(22)
90PhysDevExtTramp(23)
91PhysDevExtTramp(24)
92PhysDevExtTramp(25)
93PhysDevExtTramp(26)
94PhysDevExtTramp(27)
95PhysDevExtTramp(28)
96PhysDevExtTramp(29)
97PhysDevExtTramp(30)
98PhysDevExtTramp(31)
99PhysDevExtTramp(32)
100PhysDevExtTramp(33)
101PhysDevExtTramp(34)
102PhysDevExtTramp(35)
103PhysDevExtTramp(36)
104PhysDevExtTramp(37)
105PhysDevExtTramp(38)
106PhysDevExtTramp(39)
107PhysDevExtTramp(40)
108PhysDevExtTramp(41)
109PhysDevExtTramp(42)
110PhysDevExtTramp(43)
111PhysDevExtTramp(44)
112PhysDevExtTramp(45)
113PhysDevExtTramp(46)
114PhysDevExtTramp(47)
115PhysDevExtTramp(48)
116PhysDevExtTramp(49)
117PhysDevExtTramp(50)
118PhysDevExtTramp(51)
119PhysDevExtTramp(52)
120PhysDevExtTramp(53)
121PhysDevExtTramp(54)
122PhysDevExtTramp(55)
123PhysDevExtTramp(56)
124PhysDevExtTramp(57)
125PhysDevExtTramp(58)
126PhysDevExtTramp(59)
127PhysDevExtTramp(60)
128PhysDevExtTramp(61)
129PhysDevExtTramp(62)
130PhysDevExtTramp(63)
131PhysDevExtTramp(64)
132PhysDevExtTramp(65)
133PhysDevExtTramp(66)
134PhysDevExtTramp(67)
135PhysDevExtTramp(68)
136PhysDevExtTramp(69)
137PhysDevExtTramp(70)
138PhysDevExtTramp(71)
139PhysDevExtTramp(72)
140PhysDevExtTramp(73)
141PhysDevExtTramp(74)
142PhysDevExtTramp(75)
143PhysDevExtTramp(76)
144PhysDevExtTramp(77)
145PhysDevExtTramp(78)
146PhysDevExtTramp(79)
147PhysDevExtTramp(80)
148PhysDevExtTramp(81)
149PhysDevExtTramp(82)
150PhysDevExtTramp(83)
151PhysDevExtTramp(84)
152PhysDevExtTramp(85)
153PhysDevExtTramp(86)
154PhysDevExtTramp(87)
155PhysDevExtTramp(88)
156PhysDevExtTramp(89)
157PhysDevExtTramp(90)
158PhysDevExtTramp(91)
159PhysDevExtTramp(92)
160PhysDevExtTramp(93)
161PhysDevExtTramp(94)
162PhysDevExtTramp(95)
163PhysDevExtTramp(96)
164PhysDevExtTramp(97)
165PhysDevExtTramp(98)
166PhysDevExtTramp(99)
167PhysDevExtTramp(100)
168PhysDevExtTramp(101)
169PhysDevExtTramp(102)
170PhysDevExtTramp(103)
171PhysDevExtTramp(104)
172PhysDevExtTramp(105)
173PhysDevExtTramp(106)
174PhysDevExtTramp(107)
175PhysDevExtTramp(108)
176PhysDevExtTramp(109)
177PhysDevExtTramp(110)
178PhysDevExtTramp(111)
179PhysDevExtTramp(112)
180PhysDevExtTramp(113)
181PhysDevExtTramp(114)
182PhysDevExtTramp(115)
183PhysDevExtTramp(116)
184PhysDevExtTramp(117)
185PhysDevExtTramp(118)
186PhysDevExtTramp(119)
187PhysDevExtTramp(120)
188PhysDevExtTramp(121)
189PhysDevExtTramp(122)
190PhysDevExtTramp(123)
191PhysDevExtTramp(124)
192PhysDevExtTramp(125)
193PhysDevExtTramp(126)
194PhysDevExtTramp(127)
195PhysDevExtTramp(128)
196PhysDevExtTramp(129)
197PhysDevExtTramp(130)
198PhysDevExtTramp(131)
199PhysDevExtTramp(132)
200PhysDevExtTramp(133)
201PhysDevExtTramp(134)
202PhysDevExtTramp(135)
203PhysDevExtTramp(136)
204PhysDevExtTramp(137)
205PhysDevExtTramp(138)
206PhysDevExtTramp(139)
207PhysDevExtTramp(140)
208PhysDevExtTramp(141)
209PhysDevExtTramp(142)
210PhysDevExtTramp(143)
211PhysDevExtTramp(144)
212PhysDevExtTramp(145)
213PhysDevExtTramp(146)
214PhysDevExtTramp(147)
215PhysDevExtTramp(148)
216PhysDevExtTramp(149)
217PhysDevExtTramp(150)
218PhysDevExtTramp(151)
219PhysDevExtTramp(152)
220PhysDevExtTramp(153)
221PhysDevExtTramp(154)
222PhysDevExtTramp(155)
223PhysDevExtTramp(156)
224PhysDevExtTramp(157)
225PhysDevExtTramp(158)
226PhysDevExtTramp(159)
227PhysDevExtTramp(160)
228PhysDevExtTramp(161)
229PhysDevExtTramp(162)
230PhysDevExtTramp(163)
231PhysDevExtTramp(164)
232PhysDevExtTramp(165)
233PhysDevExtTramp(166)
234PhysDevExtTramp(167)
235PhysDevExtTramp(168)
236PhysDevExtTramp(169)
237PhysDevExtTramp(170)
238PhysDevExtTramp(171)
239PhysDevExtTramp(172)
240PhysDevExtTramp(173)
241PhysDevExtTramp(174)
242PhysDevExtTramp(175)
243PhysDevExtTramp(176)
244PhysDevExtTramp(177)
245PhysDevExtTramp(178)
246PhysDevExtTramp(179)
247PhysDevExtTramp(180)
248PhysDevExtTramp(181)
249PhysDevExtTramp(182)
250PhysDevExtTramp(183)
251PhysDevExtTramp(184)
252PhysDevExtTramp(185)
253PhysDevExtTramp(186)
254PhysDevExtTramp(187)
255PhysDevExtTramp(188)
256PhysDevExtTramp(189)
257PhysDevExtTramp(190)
258PhysDevExtTramp(191)
259PhysDevExtTramp(192)
260PhysDevExtTramp(193)
261PhysDevExtTramp(194)
262PhysDevExtTramp(195)
263PhysDevExtTramp(196)
264PhysDevExtTramp(197)
265PhysDevExtTramp(198)
266PhysDevExtTramp(199)
267PhysDevExtTramp(200)
268PhysDevExtTramp(201)
269PhysDevExtTramp(202)
270PhysDevExtTramp(203)
271PhysDevExtTramp(204)
272PhysDevExtTramp(205)
273PhysDevExtTramp(206)
274PhysDevExtTramp(207)
275PhysDevExtTramp(208)
276PhysDevExtTramp(209)
277PhysDevExtTramp(210)
278PhysDevExtTramp(211)
279PhysDevExtTramp(212)
280PhysDevExtTramp(213)
281PhysDevExtTramp(214)
282PhysDevExtTramp(215)
283PhysDevExtTramp(216)
284PhysDevExtTramp(217)
285PhysDevExtTramp(218)
286PhysDevExtTramp(219)
287PhysDevExtTramp(220)
288PhysDevExtTramp(221)
289PhysDevExtTramp(222)
290PhysDevExtTramp(223)
291PhysDevExtTramp(224)
292PhysDevExtTramp(225)
293PhysDevExtTramp(226)
294PhysDevExtTramp(227)
295PhysDevExtTramp(228)
296PhysDevExtTramp(229)
297PhysDevExtTramp(230)
298PhysDevExtTramp(231)
299PhysDevExtTramp(232)
300PhysDevExtTramp(233)
301PhysDevExtTramp(234)
302PhysDevExtTramp(235)
303PhysDevExtTramp(236)
304PhysDevExtTramp(237)
305PhysDevExtTramp(238)
306PhysDevExtTramp(239)
307PhysDevExtTramp(240)
308PhysDevExtTramp(241)
309PhysDevExtTramp(242)
310PhysDevExtTramp(243)
311PhysDevExtTramp(244)
312PhysDevExtTramp(245)
313PhysDevExtTramp(246)
314PhysDevExtTramp(247)
315PhysDevExtTramp(248)
316PhysDevExtTramp(249)
317
318// Instantiations of the terminator
319PhysDevExtTermin(0)
320PhysDevExtTermin(1)
321PhysDevExtTermin(2)
322PhysDevExtTermin(3)
323PhysDevExtTermin(4)
324PhysDevExtTermin(5)
325PhysDevExtTermin(6)
326PhysDevExtTermin(7)
327PhysDevExtTermin(8)
328PhysDevExtTermin(9)
329PhysDevExtTermin(10)
330PhysDevExtTermin(11)
331PhysDevExtTermin(12)
332PhysDevExtTermin(13)
333PhysDevExtTermin(14)
334PhysDevExtTermin(15)
335PhysDevExtTermin(16)
336PhysDevExtTermin(17)
337PhysDevExtTermin(18)
338PhysDevExtTermin(19)
339PhysDevExtTermin(20)
340PhysDevExtTermin(21)
341PhysDevExtTermin(22)
342PhysDevExtTermin(23)
343PhysDevExtTermin(24)
344PhysDevExtTermin(25)
345PhysDevExtTermin(26)
346PhysDevExtTermin(27)
347PhysDevExtTermin(28)
348PhysDevExtTermin(29)
349PhysDevExtTermin(30)
350PhysDevExtTermin(31)
351PhysDevExtTermin(32)
352PhysDevExtTermin(33)
353PhysDevExtTermin(34)
354PhysDevExtTermin(35)
355PhysDevExtTermin(36)
356PhysDevExtTermin(37)
357PhysDevExtTermin(38)
358PhysDevExtTermin(39)
359PhysDevExtTermin(40)
360PhysDevExtTermin(41)
361PhysDevExtTermin(42)
362PhysDevExtTermin(43)
363PhysDevExtTermin(44)
364PhysDevExtTermin(45)
365PhysDevExtTermin(46)
366PhysDevExtTermin(47)
367PhysDevExtTermin(48)
368PhysDevExtTermin(49)
369PhysDevExtTermin(50)
370PhysDevExtTermin(51)
371PhysDevExtTermin(52)
372PhysDevExtTermin(53)
373PhysDevExtTermin(54)
374PhysDevExtTermin(55)
375PhysDevExtTermin(56)
376PhysDevExtTermin(57)
377PhysDevExtTermin(58)
378PhysDevExtTermin(59)
379PhysDevExtTermin(60)
380PhysDevExtTermin(61)
381PhysDevExtTermin(62)
382PhysDevExtTermin(63)
383PhysDevExtTermin(64)
384PhysDevExtTermin(65)
385PhysDevExtTermin(66)
386PhysDevExtTermin(67)
387PhysDevExtTermin(68)
388PhysDevExtTermin(69)
389PhysDevExtTermin(70)
390PhysDevExtTermin(71)
391PhysDevExtTermin(72)
392PhysDevExtTermin(73)
393PhysDevExtTermin(74)
394PhysDevExtTermin(75)
395PhysDevExtTermin(76)
396PhysDevExtTermin(77)
397PhysDevExtTermin(78)
398PhysDevExtTermin(79)
399PhysDevExtTermin(80)
400PhysDevExtTermin(81)
401PhysDevExtTermin(82)
402PhysDevExtTermin(83)
403PhysDevExtTermin(84)
404PhysDevExtTermin(85)
405PhysDevExtTermin(86)
406PhysDevExtTermin(87)
407PhysDevExtTermin(88)
408PhysDevExtTermin(89)
409PhysDevExtTermin(90)
410PhysDevExtTermin(91)
411PhysDevExtTermin(92)
412PhysDevExtTermin(93)
413PhysDevExtTermin(94)
414PhysDevExtTermin(95)
415PhysDevExtTermin(96)
416PhysDevExtTermin(97)
417PhysDevExtTermin(98)
418PhysDevExtTermin(99)
419PhysDevExtTermin(100)
420PhysDevExtTermin(101)
421PhysDevExtTermin(102)
422PhysDevExtTermin(103)
423PhysDevExtTermin(104)
424PhysDevExtTermin(105)
425PhysDevExtTermin(106)
426PhysDevExtTermin(107)
427PhysDevExtTermin(108)
428PhysDevExtTermin(109)
429PhysDevExtTermin(110)
430PhysDevExtTermin(111)
431PhysDevExtTermin(112)
432PhysDevExtTermin(113)
433PhysDevExtTermin(114)
434PhysDevExtTermin(115)
435PhysDevExtTermin(116)
436PhysDevExtTermin(117)
437PhysDevExtTermin(118)
438PhysDevExtTermin(119)
439PhysDevExtTermin(120)
440PhysDevExtTermin(121)
441PhysDevExtTermin(122)
442PhysDevExtTermin(123)
443PhysDevExtTermin(124)
444PhysDevExtTermin(125)
445PhysDevExtTermin(126)
446PhysDevExtTermin(127)
447PhysDevExtTermin(128)
448PhysDevExtTermin(129)
449PhysDevExtTermin(130)
450PhysDevExtTermin(131)
451PhysDevExtTermin(132)
452PhysDevExtTermin(133)
453PhysDevExtTermin(134)
454PhysDevExtTermin(135)
455PhysDevExtTermin(136)
456PhysDevExtTermin(137)
457PhysDevExtTermin(138)
458PhysDevExtTermin(139)
459PhysDevExtTermin(140)
460PhysDevExtTermin(141)
461PhysDevExtTermin(142)
462PhysDevExtTermin(143)
463PhysDevExtTermin(144)
464PhysDevExtTermin(145)
465PhysDevExtTermin(146)
466PhysDevExtTermin(147)
467PhysDevExtTermin(148)
468PhysDevExtTermin(149)
469PhysDevExtTermin(150)
470PhysDevExtTermin(151)
471PhysDevExtTermin(152)
472PhysDevExtTermin(153)
473PhysDevExtTermin(154)
474PhysDevExtTermin(155)
475PhysDevExtTermin(156)
476PhysDevExtTermin(157)
477PhysDevExtTermin(158)
478PhysDevExtTermin(159)
479PhysDevExtTermin(160)
480PhysDevExtTermin(161)
481PhysDevExtTermin(162)
482PhysDevExtTermin(163)
483PhysDevExtTermin(164)
484PhysDevExtTermin(165)
485PhysDevExtTermin(166)
486PhysDevExtTermin(167)
487PhysDevExtTermin(168)
488PhysDevExtTermin(169)
489PhysDevExtTermin(170)
490PhysDevExtTermin(171)
491PhysDevExtTermin(172)
492PhysDevExtTermin(173)
493PhysDevExtTermin(174)
494PhysDevExtTermin(175)
495PhysDevExtTermin(176)
496PhysDevExtTermin(177)
497PhysDevExtTermin(178)
498PhysDevExtTermin(179)
499PhysDevExtTermin(180)
500PhysDevExtTermin(181)
501PhysDevExtTermin(182)
502PhysDevExtTermin(183)
503PhysDevExtTermin(184)
504PhysDevExtTermin(185)
505PhysDevExtTermin(186)
506PhysDevExtTermin(187)
507PhysDevExtTermin(188)
508PhysDevExtTermin(189)
509PhysDevExtTermin(190)
510PhysDevExtTermin(191)
511PhysDevExtTermin(192)
512PhysDevExtTermin(193)
513PhysDevExtTermin(194)
514PhysDevExtTermin(195)
515PhysDevExtTermin(196)
516PhysDevExtTermin(197)
517PhysDevExtTermin(198)
518PhysDevExtTermin(199)
519PhysDevExtTermin(200)
520PhysDevExtTermin(201)
521PhysDevExtTermin(202)
522PhysDevExtTermin(203)
523PhysDevExtTermin(204)
524PhysDevExtTermin(205)
525PhysDevExtTermin(206)
526PhysDevExtTermin(207)
527PhysDevExtTermin(208)
528PhysDevExtTermin(209)
529PhysDevExtTermin(210)
530PhysDevExtTermin(211)
531PhysDevExtTermin(212)
532PhysDevExtTermin(213)
533PhysDevExtTermin(214)
534PhysDevExtTermin(215)
535PhysDevExtTermin(216)
536PhysDevExtTermin(217)
537PhysDevExtTermin(218)
538PhysDevExtTermin(219)
539PhysDevExtTermin(220)
540PhysDevExtTermin(221)
541PhysDevExtTermin(222)
542PhysDevExtTermin(223)
543PhysDevExtTermin(224)
544PhysDevExtTermin(225)
545PhysDevExtTermin(226)
546PhysDevExtTermin(227)
547PhysDevExtTermin(228)
548PhysDevExtTermin(229)
549PhysDevExtTermin(230)
550PhysDevExtTermin(231)
551PhysDevExtTermin(232)
552PhysDevExtTermin(233)
553PhysDevExtTermin(234)
554PhysDevExtTermin(235)
555PhysDevExtTermin(236)
556PhysDevExtTermin(237)
557PhysDevExtTermin(238)
558PhysDevExtTermin(239)
559PhysDevExtTermin(240)
560PhysDevExtTermin(241)
561PhysDevExtTermin(242)
562PhysDevExtTermin(243)
563PhysDevExtTermin(244)
564PhysDevExtTermin(245)
565PhysDevExtTermin(246)
566PhysDevExtTermin(247)
567PhysDevExtTermin(248)
568PhysDevExtTermin(249)
569
570// Instantiations of the device trampoline
571DevExtTramp(0)
572DevExtTramp(1)
573DevExtTramp(2)
574DevExtTramp(3)
575DevExtTramp(4)
576DevExtTramp(5)
577DevExtTramp(6)
578DevExtTramp(7)
579DevExtTramp(8)
580DevExtTramp(9)
581DevExtTramp(10)
582DevExtTramp(11)
583DevExtTramp(12)
584DevExtTramp(13)
585DevExtTramp(14)
586DevExtTramp(15)
587DevExtTramp(16)
588DevExtTramp(17)
589DevExtTramp(18)
590DevExtTramp(19)
591DevExtTramp(20)
592DevExtTramp(21)
593DevExtTramp(22)
594DevExtTramp(23)
595DevExtTramp(24)
596DevExtTramp(25)
597DevExtTramp(26)
598DevExtTramp(27)
599DevExtTramp(28)
600DevExtTramp(29)
601DevExtTramp(30)
602DevExtTramp(31)
603DevExtTramp(32)
604DevExtTramp(33)
605DevExtTramp(34)
606DevExtTramp(35)
607DevExtTramp(36)
608DevExtTramp(37)
609DevExtTramp(38)
610DevExtTramp(39)
611DevExtTramp(40)
612DevExtTramp(41)
613DevExtTramp(42)
614DevExtTramp(43)
615DevExtTramp(44)
616DevExtTramp(45)
617DevExtTramp(46)
618DevExtTramp(47)
619DevExtTramp(48)
620DevExtTramp(49)
621DevExtTramp(50)
622DevExtTramp(51)
623DevExtTramp(52)
624DevExtTramp(53)
625DevExtTramp(54)
626DevExtTramp(55)
627DevExtTramp(56)
628DevExtTramp(57)
629DevExtTramp(58)
630DevExtTramp(59)
631DevExtTramp(60)
632DevExtTramp(61)
633DevExtTramp(62)
634DevExtTramp(63)
635DevExtTramp(64)
636DevExtTramp(65)
637DevExtTramp(66)
638DevExtTramp(67)
639DevExtTramp(68)
640DevExtTramp(69)
641DevExtTramp(70)
642DevExtTramp(71)
643DevExtTramp(72)
644DevExtTramp(73)
645DevExtTramp(74)
646DevExtTramp(75)
647DevExtTramp(76)
648DevExtTramp(77)
649DevExtTramp(78)
650DevExtTramp(79)
651DevExtTramp(80)
652DevExtTramp(81)
653DevExtTramp(82)
654DevExtTramp(83)
655DevExtTramp(84)
656DevExtTramp(85)
657DevExtTramp(86)
658DevExtTramp(87)
659DevExtTramp(88)
660DevExtTramp(89)
661DevExtTramp(90)
662DevExtTramp(91)
663DevExtTramp(92)
664DevExtTramp(93)
665DevExtTramp(94)
666DevExtTramp(95)
667DevExtTramp(96)
668DevExtTramp(97)
669DevExtTramp(98)
670DevExtTramp(99)
671DevExtTramp(100)
672DevExtTramp(101)
673DevExtTramp(102)
674DevExtTramp(103)
675DevExtTramp(104)
676DevExtTramp(105)
677DevExtTramp(106)
678DevExtTramp(107)
679DevExtTramp(108)
680DevExtTramp(109)
681DevExtTramp(110)
682DevExtTramp(111)
683DevExtTramp(112)
684DevExtTramp(113)
685DevExtTramp(114)
686DevExtTramp(115)
687DevExtTramp(116)
688DevExtTramp(117)
689DevExtTramp(118)
690DevExtTramp(119)
691DevExtTramp(120)
692DevExtTramp(121)
693DevExtTramp(122)
694DevExtTramp(123)
695DevExtTramp(124)
696DevExtTramp(125)
697DevExtTramp(126)
698DevExtTramp(127)
699DevExtTramp(128)
700DevExtTramp(129)
701DevExtTramp(130)
702DevExtTramp(131)
703DevExtTramp(132)
704DevExtTramp(133)
705DevExtTramp(134)
706DevExtTramp(135)
707DevExtTramp(136)
708DevExtTramp(137)
709DevExtTramp(138)
710DevExtTramp(139)
711DevExtTramp(140)
712DevExtTramp(141)
713DevExtTramp(142)
714DevExtTramp(143)
715DevExtTramp(144)
716DevExtTramp(145)
717DevExtTramp(146)
718DevExtTramp(147)
719DevExtTramp(148)
720DevExtTramp(149)
721DevExtTramp(150)
722DevExtTramp(151)
723DevExtTramp(152)
724DevExtTramp(153)
725DevExtTramp(154)
726DevExtTramp(155)
727DevExtTramp(156)
728DevExtTramp(157)
729DevExtTramp(158)
730DevExtTramp(159)
731DevExtTramp(160)
732DevExtTramp(161)
733DevExtTramp(162)
734DevExtTramp(163)
735DevExtTramp(164)
736DevExtTramp(165)
737DevExtTramp(166)
738DevExtTramp(167)
739DevExtTramp(168)
740DevExtTramp(169)
741DevExtTramp(170)
742DevExtTramp(171)
743DevExtTramp(172)
744DevExtTramp(173)
745DevExtTramp(174)
746DevExtTramp(175)
747DevExtTramp(176)
748DevExtTramp(177)
749DevExtTramp(178)
750DevExtTramp(179)
751DevExtTramp(180)
752DevExtTramp(181)
753DevExtTramp(182)
754DevExtTramp(183)
755DevExtTramp(184)
756DevExtTramp(185)
757DevExtTramp(186)
758DevExtTramp(187)
759DevExtTramp(188)
760DevExtTramp(189)
761DevExtTramp(190)
762DevExtTramp(191)
763DevExtTramp(192)
764DevExtTramp(193)
765DevExtTramp(194)
766DevExtTramp(195)
767DevExtTramp(196)
768DevExtTramp(197)
769DevExtTramp(198)
770DevExtTramp(199)
771DevExtTramp(200)
772DevExtTramp(201)
773DevExtTramp(202)
774DevExtTramp(203)
775DevExtTramp(204)
776DevExtTramp(205)
777DevExtTramp(206)
778DevExtTramp(207)
779DevExtTramp(208)
780DevExtTramp(209)
781DevExtTramp(210)
782DevExtTramp(211)
783DevExtTramp(212)
784DevExtTramp(213)
785DevExtTramp(214)
786DevExtTramp(215)
787DevExtTramp(216)
788DevExtTramp(217)
789DevExtTramp(218)
790DevExtTramp(219)
791DevExtTramp(220)
792DevExtTramp(221)
793DevExtTramp(222)
794DevExtTramp(223)
795DevExtTramp(224)
796DevExtTramp(225)
797DevExtTramp(226)
798DevExtTramp(227)
799DevExtTramp(228)
800DevExtTramp(229)
801DevExtTramp(230)
802DevExtTramp(231)
803DevExtTramp(232)
804DevExtTramp(233)
805DevExtTramp(234)
806DevExtTramp(235)
807DevExtTramp(236)
808DevExtTramp(237)
809DevExtTramp(238)
810DevExtTramp(239)
811DevExtTramp(240)
812DevExtTramp(241)
813DevExtTramp(242)
814DevExtTramp(243)
815DevExtTramp(244)
816DevExtTramp(245)
817DevExtTramp(246)
818DevExtTramp(247)
819DevExtTramp(248)
820DevExtTramp(249)
821