1 | ;
|
2 | var _a;
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | exports.TmpfsMountOption = exports.DevicePermission = exports.Capability = exports.LinuxParameters = void 0;
|
5 | const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
6 | const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
7 | const cdk = require("@aws-cdk/core");
|
8 | // keep this import separate from other imports to reduce chance for merge conflicts with v2-main
|
9 | // eslint-disable-next-line no-duplicate-imports, import/order
|
10 | const core_1 = require("@aws-cdk/core");
|
11 | /**
|
12 | * Linux-specific options that are applied to the container.
|
13 | */
|
14 | class LinuxParameters extends core_1.Construct {
|
15 | /**
|
16 | * Constructs a new instance of the LinuxParameters class.
|
17 | */
|
18 | constructor(scope, id, props = {}) {
|
19 | super(scope, id);
|
20 | /**
|
21 | * Capabilities to be added
|
22 | */
|
23 | this.capAdd = new Array();
|
24 | /**
|
25 | * Capabilities to be dropped
|
26 | */
|
27 | this.capDrop = new Array();
|
28 | /**
|
29 | * Device mounts
|
30 | */
|
31 | this.devices = new Array();
|
32 | /**
|
33 | * TmpFs mounts
|
34 | */
|
35 | this.tmpfs = new Array();
|
36 | try {
|
37 | jsiiDeprecationWarnings._aws_cdk_aws_ecs_LinuxParametersProps(props);
|
38 | }
|
39 | catch (error) {
|
40 | if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
41 | Error.captureStackTrace(error, LinuxParameters);
|
42 | }
|
43 | throw error;
|
44 | }
|
45 | this.sharedMemorySize = props.sharedMemorySize;
|
46 | this.initProcessEnabled = props.initProcessEnabled;
|
47 | }
|
48 | /**
|
49 | * Adds one or more Linux capabilities to the Docker configuration of a container.
|
50 | *
|
51 | * Only works with EC2 launch type.
|
52 | */
|
53 | addCapabilities(...cap) {
|
54 | try {
|
55 | jsiiDeprecationWarnings._aws_cdk_aws_ecs_Capability(cap);
|
56 | }
|
57 | catch (error) {
|
58 | if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
59 | Error.captureStackTrace(error, this.addCapabilities);
|
60 | }
|
61 | throw error;
|
62 | }
|
63 | this.capAdd.push(...cap);
|
64 | }
|
65 | /**
|
66 | * Removes one or more Linux capabilities to the Docker configuration of a container.
|
67 | *
|
68 | * Only works with EC2 launch type.
|
69 | */
|
70 | dropCapabilities(...cap) {
|
71 | try {
|
72 | jsiiDeprecationWarnings._aws_cdk_aws_ecs_Capability(cap);
|
73 | }
|
74 | catch (error) {
|
75 | if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
76 | Error.captureStackTrace(error, this.dropCapabilities);
|
77 | }
|
78 | throw error;
|
79 | }
|
80 | this.capDrop.push(...cap);
|
81 | }
|
82 | /**
|
83 | * Adds one or more host devices to a container.
|
84 | */
|
85 | addDevices(...device) {
|
86 | try {
|
87 | jsiiDeprecationWarnings._aws_cdk_aws_ecs_Device(device);
|
88 | }
|
89 | catch (error) {
|
90 | if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
91 | Error.captureStackTrace(error, this.addDevices);
|
92 | }
|
93 | throw error;
|
94 | }
|
95 | this.devices.push(...device);
|
96 | }
|
97 | /**
|
98 | * Specifies the container path, mount options, and size (in MiB) of the tmpfs mount for a container.
|
99 | *
|
100 | * Only works with EC2 launch type.
|
101 | */
|
102 | addTmpfs(...tmpfs) {
|
103 | try {
|
104 | jsiiDeprecationWarnings._aws_cdk_aws_ecs_Tmpfs(tmpfs);
|
105 | }
|
106 | catch (error) {
|
107 | if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
108 | Error.captureStackTrace(error, this.addTmpfs);
|
109 | }
|
110 | throw error;
|
111 | }
|
112 | this.tmpfs.push(...tmpfs);
|
113 | }
|
114 | /**
|
115 | * Renders the Linux parameters to a CloudFormation object.
|
116 | */
|
117 | renderLinuxParameters() {
|
118 | return {
|
119 | initProcessEnabled: this.initProcessEnabled,
|
120 | sharedMemorySize: this.sharedMemorySize,
|
121 | capabilities: {
|
122 | add: cdk.Lazy.list({ produce: () => this.capAdd }, { omitEmpty: true }),
|
123 | drop: cdk.Lazy.list({ produce: () => this.capDrop }, { omitEmpty: true }),
|
124 | },
|
125 | devices: cdk.Lazy.any({ produce: () => this.devices.map(renderDevice) }, { omitEmptyArray: true }),
|
126 | tmpfs: cdk.Lazy.any({ produce: () => this.tmpfs.map(renderTmpfs) }, { omitEmptyArray: true }),
|
127 | };
|
128 | }
|
129 | }
|
130 | exports.LinuxParameters = LinuxParameters;
|
131 | _a = JSII_RTTI_SYMBOL_1;
|
132 | LinuxParameters[_a] = { fqn: "@aws-cdk/aws-ecs.LinuxParameters", version: "1.197.0" };
|
133 | function renderDevice(device) {
|
134 | return {
|
135 | containerPath: device.containerPath,
|
136 | hostPath: device.hostPath,
|
137 | permissions: device.permissions,
|
138 | };
|
139 | }
|
140 | function renderTmpfs(tmpfs) {
|
141 | return {
|
142 | containerPath: tmpfs.containerPath,
|
143 | size: tmpfs.size,
|
144 | mountOptions: tmpfs.mountOptions,
|
145 | };
|
146 | }
|
147 | /**
|
148 | * A Linux capability
|
149 | */
|
150 | var Capability;
|
151 | (function (Capability) {
|
152 | Capability["ALL"] = "ALL";
|
153 | Capability["AUDIT_CONTROL"] = "AUDIT_CONTROL";
|
154 | Capability["AUDIT_WRITE"] = "AUDIT_WRITE";
|
155 | Capability["BLOCK_SUSPEND"] = "BLOCK_SUSPEND";
|
156 | Capability["CHOWN"] = "CHOWN";
|
157 | Capability["DAC_OVERRIDE"] = "DAC_OVERRIDE";
|
158 | Capability["DAC_READ_SEARCH"] = "DAC_READ_SEARCH";
|
159 | Capability["FOWNER"] = "FOWNER";
|
160 | Capability["FSETID"] = "FSETID";
|
161 | Capability["IPC_LOCK"] = "IPC_LOCK";
|
162 | Capability["IPC_OWNER"] = "IPC_OWNER";
|
163 | Capability["KILL"] = "KILL";
|
164 | Capability["LEASE"] = "LEASE";
|
165 | Capability["LINUX_IMMUTABLE"] = "LINUX_IMMUTABLE";
|
166 | Capability["MAC_ADMIN"] = "MAC_ADMIN";
|
167 | Capability["MAC_OVERRIDE"] = "MAC_OVERRIDE";
|
168 | Capability["MKNOD"] = "MKNOD";
|
169 | Capability["NET_ADMIN"] = "NET_ADMIN";
|
170 | Capability["NET_BIND_SERVICE"] = "NET_BIND_SERVICE";
|
171 | Capability["NET_BROADCAST"] = "NET_BROADCAST";
|
172 | Capability["NET_RAW"] = "NET_RAW";
|
173 | Capability["SETFCAP"] = "SETFCAP";
|
174 | Capability["SETGID"] = "SETGID";
|
175 | Capability["SETPCAP"] = "SETPCAP";
|
176 | Capability["SETUID"] = "SETUID";
|
177 | Capability["SYS_ADMIN"] = "SYS_ADMIN";
|
178 | Capability["SYS_BOOT"] = "SYS_BOOT";
|
179 | Capability["SYS_CHROOT"] = "SYS_CHROOT";
|
180 | Capability["SYS_MODULE"] = "SYS_MODULE";
|
181 | Capability["SYS_NICE"] = "SYS_NICE";
|
182 | Capability["SYS_PACCT"] = "SYS_PACCT";
|
183 | Capability["SYS_PTRACE"] = "SYS_PTRACE";
|
184 | Capability["SYS_RAWIO"] = "SYS_RAWIO";
|
185 | Capability["SYS_RESOURCE"] = "SYS_RESOURCE";
|
186 | Capability["SYS_TIME"] = "SYS_TIME";
|
187 | Capability["SYS_TTY_CONFIG"] = "SYS_TTY_CONFIG";
|
188 | Capability["SYSLOG"] = "SYSLOG";
|
189 | Capability["WAKE_ALARM"] = "WAKE_ALARM";
|
190 | })(Capability = exports.Capability || (exports.Capability = {}));
|
191 | /**
|
192 | * Permissions for device access
|
193 | */
|
194 | var DevicePermission;
|
195 | (function (DevicePermission) {
|
196 | /**
|
197 | * Read
|
198 | */
|
199 | DevicePermission["READ"] = "read";
|
200 | /**
|
201 | * Write
|
202 | */
|
203 | DevicePermission["WRITE"] = "write";
|
204 | /**
|
205 | * Make a node
|
206 | */
|
207 | DevicePermission["MKNOD"] = "mknod";
|
208 | })(DevicePermission = exports.DevicePermission || (exports.DevicePermission = {}));
|
209 | /**
|
210 | * The supported options for a tmpfs mount for a container.
|
211 | */
|
212 | var TmpfsMountOption;
|
213 | (function (TmpfsMountOption) {
|
214 | TmpfsMountOption["DEFAULTS"] = "defaults";
|
215 | TmpfsMountOption["RO"] = "ro";
|
216 | TmpfsMountOption["RW"] = "rw";
|
217 | TmpfsMountOption["SUID"] = "suid";
|
218 | TmpfsMountOption["NOSUID"] = "nosuid";
|
219 | TmpfsMountOption["DEV"] = "dev";
|
220 | TmpfsMountOption["NODEV"] = "nodev";
|
221 | TmpfsMountOption["EXEC"] = "exec";
|
222 | TmpfsMountOption["NOEXEC"] = "noexec";
|
223 | TmpfsMountOption["SYNC"] = "sync";
|
224 | TmpfsMountOption["ASYNC"] = "async";
|
225 | TmpfsMountOption["DIRSYNC"] = "dirsync";
|
226 | TmpfsMountOption["REMOUNT"] = "remount";
|
227 | TmpfsMountOption["MAND"] = "mand";
|
228 | TmpfsMountOption["NOMAND"] = "nomand";
|
229 | TmpfsMountOption["ATIME"] = "atime";
|
230 | TmpfsMountOption["NOATIME"] = "noatime";
|
231 | TmpfsMountOption["DIRATIME"] = "diratime";
|
232 | TmpfsMountOption["NODIRATIME"] = "nodiratime";
|
233 | TmpfsMountOption["BIND"] = "bind";
|
234 | TmpfsMountOption["RBIND"] = "rbind";
|
235 | TmpfsMountOption["UNBINDABLE"] = "unbindable";
|
236 | TmpfsMountOption["RUNBINDABLE"] = "runbindable";
|
237 | TmpfsMountOption["PRIVATE"] = "private";
|
238 | TmpfsMountOption["RPRIVATE"] = "rprivate";
|
239 | TmpfsMountOption["SHARED"] = "shared";
|
240 | TmpfsMountOption["RSHARED"] = "rshared";
|
241 | TmpfsMountOption["SLAVE"] = "slave";
|
242 | TmpfsMountOption["RSLAVE"] = "rslave";
|
243 | TmpfsMountOption["RELATIME"] = "relatime";
|
244 | TmpfsMountOption["NORELATIME"] = "norelatime";
|
245 | TmpfsMountOption["STRICTATIME"] = "strictatime";
|
246 | TmpfsMountOption["NOSTRICTATIME"] = "nostrictatime";
|
247 | TmpfsMountOption["MODE"] = "mode";
|
248 | TmpfsMountOption["UID"] = "uid";
|
249 | TmpfsMountOption["GID"] = "gid";
|
250 | TmpfsMountOption["NR_INODES"] = "nr_inodes";
|
251 | TmpfsMountOption["NR_BLOCKS"] = "nr_blocks";
|
252 | TmpfsMountOption["MPOL"] = "mpol";
|
253 | })(TmpfsMountOption = exports.TmpfsMountOption || (exports.TmpfsMountOption = {}));
|
254 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludXgtcGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpbnV4LXBhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQXFDO0FBSXJDLGlHQUFpRztBQUNqRyw4REFBOEQ7QUFDOUQsd0NBQTJEO0FBcUIzRDs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxnQkFBYTtJQStCaEQ7O09BRUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQThCLEVBQUU7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQXhCbkI7O1dBRUc7UUFDYyxXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUVsRDs7V0FFRztRQUNjLFlBQU8sR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBRW5EOztXQUVHO1FBQ2MsWUFBTyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFL0M7O1dBRUc7UUFDYyxVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVMsQ0FBQzs7Ozs7OytDQTdCakMsZUFBZTs7OztRQXFDeEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDO0tBQ3BEO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxHQUFHLEdBQWlCOzs7Ozs7Ozs7O1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDMUI7SUFFRDs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsR0FBRyxHQUFpQjs7Ozs7Ozs7OztRQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0tBQzNCO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsR0FBRyxNQUFnQjs7Ozs7Ozs7OztRQUNuQyxJ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QUFBO0lBQ3JCLDZDQUF5QixDQUFBO0lBQ3pCLCtDQUEyQixDQUFBO0lBQzNCLG1EQUErQixDQUFBO0lBQy9CLGlDQUFhLENBQUE7SUFDYiwrQkFBVyxDQUFBO0lBQ1gsK0JBQVcsQ0FBQTtJQUNYLDJDQUF1QixDQUFBO0lBQ3ZCLDJDQUF1QixDQUFBO0lBQ3ZCLGlDQUFhLENBQUE7QUFDZixDQUFDLEVBeENXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBd0MzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuVGFza0RlZmluaXRpb24gfSBmcm9tICcuL2Vjcy5nZW5lcmF0ZWQnO1xuXG4vLyBrZWVwIHRoaXMgaW1wb3J0IHNlcGFyYXRlIGZyb20gb3RoZXIgaW1wb3J0cyB0byByZWR1Y2UgY2hhbmNlIGZvciBtZXJnZSBjb25mbGljdHMgd2l0aCB2Mi1tYWluXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLWltcG9ydHMsIGltcG9ydC9vcmRlclxuaW1wb3J0IHsgQ29uc3RydWN0IGFzIENvcmVDb25zdHJ1Y3QgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcblxuLyoqXG4gKiBUaGUgcHJvcGVydGllcyBmb3IgZGVmaW5pbmcgTGludXgtc3BlY2lmaWMgb3B0aW9ucyB0aGF0IGFyZSBhcHBsaWVkIHRvIHRoZSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludXhQYXJhbWV0ZXJzUHJvcHMge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gcnVuIGFuIGluaXQgcHJvY2VzcyBpbnNpZGUgdGhlIGNvbnRhaW5lciB0aGF0IGZvcndhcmRzIHNpZ25hbHMgYW5kIHJlYXBzIHByb2Nlc3Nlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluaXRQcm9jZXNzRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBmb3IgdGhlIHNpemUgKGluIE1pQikgb2YgdGhlIC9kZXYvc2htIHZvbHVtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gc2hhcmVkIG1lbW9yeS5cbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZE1lbW9yeVNpemU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTGludXgtc3BlY2lmaWMgb3B0aW9ucyB0aGF0IGFyZSBhcHBsaWVkIHRvIHRoZSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaW51eFBhcmFtZXRlcnMgZXh0ZW5kcyBDb3JlQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGluaXQgcHJvY2VzcyBpcyBlbmFibGVkXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGluaXRQcm9jZXNzRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzaGFyZWQgbWVtb3J5IHNpemUuIE5vdCB2YWxpZCBmb3IgRmFyZ2F0ZSBsYXVuY2ggdHlwZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzaGFyZWRNZW1vcnlTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDYXBhYmlsaXRpZXMgdG8gYmUgYWRkZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FwQWRkID0gbmV3IEFycmF5PENhcGFiaWxpdHk+KCk7XG5cbiAgLyoqXG4gICAqIENhcGFiaWxpdGllcyB0byBiZSBkcm9wcGVkXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNhcERyb3AgPSBuZXcgQXJyYXk8Q2FwYWJpbGl0eT4oKTtcblxuICAvKipcbiAgICogRGV2aWNlIG1vdW50c1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkZXZpY2VzID0gbmV3IEFycmF5PERldmljZT4oKTtcblxuICAvKipcbiAgICogVG1wRnMgbW91bnRzXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHRtcGZzID0gbmV3IEFycmF5PFRtcGZzPigpO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBMaW51eFBhcmFtZXRlcnMgY2xhc3MuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGludXhQYXJhbWV0ZXJzUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnNoYXJlZE1lbW9yeVNpemUgPSBwcm9wcy5zaGFyZWRNZW1vcnlTaXplO1xuICAgIHRoaXMuaW5pdFByb2Nlc3NFbmFibGVkID0gcHJvcHMuaW5pdFByb2Nlc3NFbmFibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgb25lIG9yIG1vcmUgTGludXggY2FwYWJpbGl0aWVzIHRvIHRoZSBEb2NrZXIgY29uZmlndXJhdGlvbiBvZiBhIGNvbnRhaW5lci5cbiAgICpcbiAgICogT25seSB3b3JrcyB3aXRoIEVDMiBsYXVuY2ggdHlwZS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYXBhYmlsaXRpZXMoLi4uY2FwOiBDYXBhYmlsaXR5W10pIHtcbiAgICB0aGlzLmNhcEFkZC5wdXNoKC4uLmNhcCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBvbmUgb3IgbW9yZSBMaW51eCBjYXBhYmlsaXRpZXMgdG8gdGhlIERvY2tlciBjb25maWd1cmF0aW9uIG9mIGEgY29udGFpbmVyLlxuICAgKlxuICAgKiBPbmx5IHdvcmtzIHdpdGggRUMyIGxhdW5jaCB0eXBlLlxuICAgKi9cbiAgcHVibGljIGRyb3BDYXBhYmlsaXRpZXMoLi4uY2FwOiBDYXBhYmlsaXR5W10pIHtcbiAgICB0aGlzLmNhcERyb3AucHVzaCguLi5jYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgb25lIG9yIG1vcmUgaG9zdCBkZXZpY2VzIHRvIGEgY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIGFkZERldmljZXMoLi4uZGV2aWNlOiBEZXZpY2VbXSkge1xuICAgIHRoaXMuZGV2aWNlcy5wdXNoKC4uLmRldmljZSk7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjb250YWluZXIgcGF0aCwgbW91bnQgb3B0aW9ucywgYW5kIHNpemUgKGluIE1pQikgb2YgdGhlIHRtcGZzIG1vdW50IGZvciBhIGNvbnRhaW5lci5cbiAgICpcbiAgICogT25seSB3b3JrcyB3aXRoIEVDMiBsYXVuY2ggdHlwZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUbXBmcyguLi50bXBmczogVG1wZnNbXSkge1xuICAgIHRoaXMudG1wZnMucHVzaCguLi50bXBmcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgTGludXggcGFyYW1ldGVycyB0byBhIENsb3VkRm9ybWF0aW9uIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyByZW5kZXJMaW51eFBhcmFtZXRlcnMoKTogQ2ZuVGFza0RlZmluaXRpb24uTGludXhQYXJhbWV0ZXJzUHJvcGVydHkge1xuICAgIHJldHVybiB7XG4gICAgICBpbml0UHJvY2Vzc0VuYWJsZWQ6IHRoaXMuaW5pdFByb2Nlc3NFbmFibGVkLFxuICAgICAgc2hhcmVkTWVtb3J5U2l6ZTogdGhpcy5zaGFyZWRNZW1vcnlTaXplLFxuICAgICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAgIGFkZDogY2RrLkxhenkubGlzdCh7IHByb2R1Y2U6ICgpID0+IHRoaXMuY2FwQWRkIH0sIHsgb21pdEVtcHR5OiB0cnVlIH0pLFxuICAgICAgICBkcm9wOiBjZGsuTGF6eS5saXN0KHsgcHJvZHVjZTogKCkgPT4gdGhpcy5jYXBEcm9wIH0sIHsgb21pdEVtcHR5OiB0cnVlIH0pLFxuICAgICAgfSxcbiAgICAgIGRldmljZXM6IGNkay5MYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuZGV2aWNlcy5tYXAocmVuZGVyRGV2aWNlKSB9LCB7IG9taXRFbXB0eUFycmF5OiB0cnVlIH0pLFxuICAgICAgdG1wZnM6IGNkay5MYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMudG1wZnMubWFwKHJlbmRlclRtcGZzKSB9LCB7IG9taXRFbXB0eUFycmF5OiB0cnVlIH0pLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBIGNvbnRhaW5lciBpbnN0YW5jZSBob3N0IGRldmljZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZpY2Uge1xuICAvKipcbiAgICogVGhlIHBhdGggaW5zaWRlIHRoZSBjb250YWluZXIgYXQgd2hpY2ggdG8gZXhwb3NlIHRoZSBob3N0IGRldmljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgU2FtZSBwYXRoIGFzIHRoZSBob3N0XG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJQYXRoPzogc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCBmb3IgdGhlIGRldmljZSBvbiB0aGUgaG9zdCBjb250YWluZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBob3N0UGF0aDogc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgZXhwbGljaXQgcGVybWlzc2lvbnMgdG8gcHJvdmlkZSB0byB0aGUgY29udGFpbmVyIGZvciB0aGUgZGV2aWNlLlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgY29udGFpbmVyIGhhcyBwZXJtaXNzaW9ucyBmb3IgcmVhZCwgd3JpdGUsIGFuZCBta25vZCBmb3IgdGhlIGRldmljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVhZG9ubHlcbiAgICovXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25zPzogRGV2aWNlUGVybWlzc2lvbltdXG59XG5cbmZ1bmN0aW9uIHJlbmRlckRldmljZShkZXZpY2U6IERldmljZSk6IENmblRhc2tEZWZpbml0aW9uLkRldmljZVByb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluZXJQYXRoOiBkZXZpY2UuY29udGFpbmVyUGF0aCxcbiAgICBob3N0UGF0aDogZGV2aWNlLmhvc3RQYXRoLFxuICAgIHBlcm1pc3Npb25zOiBkZXZpY2UucGVybWlzc2lvbnMsXG4gIH07XG59XG5cbi8qKlxuICogVGhlIGRldGFpbHMgb2YgYSB0bXBmcyBtb3VudCBmb3IgYSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG1wZnMge1xuICAvKipcbiAgICogVGhlIGFic29sdXRlIGZpbGUgcGF0aCB3aGVyZSB0aGUgdG1wZnMgdm9sdW1lIGlzIHRvIGJlIG1vdW50ZWQuXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJQYXRoOiBzdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIChpbiBNaUIpIG9mIHRoZSB0bXBmcyB2b2x1bWUuXG4gICAqL1xuICByZWFkb25seSBzaXplOiBudW1iZXIsXG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHRtcGZzIHZvbHVtZSBtb3VudCBvcHRpb25zLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAqIFtUbXBmc01vdW50T3B0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkVDUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9UbXBmcy5odG1sKS5cbiAgICovXG4gIHJlYWRvbmx5IG1vdW50T3B0aW9ucz86IFRtcGZzTW91bnRPcHRpb25bXSxcbn1cblxuZnVuY3Rpb24gcmVuZGVyVG1wZnModG1wZnM6IFRtcGZzKTogQ2ZuVGFza0RlZmluaXRpb24uVG1wZnNQcm9wZXJ0eSB7XG4gIHJldHVybiB7XG4gICAgY29udGFpbmVyUGF0aDogdG1wZnMuY29udGFpbmVyUGF0aCxcbiAgICBzaXplOiB0bXBmcy5zaXplLFxuICAgIG1vdW50T3B0aW9uczogdG1wZnMubW91bnRPcHRpb25zLFxuICB9O1xufVxuXG4vKipcbiAqIEEgTGludXggY2FwYWJpbGl0eVxuICovXG5leHBvcnQgZW51bSBDYXBhYmlsaXR5IHtcbiAgQUxMID0gJ0FMTCcsXG4gIEFVRElUX0NPTlRST0wgPSAnQVVESVRfQ09OVFJPTCcsXG4gIEFVRElUX1dSSVRFID0gJ0FVRElUX1dSSVRFJyxcbiAgQkxPQ0tfU1VTUEVORCA9ICdCTE9DS19TVVNQRU5EJyxcbiAgQ0hPV04gPSAnQ0hPV04nLFxuICBEQUNfT1ZFUlJJREUgPSAnREFDX09WRVJSSURFJyxcbiAgREFDX1JFQURfU0VBUkNIID0gJ0RBQ19SRUFEX1NFQVJDSCcsXG4gIEZPV05FUiA9ICdGT1dORVInLFxuICBGU0VUSUQgPSAnRlNFVElEJyxcbiAgSVBDX0xPQ0sgPSAnSVBDX0xPQ0snLFxuICBJUENfT1dORVIgPSAnSVBDX09XTkVSJyxcbiAgS0lMTCA9ICdLSUxMJyxcbiAgTEVBU0UgPSAnTEVBU0UnLFxuICBMSU5VWF9JTU1VVEFCTEUgPSAnTElOVVhfSU1NVVRBQkxFJyxcbiAgTUFDX0FETUlOID0gJ01BQ19BRE1JTicsXG4gIE1BQ19PVkVSUklERSA9ICdNQUNfT1ZFUlJJREUnLFxuICBNS05PRCA9ICdNS05PRCcsXG4gIE5FVF9BRE1JTiA9ICdORVRfQURNSU4nLFxuICBORVRfQklORF9TRVJWSUNFID0gJ05FVF9CSU5EX1NFUlZJQ0UnLFxuICBORVRfQlJPQURDQVNUID0gJ05FVF9CUk9BRENBU1QnLFxuICBORVRfUkFXID0gJ05FVF9SQVcnLFxuICBTRVRGQ0FQID0gJ1NFVEZDQVAnLFxuICBTRVRHSUQgPSAnU0VUR0lEJyxcbiAgU0VUUENBUCA9ICdTRVRQQ0FQJyxcbiAgU0VUVUlEID0gJ1NFVFVJRCcsXG4gIFNZU19BRE1JTiA9ICdTWVNfQURNSU4nLFxuICBTWVNfQk9PVCA9ICdTWVNfQk9PVCcsXG4gIFNZU19DSFJPT1QgPSAnU1lTX0NIUk9PVCcsXG4gIFNZU19NT0RVTEUgPSAnU1lTX01PRFVMRScsXG4gIFNZU19OSUNFID0gJ1NZU19OSUNFJyxcbiAgU1lTX1BBQ0NUID0gJ1NZU19QQUNDVCcsXG4gIFNZU19QVFJBQ0UgPSAnU1lTX1BUUkFDRScsXG4gIFNZU19SQVdJTyA9ICdTWVNfUkFXSU8nLFxuICBTWVNfUkVTT1VSQ0UgPSAnU1lTX1JFU09VUkNFJyxcbiAgU1lTX1RJTUUgPSAnU1lTX1RJTUUnLFxuICBTWVNfVFRZX0NPTkZJRyA9ICdTWVNfVFRZX0NPTkZJRycsXG4gIFNZU0xPRyA9ICdTWVNMT0cnLFxuICBXQUtFX0FMQVJNID0gJ1dBS0VfQUxBUk0nXG59XG5cbi8qKlxuICogUGVybWlzc2lvbnMgZm9yIGRldmljZSBhY2Nlc3NcbiAqL1xuZXhwb3J0IGVudW0gRGV2aWNlUGVybWlzc2lvbiB7XG4gIC8qKlxuICAgKiBSZWFkXG4gICAqL1xuICBSRUFEID0gJ3JlYWQnLFxuXG4gIC8qKlxuICAgKiBXcml0ZVxuICAgKi9cbiAgV1JJVEUgPSAnd3JpdGUnLFxuXG4gIC8qKlxuICAgKiBNYWtlIGEgbm9kZVxuICAgKi9cbiAgTUtOT0QgPSAnbWtub2QnLFxufVxuXG4vKipcbiAqIFRoZSBzdXBwb3J0ZWQgb3B0aW9ucyBmb3IgYSB0bXBmcyBtb3VudCBmb3IgYSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBlbnVtIFRtcGZzTW91bnRPcHRpb24ge1xuICBERUZBVUxUUyA9ICdkZWZhdWx0cycsXG4gIFJPID0gJ3JvJyxcbiAgUlcgPSAncncnLFxuICBTVUlEID0gJ3N1aWQnLFxuICBOT1NVSUQgPSAnbm9zdWlkJyxcbiAgREVWID0gJ2RldicsXG4gIE5PREVWID0gJ25vZGV2JyxcbiAgRVhFQyA9ICdleGVjJyxcbiAgTk9FWEVDID0gJ25vZXhlYycsXG4gIFNZTkMgPSAnc3luYycsXG4gIEFTWU5DID0gJ2FzeW5jJyxcbiAgRElSU1lOQyA9ICdkaXJzeW5jJyxcbiAgUkVNT1VOVCA9ICdyZW1vdW50JyxcbiAgTUFORCA9ICdtYW5kJyxcbiAgTk9NQU5EID0gJ25vbWFuZCcsXG4gIEFUSU1FID0gJ2F0aW1lJyxcbiAgTk9BVElNRSA9ICdub2F0aW1lJyxcbiAgRElSQVRJTUUgPSAnZGlyYXRpbWUnLFxuICBOT0RJUkFUSU1FID0gJ25vZGlyYXRpbWUnLFxuICBCSU5EID0gJ2JpbmQnLFxuICBSQklORCA9ICdyYmluZCcsXG4gIFVOQklOREFCTEUgPSAndW5iaW5kYWJsZScsXG4gIFJVTkJJTkRBQkxFID0gJ3J1bmJpbmRhYmxlJyxcbiAgUFJJVkFURSA9ICdwcml2YXRlJyxcbiAgUlBSSVZBVEUgPSAncnByaXZhdGUnLFxuICBTSEFSRUQgPSAnc2hhcmVkJyxcbiAgUlNIQVJFRCA9ICdyc2hhcmVkJyxcbiAgU0xBVkUgPSAnc2xhdmUnLFxuICBSU0xBVkUgPSAncnNsYXZlJyxcbiAgUkVMQVRJTUUgPSAncmVsYXRpbWUnLFxuICBOT1JFTEFUSU1FID0gJ25vcmVsYXRpbWUnLFxuICBTVFJJQ1RBVElNRSA9ICdzdHJpY3RhdGltZScsXG4gIE5PU1RSSUNUQVRJTUUgPSAnbm9zdHJpY3RhdGltZScsXG4gIE1PREUgPSAnbW9kZScsXG4gIFVJRCA9ICd1aWQnLFxuICBHSUQgPSAnZ2lkJyxcbiAgTlJfSU5PREVTID0gJ25yX2lub2RlcycsXG4gIE5SX0JMT0NLUyA9ICducl9ibG9ja3MnLFxuICBNUE9MID0gJ21wb2wnXG59XG4iXX0= |
\ | No newline at end of file |